# compiler: R8
# compiler_version: 2.1.1-dev
# compiler_hash: engineering
# pg_map_id: 1b940fe
# common_typos_disable
com.android.tools.r8.ApiLevelException -> com.android.tools.r8.a:
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():10:10 -> <clinit>
    1:2:void <init>(com.android.tools.r8.utils.AndroidApiLevel,java.lang.String,java.lang.String):14:15 -> <init>
    1:1:java.lang.String makeMessage(com.android.tools.r8.utils.AndroidApiLevel,java.lang.String,java.lang.String):21:21 -> a
    2:2:java.lang.String com.android.tools.r8.utils.AndroidApiLevel.getName():61:61 -> a
    2:2:java.lang.String makeMessage(com.android.tools.r8.utils.AndroidApiLevel,java.lang.String,java.lang.String):24 -> a
    3:7:java.lang.String makeMessage(com.android.tools.r8.utils.AndroidApiLevel,java.lang.String,java.lang.String):24:28 -> a
    8:8:java.lang.String com.android.tools.r8.utils.AndroidApiLevel.getName():61:61 -> a
    8:8:java.lang.String makeMessage(com.android.tools.r8.utils.AndroidApiLevel,java.lang.String,java.lang.String):24 -> a
com.android.tools.r8.ArchiveClassFileProvider -> com.android.tools.r8.ArchiveClassFileProvider:
    com.android.tools.r8.origin.Origin origin -> a
    java.util.zip.ZipFile zipFile -> b
    java.util.Set descriptors -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():39:39 -> <clinit>
    1:1:void <init>(java.nio.file.Path):51:51 -> <init>
    2:2:void <init>(java.nio.file.Path,java.util.function.Predicate):60:60 -> <init>
    3:37:void <init>(java.nio.file.Path,java.util.function.Predicate):43:77 -> <init>
    38:41:void <init>(java.nio.file.Path,java.util.function.Predicate):66:69 -> <init>
    boolean lambda$new$0(java.lang.String) -> a
    1:1:void close():112:112 -> close
    1:2:void finalize():106:107 -> finalize
    1:1:java.util.Set getClassDescriptors():84:84 -> getClassDescriptors
    1:1:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):89:89 -> getProgramResource
    2:2:java.util.zip.ZipEntry getZipEntryFromDescriptor(java.lang.String):116:116 -> getProgramResource
    2:2:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):92 -> getProgramResource
    3:8:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):93:98 -> getProgramResource
    9:14:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):94:99 -> getProgramResource
    15:22:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):93:100 -> getProgramResource
    23:23:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> getProgramResource
    23:23:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):100 -> getProgramResource
    24:24:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):100:100 -> getProgramResource
com.android.tools.r8.ArchiveProgramResourceProvider -> com.android.tools.r8.ArchiveProgramResourceProvider:
    com.android.tools.r8.origin.Origin origin -> a
    java.util.function.Predicate include -> c
    com.android.tools.r8.ArchiveProgramResourceProvider$ZipFileSupplier supplier -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():30:30 -> <clinit>
    1:7:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.ArchiveProgramResourceProvider$ZipFileSupplier,java.util.function.Predicate):82:88 -> <init>
    1:1:java.util.zip.ZipFile lambda$fromArchive$0(java.nio.file.Path):66:66 -> a
    2:8:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):92:98 -> a
    9:13:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):96:100 -> a
    14:23:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):92:101 -> a
    24:24:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    24:24:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):101 -> a
    25:25:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):101:101 -> a
    26:26:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):100:100 -> a
    27:32:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):112:117 -> a
    33:33:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):116:116 -> a
    34:44:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):115:125 -> a
    45:45:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):121:121 -> a
    46:46:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):120:120 -> a
    1:1:com.android.tools.r8.ArchiveProgramResourceProvider fromArchive(java.nio.file.Path):59:59 -> fromArchive
    2:2:com.android.tools.r8.ArchiveProgramResourceProvider fromArchive(java.nio.file.Path,java.util.function.Predicate):64:64 -> fromArchive
    1:1:com.android.tools.r8.ArchiveProgramResourceProvider fromSupplier(com.android.tools.r8.origin.Origin,com.android.tools.r8.ArchiveProgramResourceProvider$ZipFileSupplier):72:72 -> fromSupplier
    2:2:com.android.tools.r8.ArchiveProgramResourceProvider fromSupplier(com.android.tools.r8.origin.Origin,com.android.tools.r8.ArchiveProgramResourceProvider$ZipFileSupplier,java.util.function.Predicate):78:78 -> fromSupplier
    1:23:java.util.Collection getProgramResources():108:130 -> getProgramResources
    24:24:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> getProgramResources
    24:24:java.util.Collection getProgramResources():130 -> getProgramResources
    25:32:java.util.Collection getProgramResources():130:137 -> getProgramResources
    1:1:boolean includeClassFileEntries(java.lang.String):43:43 -> includeClassFileEntries
    1:1:boolean includeClassFileOrDexEntries(java.lang.String):51:51 -> includeClassFileOrDexEntries
    2:3:boolean com.android.tools.r8.utils.ZipUtils.isDexFile(java.lang.String):143:144 -> includeClassFileOrDexEntries
    2:3:boolean includeClassFileOrDexEntries(java.lang.String):51 -> includeClassFileOrDexEntries
    1:1:boolean includeDexEntries(java.lang.String):47:47 -> includeDexEntries
com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer -> com.android.tools.r8.ArchiveProgramResourceProvider$a:
    void accept(com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream) -> a
com.android.tools.r8.AssertionsConfiguration -> com.android.tools.r8.AssertionsConfiguration:
    com.android.tools.r8.AssertionsConfiguration$AssertionTransformation transformation -> a
    java.lang.String value -> c
    com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope scope -> b
    1:4:void <init>(com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope,java.lang.String):37:40 -> <init>
    1:1:com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope getScope():48:48 -> getScope
    1:1:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation getTransformation():44:44 -> getTransformation
    1:1:java.lang.String getValue():52:52 -> getValue
com.android.tools.r8.AssertionsConfiguration$1 -> com.android.tools.r8.AssertionsConfiguration$a:
com.android.tools.r8.AssertionsConfiguration$AssertionTransformation -> com.android.tools.r8.AssertionsConfiguration$AssertionTransformation:
    com.android.tools.r8.AssertionsConfiguration$AssertionTransformation[] $VALUES -> a
    1:8:void <clinit>():16:23 -> <clinit>
    9:9:void <clinit>():13:13 -> <clinit>
    1:1:void <init>(java.lang.String,int):14:14 -> <init>
    1:1:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation valueOf(java.lang.String):13:13 -> valueOf
    1:1:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation[] values():13:13 -> values
com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope -> com.android.tools.r8.AssertionsConfiguration$b:
    com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope ALL -> a
    com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope[] $VALUES -> d
    com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope CLASS -> c
    com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope PACKAGE -> b
    1:3:void <clinit>():27:29 -> <clinit>
    4:4:void <clinit>():26:26 -> <clinit>
    1:1:void <init>(java.lang.String,int):26:26 -> <init>
com.android.tools.r8.AssertionsConfiguration$Builder -> com.android.tools.r8.AssertionsConfiguration$Builder:
    com.android.tools.r8.AssertionsConfiguration$AssertionTransformation transformation -> b
    com.android.tools.r8.utils.Reporter reporter -> a
    com.android.tools.r8.AssertionsConfiguration$AssertionTransformationScope scope -> c
    java.lang.String value -> d
    1:1:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.AssertionsConfiguration$1):66:66 -> <init>
    2:3:void <init>(com.android.tools.r8.utils.Reporter):72:73 -> <init>
    1:13:com.android.tools.r8.AssertionsConfiguration build():147:159 -> build
    1:1:com.android.tools.r8.AssertionsConfiguration disableAllAssertions(com.android.tools.r8.AssertionsConfiguration$Builder):209:209 -> disableAllAssertions
    1:1:com.android.tools.r8.AssertionsConfiguration enableAllAssertions(com.android.tools.r8.AssertionsConfiguration$Builder):184:184 -> enableAllAssertions
    1:1:com.android.tools.r8.AssertionsConfiguration passthroughAllAssertions(com.android.tools.r8.AssertionsConfiguration$Builder):234:234 -> passthroughAllAssertions
    1:1:com.android.tools.r8.AssertionsConfiguration$Builder setDisable():97:97 -> setDisable
    1:1:com.android.tools.r8.AssertionsConfiguration$Builder setEnable():88:88 -> setEnable
    1:1:com.android.tools.r8.AssertionsConfiguration$Builder setPassthrough():103:103 -> setPassthrough
    1:2:com.android.tools.r8.AssertionsConfiguration$Builder setScopeAll():108:109 -> setScopeAll
    1:2:com.android.tools.r8.AssertionsConfiguration$Builder setScopeClass(java.lang.String):140:141 -> setScopeClass
    1:2:com.android.tools.r8.AssertionsConfiguration$Builder setScopePackage(java.lang.String):125:126 -> setScopePackage
    1:1:com.android.tools.r8.AssertionsConfiguration$Builder setTransformation(com.android.tools.r8.AssertionsConfiguration$AssertionTransformation):79:79 -> setTransformation
com.android.tools.r8.BaseCommand -> com.android.tools.r8.BaseCommand:
    com.android.tools.r8.utils.AndroidApp app -> c
    boolean printHelp -> a
    boolean printVersion -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():30:30 -> <clinit>
    1:5:void <init>(boolean,boolean):38:42 -> <init>
    6:11:void <init>(com.android.tools.r8.utils.AndroidApp):45:50 -> <init>
    com.android.tools.r8.utils.InternalOptions getInternalOptions() -> a
    1:1:com.android.tools.r8.utils.AndroidApp getInputApp():63:63 -> getInputApp
    1:1:boolean isPrintHelp():54:54 -> isPrintHelp
    1:1:boolean isPrintVersion():58:58 -> isPrintVersion
com.android.tools.r8.BaseCommand$Builder -> com.android.tools.r8.BaseCommand$Builder:
    java.util.List programFiles -> e
    com.android.tools.r8.utils.AndroidApp$Builder app -> d
    com.android.tools.r8.utils.Reporter reporter -> a
    boolean printHelp -> b
    boolean printVersion -> c
    1:1:void <init>():115:115 -> <init>
    2:2:void <init>(com.android.tools.r8.DiagnosticsHandler):119:119 -> <init>
    3:3:void <init>(com.android.tools.r8.utils.AndroidApp$Builder):122:122 -> <init>
    4:20:void <init>(com.android.tools.r8.utils.AndroidApp$Builder):108:124 -> <init>
    1:1:com.android.tools.r8.utils.AndroidApp$Builder getAppBuilder():152:152 -> a
    2:2:void lambda$addClasspathFiles$3(java.nio.file.Path[]):216:216 -> a
    3:3:void lambda$addClasspathFiles$4(java.util.Collection):222:222 -> a
    4:4:void addClasspathFile(java.nio.file.Path):227:227 -> a
    5:5:void lambda$addClasspathResourceProvider$6(com.android.tools.r8.ClassFileResourceProvider):232:232 -> a
    6:6:void lambda$addClassProgramData$7(byte[],com.android.tools.r8.origin.Origin):238:238 -> a
    7:7:void lambda$addMainDexClasses$11(java.lang.String[]):295:295 -> a
    8:8:void lambda$setIgnoreDexInArchive$13(boolean):350:350 -> a
    9:11:void guard(java.lang.Runnable):364:366 -> a
    1:2:com.android.tools.r8.BaseCommand$Builder addClassProgramData(byte[],com.android.tools.r8.origin.Origin):238:239 -> addClassProgramData
    1:2:com.android.tools.r8.BaseCommand$Builder addClasspathFiles(java.nio.file.Path[]):216:217 -> addClasspathFiles
    3:4:com.android.tools.r8.BaseCommand$Builder addClasspathFiles(java.util.Collection):222:223 -> addClasspathFiles
    1:2:com.android.tools.r8.BaseCommand$Builder addClasspathResourceProvider(com.android.tools.r8.ClassFileResourceProvider):232:233 -> addClasspathResourceProvider
    1:2:com.android.tools.r8.BaseCommand$Builder addDexProgramData(byte[],com.android.tools.r8.origin.Origin):244:245 -> addDexProgramData
    1:2:com.android.tools.r8.BaseCommand$Builder addLibraryFiles(java.nio.file.Path[]):195:196 -> addLibraryFiles
    3:13:com.android.tools.r8.BaseCommand$Builder addLibraryFiles(java.util.Collection):201:211 -> addLibraryFiles
    1:2:com.android.tools.r8.BaseCommand$Builder addLibraryResourceProvider(com.android.tools.r8.ClassFileResourceProvider):189:190 -> addLibraryResourceProvider
    1:2:com.android.tools.r8.BaseCommand$Builder addMainDexClasses(java.lang.String[]):295:296 -> addMainDexClasses
    3:4:com.android.tools.r8.BaseCommand$Builder addMainDexClasses(java.util.Collection):308:309 -> addMainDexClasses
    1:9:com.android.tools.r8.BaseCommand$Builder addMainDexListFiles(java.nio.file.Path[]):258:266 -> addMainDexListFiles
    10:18:com.android.tools.r8.BaseCommand$Builder addMainDexListFiles(java.util.Collection):275:283 -> addMainDexListFiles
    1:2:com.android.tools.r8.BaseCommand$Builder addProgramFiles(java.nio.file.Path[]):157:158 -> addProgramFiles
    3:14:com.android.tools.r8.BaseCommand$Builder addProgramFiles(java.util.Collection):167:178 -> addProgramFiles
    1:2:com.android.tools.r8.BaseCommand$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):183:184 -> addProgramResourceProvider
    1:1:com.android.tools.r8.utils.Reporter getReporter():162:162 -> b
    2:2:void lambda$addLibraryResourceProvider$1(com.android.tools.r8.ClassFileResourceProvider):189:189 -> b
    3:7:void lambda$addLibraryFiles$2(java.util.Collection):203:207 -> b
    8:8:void error(com.android.tools.r8.origin.Origin,java.lang.Throwable):358:358 -> b
    8:8:void lambda$addLibraryFiles$2(java.util.Collection):207 -> b
    9:9:void lambda$addClasspathFile$5(java.nio.file.Path):227:227 -> b
    10:10:void lambda$addDexProgramData$8(byte[],com.android.tools.r8.origin.Origin):244:244 -> b
    11:11:void lambda$addMainDexListFiles$9(java.nio.file.Path[]):260:260 -> b
    12:12:com.android.tools.r8.utils.AndroidApp$Builder com.android.tools.r8.utils.AndroidApp$Builder.addMainDexListFiles(java.nio.file.Path[]):942:942 -> b
    12:12:void lambda$addMainDexListFiles$9(java.nio.file.Path[]):260 -> b
    13:14:void lambda$addMainDexListFiles$9(java.nio.file.Path[]):262:263 -> b
    15:15:void lambda$addMainDexListFiles$9(java.nio.file.Path[]):262:262 -> b
    16:16:void setIgnoreDexInArchive(boolean):350:350 -> b
    1:6:com.android.tools.r8.BaseCommand build():138:143 -> build
    com.android.tools.r8.BaseCommand makeCommand() -> c
    1:1:void lambda$addMainDexClasses$12(java.util.Collection):308:308 -> c
    com.android.tools.r8.BaseCommand$Builder self() -> d
    1:4:void lambda$addMainDexListFiles$10(java.util.Collection):277:280 -> d
    5:5:void lambda$addMainDexListFiles$10(java.util.Collection):279:279 -> d
    void validate() -> e
    1:6:void lambda$addProgramFiles$0(java.util.Collection):169:174 -> e
    7:7:void error(com.android.tools.r8.origin.Origin,java.lang.Throwable):358:358 -> e
    7:7:void lambda$addProgramFiles$0(java.util.Collection):174 -> e
    1:1:void error(com.android.tools.r8.Diagnostic):336:336 -> error
    1:1:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic):345:345 -> fatalError
    2:4:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> fatalError
    2:4:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic):345 -> fatalError
    1:1:boolean isPrintHelp():314:314 -> isPrintHelp
    1:1:boolean isPrintVersion():325:325 -> isPrintVersion
    1:2:com.android.tools.r8.BaseCommand$Builder setPrintHelp(boolean):319:320 -> setPrintHelp
    1:2:com.android.tools.r8.BaseCommand$Builder setPrintVersion(boolean):330:331 -> setPrintVersion
com.android.tools.r8.BaseCommand$InputFileOrigin -> com.android.tools.r8.BaseCommand$a:
    java.lang.String inputType -> c
    1:2:void <init>(java.lang.String,java.nio.file.Path):73:74 -> <init>
    1:1:java.lang.String part():79:79 -> part
com.android.tools.r8.BaseCommand$LibraryInputOrigin -> com.android.tools.r8.BaseCommand$b:
    1:1:void <init>(java.nio.file.Path):93:93 -> <init>
com.android.tools.r8.BaseCommand$ProgramInputOrigin -> com.android.tools.r8.BaseCommand$c:
    1:1:void <init>(java.nio.file.Path):86:86 -> <init>
com.android.tools.r8.BaseCompilerCommand -> com.android.tools.r8.BaseCompilerCommand:
    boolean $assertionsDisabled -> o
    com.android.tools.r8.utils.Reporter reporter -> i
    int minApiLevel -> h
    boolean includeClassesChecksum -> k
    java.util.function.BiPredicate dexClassChecksumFilter -> m
    boolean optimizeMultidexForLinearAlloc -> l
    com.android.tools.r8.StringConsumer mainDexListConsumer -> g
    com.android.tools.r8.ProgramConsumer programConsumer -> f
    com.android.tools.r8.utils.InternalOptions$DesugarState desugarState -> j
    java.util.List assertionsConfiguration -> n
    com.android.tools.r8.CompilationMode mode -> e
    1:1:void <clinit>():31:31 -> <clinit>
    1:11:void <init>(boolean,boolean):46:56 -> <init>
    12:24:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.CompilationMode,com.android.tools.r8.ProgramConsumer,com.android.tools.r8.StringConsumer,int,com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.InternalOptions$DesugarState,boolean,boolean,java.util.function.BiPredicate,java.util.List):71:83 -> <init>
    boolean lambda$new$0(java.lang.String,java.lang.Long) -> a
    1:1:com.android.tools.r8.utils.InternalOptions$DesugarState getDesugarState():121:121 -> b
    1:1:com.android.tools.r8.utils.Reporter getReporter():147:147 -> c
    1:1:java.util.List getAssertionsConfiguration():143:143 -> getAssertionsConfiguration
    1:1:java.util.function.BiPredicate getDexClassChecksumFilter():131:131 -> getDexClassChecksumFilter
    1:1:boolean getEnableDesugaring():117:117 -> getEnableDesugaring
    1:1:boolean getIncludeClassesChecksum():126:126 -> getIncludeClassesChecksum
    1:1:com.android.tools.r8.StringConsumer getMainDexListConsumer():112:112 -> getMainDexListConsumer
    1:1:int getMinApiLevel():96:96 -> getMinApiLevel
    1:1:com.android.tools.r8.CompilationMode getMode():91:91 -> getMode
    1:1:com.android.tools.r8.ProgramConsumer getProgramConsumer():105:105 -> getProgramConsumer
    1:1:boolean isOptimizeMultidexForLinearAlloc():139:139 -> isOptimizeMultidexForLinearAlloc
com.android.tools.r8.BaseCompilerCommand$Builder -> com.android.tools.r8.BaseCompilerCommand$Builder:
    boolean includeClassesChecksum -> n
    java.util.function.BiPredicate dexClassChecksumFilter -> p
    java.util.List assertionsConfiguration -> q
    boolean optimizeMultidexForLinearAlloc -> o
    java.nio.file.Path outputPath -> h
    int minApiLevel -> k
    com.android.tools.r8.OutputMode outputMode -> i
    boolean $assertionsDisabled -> r
    com.android.tools.r8.CompilationMode mode -> j
    com.android.tools.r8.StringConsumer mainDexListConsumer -> g
    com.android.tools.r8.utils.InternalOptions$DesugarState desugarState -> l
    com.android.tools.r8.ProgramConsumer programConsumer -> f
    java.util.List desugaredLibraryConfigurationResources -> m
    1:1:void <clinit>():157:157 -> <clinit>
    1:1:void <init>(com.android.tools.r8.DiagnosticsHandler):184:184 -> <init>
    2:26:void <init>(com.android.tools.r8.DiagnosticsHandler):161:185 -> <init>
    27:27:void <init>(com.android.tools.r8.utils.AndroidApp):190:190 -> <init>
    28:58:void <init>(com.android.tools.r8.utils.AndroidApp):161:191 -> <init>
    59:59:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):196:196 -> <init>
    60:96:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):161:197 -> <init>
    boolean lambda$new$0(java.lang.String,java.lang.Long) -> a
    1:33:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):363:395 -> a
    34:45:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration getDesugaredLibraryConfiguration(com.android.tools.r8.graph.DexItemFactory,boolean):469:480 -> a
    46:46:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration getDesugaredLibraryConfiguration(com.android.tools.r8.graph.DexItemFactory,boolean):473:473 -> a
    47:47:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    47:47:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration getDesugaredLibraryConfiguration(com.android.tools.r8.graph.DexItemFactory,boolean):473 -> a
    48:48:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    48:48:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    48:48:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration getDesugaredLibraryConfiguration(com.android.tools.r8.graph.DexItemFactory,boolean):473 -> a
    49:49:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration getDesugaredLibraryConfiguration(com.android.tools.r8.graph.DexItemFactory,boolean):473:473 -> a
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder addAssertionsConfiguration(java.util.function.Function):506:507 -> addAssertionsConfiguration
    3:3:com.android.tools.r8.AssertionsConfiguration$Builder com.android.tools.r8.AssertionsConfiguration.builder(com.android.tools.r8.utils.Reporter):56:56 -> addAssertionsConfiguration
    3:3:com.android.tools.r8.BaseCompilerCommand$Builder addAssertionsConfiguration(java.util.function.Function):507 -> addAssertionsConfiguration
    4:4:com.android.tools.r8.BaseCompilerCommand$Builder addAssertionsConfiguration(java.util.function.Function):507:507 -> addAssertionsConfiguration
    5:7:com.android.tools.r8.BaseCompilerCommand$Builder addAssertionsConfiguration(java.util.function.Function):506:508 -> addAssertionsConfiguration
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder addDesugaredLibraryConfiguration(java.lang.String):456:457 -> addDesugaredLibraryConfiguration
    3:5:com.android.tools.r8.BaseCompilerCommand$Builder addDesugaredLibraryConfiguration(java.lang.String):456:458 -> addDesugaredLibraryConfiguration
    6:7:com.android.tools.r8.BaseCompilerCommand$Builder addDesugaredLibraryConfiguration(com.android.tools.r8.StringResource):463:464 -> addDesugaredLibraryConfiguration
    1:1:com.android.tools.r8.BaseCompilerCommand$Builder addSpecialLibraryConfiguration(java.lang.String):450:450 -> addSpecialLibraryConfiguration
    1:37:void validate():513:549 -> e
    38:38:void com.android.tools.r8.utils.Reporter.warning(java.lang.String):42:42 -> e
    38:38:void validate():545 -> e
    com.android.tools.r8.CompilationMode defaultCompilationMode() -> f
    1:1:java.util.List getAssertionsConfiguration():499:499 -> g
    1:1:java.util.function.BiPredicate getDexClassChecksumFilter():258:258 -> getDexClassChecksumFilter
    1:1:boolean getDisableDesugaring():441:441 -> getDisableDesugaring
    1:1:boolean getIncludeClassesChecksum():495:495 -> getIncludeClassesChecksum
    1:1:com.android.tools.r8.StringConsumer getMainDexListConsumer():251:251 -> getMainDexListConsumer
    1:1:int getMinApiLevel():400:400 -> getMinApiLevel
    1:1:com.android.tools.r8.CompilationMode getMode():204:204 -> getMode
    1:1:com.android.tools.r8.OutputMode getOutputMode():233:233 -> getOutputMode
    1:1:java.nio.file.Path getOutputPath():223:223 -> getOutputPath
    1:1:com.android.tools.r8.ProgramConsumer getProgramConsumer():244:244 -> getProgramConsumer
    1:1:boolean hasDesugaredLibraryConfiguration():484:484 -> h
    1:1:boolean isMinApiLevelSet():404:404 -> i
    1:1:boolean isOptimizeMultidexForLinearAlloc():276:276 -> j
    1:3:com.android.tools.r8.BaseCompilerCommand$Builder setDexClassChecksumFilter(java.util.function.BiPredicate):354:356 -> setDexClassChecksumFilter
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setDisableDesugaring(boolean):435:436 -> setDisableDesugaring
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setEnableDesugaring(boolean):419:420 -> setEnableDesugaring
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setIncludeClassesChecksum(boolean):489:490 -> setIncludeClassesChecksum
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setMainDexListConsumer(com.android.tools.r8.StringConsumer):319:320 -> setMainDexListConsumer
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setMainDexListOutputPath(java.nio.file.Path):306:307 -> setMainDexListOutputPath
    1:5:com.android.tools.r8.BaseCompilerCommand$Builder setMinApiLevel(int):410:414 -> setMinApiLevel
    1:3:com.android.tools.r8.BaseCompilerCommand$Builder setMode(com.android.tools.r8.CompilationMode):211:213 -> setMode
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setOptimizeMultidexForLinearAlloc(boolean):267:268 -> setOptimizeMultidexForLinearAlloc
    1:1:com.android.tools.r8.BaseCompilerCommand$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode):334:334 -> setOutput
    2:7:com.android.tools.r8.BaseCompilerCommand$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):339:344 -> setOutput
    1:4:com.android.tools.r8.BaseCompilerCommand$Builder setProgramConsumer(com.android.tools.r8.ProgramConsumer):290:293 -> setProgramConsumer
com.android.tools.r8.BaseCompilerCommand$Builder$1 -> com.android.tools.r8.BaseCompilerCommand$Builder$a:
    1:1:void <init>(com.android.tools.r8.BaseCompilerCommand$Builder,java.nio.file.Path,boolean):370:370 -> <init>
com.android.tools.r8.BaseCompilerCommand$Builder$2 -> com.android.tools.r8.BaseCompilerCommand$Builder$b:
    1:1:void <init>(com.android.tools.r8.BaseCompilerCommand$Builder,java.nio.file.Path,boolean):377:377 -> <init>
com.android.tools.r8.BaseCompilerCommandParser -> com.android.tools.r8.b:
    java.lang.Iterable ASSERTIONS_USAGE_MESSAGE -> a
    java.lang.String PACKAGE_ASSERTION_POSTFIX -> b
    boolean $assertionsDisabled -> c
    1:35:void <clinit>():16:50 -> <clinit>
    1:1:void <init>():16:16 -> <init>
    1:10:void parseMinApi(com.android.tools.r8.BaseCompilerCommand$Builder,java.lang.String,com.android.tools.r8.origin.Origin):38:47 -> a
    11:11:void parseMinApi(com.android.tools.r8.BaseCompilerCommand$Builder,java.lang.String,com.android.tools.r8.origin.Origin):40:40 -> a
    12:24:void addAssertionTransformation(com.android.tools.r8.BaseCompilerCommand$Builder,com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,java.lang.String):55:67 -> a
    25:25:com.android.tools.r8.AssertionsConfiguration lambda$addAssertionTransformation$0(com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,com.android.tools.r8.AssertionsConfiguration$Builder):56:56 -> a
    26:28:com.android.tools.r8.AssertionsConfiguration lambda$addAssertionTransformation$1(com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,java.lang.String,com.android.tools.r8.AssertionsConfiguration$Builder):62:64 -> a
    29:31:com.android.tools.r8.AssertionsConfiguration lambda$addAssertionTransformation$1(com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,java.lang.String,com.android.tools.r8.AssertionsConfiguration$Builder):63:65 -> a
    32:32:void addLibraryArgument(com.android.tools.r8.BaseCommand$Builder,com.android.tools.r8.origin.Origin,java.lang.String):148:148 -> a
    33:44:boolean isJdkHome(java.nio.file.Path):130:141 -> a
    33:44:void addLibraryArgument(com.android.tools.r8.BaseCommand$Builder,com.android.tools.r8.origin.Origin,java.lang.String):149 -> a
    45:50:void addLibraryArgument(com.android.tools.r8.BaseCommand$Builder,com.android.tools.r8.origin.Origin,java.lang.String):152:157 -> a
    1:1:com.android.tools.r8.AssertionsConfiguration lambda$addAssertionTransformation$2(com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,java.lang.String,com.android.tools.r8.AssertionsConfiguration$Builder):68:68 -> b
    2:36:boolean tryParseAssertionArgument(com.android.tools.r8.BaseCompilerCommand$Builder,java.lang.String,com.android.tools.r8.origin.Origin):83:117 -> b
com.android.tools.r8.ByteBufferProvider -> com.android.tools.r8.ByteBufferProvider:
    1:1:java.nio.ByteBuffer acquireByteBuffer(int):24:24 -> acquireByteBuffer
com.android.tools.r8.ByteDataView -> com.android.tools.r8.ByteDataView:
    byte[] buffer -> a
    int offset -> b
    int length -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():9:9 -> <clinit>
    1:7:void <init>(byte[],int,int):25:31 -> <init>
    1:1:byte[] copyByteData():58:58 -> copyByteData
    1:2:byte[] getBuffer():36:37 -> getBuffer
    1:2:int getLength():52:53 -> getLength
    1:2:int getOffset():42:43 -> getOffset
    1:1:void invalidate():62:62 -> invalidate
    1:1:com.android.tools.r8.ByteDataView of(byte[]):17:17 -> of
com.android.tools.r8.ClassFileConsumer -> com.android.tools.r8.ClassFileConsumer:
    1:1:com.android.tools.r8.ClassFileConsumer emptyConsumer():49:49 -> emptyConsumer
com.android.tools.r8.ClassFileConsumer$ArchiveConsumer -> com.android.tools.r8.ClassFileConsumer$ArchiveConsumer:
    com.android.tools.r8.utils.OutputBuilder outputBuilder -> c
    boolean consumeDataResources -> d
    1:1:void <init>(java.nio.file.Path):92:92 -> <init>
    2:2:void <init>(java.nio.file.Path,boolean):96:96 -> <init>
    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.ClassFileConsumer):100:100 -> <init>
    4:9:void <init>(java.nio.file.Path,com.android.tools.r8.ClassFileConsumer,boolean):104:109 -> <init>
    1:1:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):154:154 -> a
    1:2:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):120:121 -> accept
    3:3:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):126:126 -> accept
    4:4:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):131:131 -> accept
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):136:137 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():115:115 -> getDataResourceConsumer
    1:1:java.nio.file.Path internalGetOutputPath():142:142 -> internalGetOutputPath
    1:7:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):148:154 -> writeResources
    8:10:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):151:153 -> writeResources
    11:15:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):150:154 -> writeResources
com.android.tools.r8.ClassFileConsumer$DirectoryConsumer -> com.android.tools.r8.ClassFileConsumer$DirectoryConsumer:
    com.android.tools.r8.utils.OutputBuilder outputBuilder -> c
    boolean consumeDataResouces -> d
    1:1:void <init>(java.nio.file.Path):166:166 -> <init>
    2:2:void <init>(java.nio.file.Path,boolean):170:170 -> <init>
    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.ClassFileConsumer):174:174 -> <init>
    4:6:void <init>(java.nio.file.Path,com.android.tools.r8.ClassFileConsumer,boolean):179:181 -> <init>
    1:2:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):191:192 -> accept
    3:3:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):197:197 -> accept
    4:4:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):202:202 -> accept
    1:1:void finished(com.android.tools.r8.DiagnosticsHandler):207:207 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():186:186 -> getDataResourceConsumer
    1:1:java.nio.file.Path internalGetOutputPath():212:212 -> internalGetOutputPath
com.android.tools.r8.ClassFileConsumer$ForwardingConsumer -> com.android.tools.r8.ClassFileConsumer$ForwardingConsumer:
    com.android.tools.r8.ClassFileConsumer EMPTY_CONSUMER -> b
    com.android.tools.r8.ClassFileConsumer consumer -> a
    1:1:void <clinit>():56:56 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ClassFileConsumer):60:61 -> <init>
    1:1:com.android.tools.r8.ClassFileConsumer access$000():54:54 -> a
    1:2:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):71:72 -> accept
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):78:79 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():66:66 -> getDataResourceConsumer
com.android.tools.r8.CompatDxHelper -> com.android.tools.r8.c:
    1:10:void run(com.android.tools.r8.D8Command,java.lang.Boolean):13:22 -> a
    11:11:void ignoreDexInArchive(com.android.tools.r8.BaseCommand$Builder):26:26 -> a
    12:12:com.android.tools.r8.D8Command$Builder com.android.tools.r8.D8Command$Builder.enableDesugarBackportStatics():160:160 -> a
    12:12:void enableDesugarBackportStatics(com.android.tools.r8.D8Command$Builder):30 -> a
com.android.tools.r8.CompatProguardCommandBuilder -> com.android.tools.r8.CompatProguardCommandBuilder:
    1:1:void <init>():11:11 -> <init>
    2:6:void <init>(boolean,com.android.tools.r8.DiagnosticsHandler):16:20 -> <init>
    7:7:void <init>(boolean):24:24 -> <init>
    8:13:void <init>(boolean,boolean):28:33 -> <init>
com.android.tools.r8.CompilationFailedException -> com.android.tools.r8.CompilationFailedException:
    1:1:void <init>():14:14 -> <init>
    2:2:void <init>(java.lang.Throwable):18:18 -> <init>
    3:3:void <init>(java.lang.String):22:22 -> <init>
com.android.tools.r8.CompilationMode -> com.android.tools.r8.CompilationMode:
    com.android.tools.r8.CompilationMode[] $VALUES -> a
    1:3:void <clinit>():10:12 -> <clinit>
    4:4:void <clinit>():7:7 -> <clinit>
    1:1:void <init>(java.lang.String,int):8:8 -> <init>
    1:1:com.android.tools.r8.CompilationMode valueOf(java.lang.String):7:7 -> valueOf
    1:1:com.android.tools.r8.CompilationMode[] values():7:7 -> values
com.android.tools.r8.D8 -> com.android.tools.r8.D8:
    1:3:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):84:86 -> a
    4:15:void run(java.lang.String[]):109:120 -> a
    4:15:void lambda$main$2(java.lang.String[]):133 -> a
    16:17:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):138:139 -> a
    18:18:void com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):50:50 -> a
    18:18:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):139 -> a
    19:19:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):192:192 -> a
    20:20:void lambda$run$4(java.lang.String):202:202 -> a
    21:23:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):248:250 -> a
    24:24:void com.android.tools.r8.ir.conversion.IRConverter.<init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter):368:368 -> a
    24:24:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):250 -> a
    25:29:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):251:255 -> a
    1:1:void lambda$run$1(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):104:104 -> b
    1:3:void lambda$runForTesting$3(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):143:145 -> c
    1:30:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):152:181 -> d
    31:31:void com.android.tools.r8.ir.conversion.IRConverter.<init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter):364:364 -> d
    31:31:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):181 -> d
    32:42:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):182:192 -> d
    43:47:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):188:192 -> d
    48:98:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):186:236 -> d
    99:104:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):231:236 -> d
    1:5:void main(java.lang.String[]):129:133 -> main
    1:5:void run(com.android.tools.r8.D8Command):77:81 -> run
    6:6:void com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):50:50 -> run
    6:6:void run(com.android.tools.r8.D8Command):80 -> run
    7:10:void run(com.android.tools.r8.D8Command,java.util.concurrent.ExecutorService):99:102 -> run
    11:11:void com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):50:50 -> run
    11:11:void run(com.android.tools.r8.D8Command,java.util.concurrent.ExecutorService):101 -> run
com.android.tools.r8.D8Command -> com.android.tools.r8.D8Command:
    com.android.tools.r8.graph.DexItemFactory factory -> t
    boolean intermediate -> p
    com.android.tools.r8.DesugarGraphConsumer desugarGraphConsumer -> q
    boolean $assertionsDisabled -> v
    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration libraryConfiguration -> s
    java.lang.String USAGE_MESSAGE -> u
    com.android.tools.r8.StringConsumer desugaredLibraryKeepRuleConsumer -> r
    1:201:void <clinit>():36:236 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.CompilationMode,com.android.tools.r8.ProgramConsumer,com.android.tools.r8.StringConsumer,int,com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.InternalOptions$DesugarState,boolean,boolean,boolean,java.util.function.BiPredicate,com.android.tools.r8.DesugarGraphConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration,java.util.List,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.D8Command$1):37:37 -> <init>
    2:2:void <init>(boolean,boolean,com.android.tools.r8.D8Command$1):37:37 -> <init>
    3:19:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.CompilationMode,com.android.tools.r8.ProgramConsumer,com.android.tools.r8.StringConsumer,int,com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.InternalOptions$DesugarState,boolean,boolean,boolean,java.util.function.BiPredicate,com.android.tools.r8.DesugarGraphConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration,java.util.List,com.android.tools.r8.graph.DexItemFactory):301:317 -> <init>
    20:25:void <init>(boolean,boolean):321:326 -> <init>
    1:1:com.android.tools.r8.D8Command$Builder builder(com.android.tools.r8.utils.AndroidApp):254:254 -> a
    2:48:com.android.tools.r8.utils.InternalOptions getInternalOptions():331:377 -> a
    1:1:com.android.tools.r8.D8Command$Builder builder():245:245 -> builder
    2:2:com.android.tools.r8.D8Command$Builder builder(com.android.tools.r8.DiagnosticsHandler):249:249 -> builder
    1:1:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):267:267 -> parse
    2:2:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):281:281 -> parse
com.android.tools.r8.D8Command$1 -> com.android.tools.r8.D8Command$a:
com.android.tools.r8.D8Command$Builder -> com.android.tools.r8.D8Command$Builder:
    com.android.tools.r8.DesugarGraphConsumer desugarGraphConsumer -> t
    com.android.tools.r8.StringConsumer desugaredLibraryKeepRuleConsumer -> u
    boolean intermediate -> s
    1:1:void <init>(com.android.tools.r8.D8Command$1):69:69 -> <init>
    2:2:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.D8Command$1):69:69 -> <init>
    3:3:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.D8Command$1):69:69 -> <init>
    4:4:void <init>():76:76 -> <init>
    5:5:void <init>(com.android.tools.r8.DiagnosticsHandler):80:80 -> <init>
    6:8:void <init>(com.android.tools.r8.DiagnosticsHandler):71:73 -> <init>
    9:9:void <init>(com.android.tools.r8.utils.AndroidApp):84:84 -> <init>
    10:12:void <init>(com.android.tools.r8.utils.AndroidApp):71:73 -> <init>
    1:1:com.android.tools.r8.BaseCommand$Builder addClasspathFiles(java.util.Collection):68:68 -> addClasspathFiles
    2:2:com.android.tools.r8.BaseCommand$Builder addClasspathFiles(java.nio.file.Path[]):68:68 -> addClasspathFiles
    3:3:com.android.tools.r8.D8Command$Builder addClasspathFiles(java.nio.file.Path[]):101:101 -> addClasspathFiles
    4:4:com.android.tools.r8.D8Command$Builder addClasspathFiles(java.util.Collection):109:109 -> addClasspathFiles
    1:1:com.android.tools.r8.BaseCommand$Builder addClasspathResourceProvider(com.android.tools.r8.ClassFileResourceProvider):68:68 -> addClasspathResourceProvider
    2:2:com.android.tools.r8.D8Command$Builder addClasspathResourceProvider(com.android.tools.r8.ClassFileResourceProvider):117:117 -> addClasspathResourceProvider
    1:1:com.android.tools.r8.BaseCommand$Builder addDexProgramData(byte[],com.android.tools.r8.origin.Origin):68:68 -> addDexProgramData
    2:2:com.android.tools.r8.D8Command$Builder addDexProgramData(byte[],com.android.tools.r8.origin.Origin):92:92 -> addDexProgramData
    1:1:com.android.tools.r8.BaseCommand makeCommand():68:68 -> c
    2:2:void lambda$addDexProgramData$0(byte[],com.android.tools.r8.origin.Origin):92:92 -> c
    com.android.tools.r8.BaseCommand$Builder self() -> d
    1:19:void validate():176:194 -> e
    20:29:void validate():192:201 -> e
    1:1:com.android.tools.r8.CompilationMode defaultCompilationMode():171:171 -> f
    1:1:com.android.tools.r8.DesugarGraphConsumer getDesugarGraphConsumer():145:145 -> getDesugarGraphConsumer
    1:17:com.android.tools.r8.D8Command makeCommand():206:222 -> k
    18:18:com.android.tools.r8.utils.InternalOptions$DesugarState com.android.tools.r8.BaseCompilerCommand$Builder.getDesugaringState():445:445 -> k
    18:18:com.android.tools.r8.D8Command makeCommand():223 -> k
    19:27:com.android.tools.r8.D8Command makeCommand():223:231 -> k
    28:28:com.android.tools.r8.D8Command makeCommand():207:207 -> k
    1:1:com.android.tools.r8.D8Command$Builder setDesugarGraphConsumer(com.android.tools.r8.DesugarGraphConsumer):154:154 -> setDesugarGraphConsumer
    1:1:com.android.tools.r8.D8Command$Builder setDesugaredLibraryKeepRuleConsumer(com.android.tools.r8.StringConsumer):137:137 -> setDesugaredLibraryKeepRuleConsumer
    1:1:com.android.tools.r8.D8Command$Builder setIntermediate(boolean):126:126 -> setIntermediate
com.android.tools.r8.D8Command$DefaultD8DiagnosticsHandler -> com.android.tools.r8.D8Command$b:
    1:1:void <init>():46:46 -> <init>
    2:2:void <init>(com.android.tools.r8.D8Command$1):46:46 -> <init>
    1:6:void error(com.android.tools.r8.Diagnostic):50:55 -> error
    7:13:void error(com.android.tools.r8.Diagnostic):53:59 -> error
com.android.tools.r8.D8CommandParser -> com.android.tools.r8.d:
    java.util.Set OPTIONS_WITH_PARAMETER -> d
    java.lang.String USAGE_MESSAGE -> e
    1:98:void <clinit>():27:124 -> <clinit>
    99:122:void <clinit>():113:136 -> <clinit>
    123:123:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable):449:449 -> <clinit>
    123:123:void <clinit>():112 -> <clinit>
    124:124:void <clinit>():110:110 -> <clinit>
    1:1:void <init>():25:25 -> <init>
    1:1:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):149:149 -> a
    2:2:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):163:163 -> a
    3:43:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):172:212 -> a
    44:56:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):210:222 -> a
    57:60:boolean isArchive(java.nio.file.Path):42:45 -> a
    57:60:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):225 -> a
    61:64:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):226:229 -> a
    65:68:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):228:231 -> a
    69:108:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):223:262 -> a
    109:109:boolean com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder.isEmpty():65:65 -> a
    109:109:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):265 -> a
    110:121:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):266:277 -> a
com.android.tools.r8.D8CommandParser$1 -> com.android.tools.r8.d$a:
com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider -> com.android.tools.r8.d$b:
    java.util.List providers -> a
    java.util.Set descriptors -> b
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.D8CommandParser$1):48:48 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):72:72 -> <init>
    3:8:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):70:75 -> <init>
    1:1:void lambda$new$0(com.android.tools.r8.ClassFileResourceProvider):75:75 -> a
    2:2:com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder builder():79:79 -> a
    1:1:java.util.Set getClassDescriptors():84:84 -> getClassDescriptors
    1:3:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):91:93 -> getProgramResource
com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder -> com.android.tools.r8.d$b$a:
    boolean empty -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList$Builder builder -> a
    1:4:void <init>():49:52 -> <init>
    1:1:com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider build():55:55 -> a
    2:3:com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder addClassFileResourceProvider(com.android.tools.r8.ClassFileResourceProvider):59:60 -> a
com.android.tools.r8.DataDirectoryResource -> com.android.tools.r8.DataDirectoryResource:
    1:2:com.android.tools.r8.DataDirectoryResource fromFile(java.nio.file.Path,java.nio.file.Path):23:24 -> fromFile
    1:1:com.android.tools.r8.DataDirectoryResource fromName(java.lang.String,com.android.tools.r8.origin.Origin):19:19 -> fromName
    1:1:com.android.tools.r8.DataDirectoryResource fromZip(java.util.zip.ZipFile,java.util.zip.ZipEntry):28:28 -> fromZip
com.android.tools.r8.DataDirectoryResource$1 -> com.android.tools.r8.DataDirectoryResource$a:
com.android.tools.r8.DataDirectoryResource$LocalDataDirectoryResource -> com.android.tools.r8.DataDirectoryResource$b:
    java.io.File file -> a
    java.lang.String relativePath -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():75:75 -> <clinit>
    1:1:void <init>(java.io.File,java.lang.String,com.android.tools.r8.DataDirectoryResource$1):75:75 -> <init>
    2:6:void <init>(java.io.File,java.lang.String):79:83 -> <init>
    1:1:java.lang.String getName():93:93 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():88:88 -> getOrigin
com.android.tools.r8.DataDirectoryResource$NamedDataDirectoryResource -> com.android.tools.r8.DataDirectoryResource$c:
    com.android.tools.r8.origin.Origin origin -> b
    java.lang.String name -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():31:31 -> <clinit>
    1:1:void <init>(java.lang.String,com.android.tools.r8.origin.Origin,com.android.tools.r8.DataDirectoryResource$1):31:31 -> <init>
    2:6:void <init>(java.lang.String,com.android.tools.r8.origin.Origin):35:39 -> <init>
    1:1:java.lang.String getName():49:49 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():44:44 -> getOrigin
com.android.tools.r8.DataDirectoryResource$ZipDataDirectoryResource -> com.android.tools.r8.DataDirectoryResource$d:
    java.util.zip.ZipFile zip -> a
    boolean $assertionsDisabled -> c
    java.util.zip.ZipEntry entry -> b
    1:1:void <clinit>():53:53 -> <clinit>
    1:1:void <init>(java.util.zip.ZipFile,java.util.zip.ZipEntry,com.android.tools.r8.DataDirectoryResource$1):53:53 -> <init>
    2:6:void <init>(java.util.zip.ZipFile,java.util.zip.ZipEntry):57:61 -> <init>
    1:1:java.lang.String getName():71:71 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():66:66 -> getOrigin
com.android.tools.r8.DataEntryResource -> com.android.tools.r8.DataEntryResource:
    1:1:com.android.tools.r8.DataEntryResource fromBytes(byte[],java.lang.String,com.android.tools.r8.origin.Origin):26:26 -> fromBytes
    1:2:com.android.tools.r8.DataEntryResource fromFile(java.nio.file.Path,java.nio.file.Path):30:31 -> fromFile
    1:1:com.android.tools.r8.DataEntryResource fromZip(java.util.zip.ZipFile,java.util.zip.ZipEntry):35:35 -> fromZip
    1:1:com.android.tools.r8.DataEntryResource withName(java.lang.String):39:39 -> withName
com.android.tools.r8.DataEntryResource$1 -> com.android.tools.r8.DataEntryResource$a:
com.android.tools.r8.DataEntryResource$ByteDataEntryResource -> com.android.tools.r8.DataEntryResource$b:
    byte[] bytes -> a
    com.android.tools.r8.origin.Origin origin -> c
    java.lang.String name -> b
    1:4:void <init>(byte[],java.lang.String,com.android.tools.r8.origin.Origin):48:51 -> <init>
    1:1:java.io.InputStream getByteStream():56:56 -> getByteStream
    1:1:java.lang.String getName():61:61 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():66:66 -> getOrigin
com.android.tools.r8.DataEntryResource$LocalDataEntryResource -> com.android.tools.r8.DataEntryResource$c:
    java.io.File file -> a
    java.lang.String relativePath -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():101:101 -> <clinit>
    1:1:void <init>(java.io.File,java.lang.String,com.android.tools.r8.DataEntryResource$1):101:101 -> <init>
    2:6:void <init>(java.io.File,java.lang.String):105:109 -> <init>
    1:3:java.io.InputStream getByteStream():125:127 -> getByteStream
    1:1:java.lang.String getName():119:119 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():114:114 -> getOrigin
com.android.tools.r8.DataEntryResource$NestedDataEntryResource -> com.android.tools.r8.DataEntryResource$d:
    com.android.tools.r8.origin.Origin origin -> b
    com.android.tools.r8.DataEntryResource resource -> c
    java.lang.String name -> a
    1:4:void <init>(java.lang.String,com.android.tools.r8.origin.Origin,com.android.tools.r8.DataEntryResource):141:144 -> <init>
    1:1:java.io.InputStream getByteStream():149:149 -> getByteStream
    1:1:java.lang.String getName():154:154 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():159:159 -> getOrigin
com.android.tools.r8.DataEntryResource$ZipDataEntryResource -> com.android.tools.r8.DataEntryResource$e:
    java.util.zip.ZipFile zip -> a
    boolean $assertionsDisabled -> c
    java.util.zip.ZipEntry entry -> b
    1:1:void <clinit>():70:70 -> <clinit>
    1:1:void <init>(java.util.zip.ZipFile,java.util.zip.ZipEntry,com.android.tools.r8.DataEntryResource$1):70:70 -> <init>
    2:6:void <init>(java.util.zip.ZipFile,java.util.zip.ZipEntry):74:78 -> <init>
    1:3:java.io.InputStream getByteStream():94:96 -> getByteStream
    1:1:java.lang.String getName():88:88 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():83:83 -> getOrigin
com.android.tools.r8.DexFileMergerHelper -> com.android.tools.r8.e:
    java.util.Map inputOrdering -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():29:29 -> <clinit>
    1:2:void <init>(java.util.Map):33:34 -> <init>
    1:2:void run(com.android.tools.r8.D8Command,java.lang.Boolean,java.util.Map):63:64 -> a
    3:3:void com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):50:50 -> a
    3:3:void run(com.android.tools.r8.D8Command,java.lang.Boolean,java.util.Map):64 -> a
    4:4:void lambda$run$0(com.android.tools.r8.D8Command,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):66:66 -> a
    5:45:void runInternal(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):75:115 -> a
    46:51:void runInternal(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):110:115 -> a
    52:54:void runD8ForTesting(com.android.tools.r8.D8Command,boolean):121:123 -> a
    55:55:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():716:716 -> a
    55:55:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):39 -> a
    56:56:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):39:39 -> a
    57:57:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():716:716 -> a
    57:57:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):40 -> a
    58:75:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):40:57 -> a
    76:87:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):44:55 -> a
com.android.tools.r8.DexFilePerClassFileConsumer -> com.android.tools.r8.DexFilePerClassFileConsumer:
    1:1:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):62:62 -> accept
    2:2:void accept(java.lang.String,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):72:72 -> accept
    1:1:com.android.tools.r8.DexFilePerClassFileConsumer emptyConsumer():91:91 -> emptyConsumer
com.android.tools.r8.DexFilePerClassFileConsumer$ArchiveConsumer -> com.android.tools.r8.DexFilePerClassFileConsumer$ArchiveConsumer:
    boolean $assertionsDisabled -> e
    com.android.tools.r8.utils.OutputBuilder outputBuilder -> c
    boolean consumeDataResources -> d
    1:1:void <clinit>():140:140 -> <clinit>
    1:1:void <init>(java.nio.file.Path):152:152 -> <init>
    2:2:void <init>(java.nio.file.Path,boolean):156:156 -> <init>
    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.DexFilePerClassFileConsumer):160:160 -> <init>
    4:9:void <init>(java.nio.file.Path,com.android.tools.r8.DexFilePerClassFileConsumer,boolean):165:170 -> <init>
    1:1:java.lang.String access$100(java.lang.String):141:141 -> a
    2:2:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):226:226 -> a
    1:2:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):185:186 -> accept
    3:3:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):191:191 -> accept
    4:4:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):196:196 -> accept
    1:2:java.lang.String getDexFileName(java.lang.String):147:148 -> b
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):201:202 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():176:176 -> getDataResourceConsumer
    1:1:java.nio.file.Path internalGetOutputPath():207:207 -> internalGetOutputPath
    1:12:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):215:226 -> writeResources
    13:20:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):218:225 -> writeResources
    21:30:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):217:226 -> writeResources
com.android.tools.r8.DexFilePerClassFileConsumer$DirectoryConsumer -> com.android.tools.r8.DexFilePerClassFileConsumer$DirectoryConsumer:
    com.android.tools.r8.utils.OutputBuilder outputBuilder -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():231:231 -> <clinit>
    1:1:void <init>(java.nio.file.Path):243:243 -> <init>
    2:2:void <init>(java.nio.file.Path,boolean):247:247 -> <init>
    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.DexFilePerClassFileConsumer):251:251 -> <init>
    4:5:void <init>(java.nio.file.Path,com.android.tools.r8.DexFilePerClassFileConsumer,boolean):256:257 -> <init>
    1:2:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):267:268 -> accept
    3:4:java.lang.String getDexFileName(java.lang.String):238:239 -> accept
    3:4:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):268 -> accept
    5:5:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):268:268 -> accept
    6:6:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):273:273 -> accept
    7:7:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):278:278 -> accept
    1:1:void finished(com.android.tools.r8.DiagnosticsHandler):282:282 -> finished
    1:1:java.nio.file.Path internalGetOutputPath():287:287 -> internalGetOutputPath
    1:3:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):295:297 -> writeResources
    4:4:java.nio.file.Path getTargetDexFile(java.nio.file.Path,java.lang.String):305:305 -> writeResources
    4:4:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):298 -> writeResources
    5:5:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):299:299 -> writeResources
    6:7:void writeFile(byte[],java.nio.file.Path):309:310 -> writeResources
    6:7:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):299 -> writeResources
    8:8:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):301:301 -> writeResources
    9:15:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):295:301 -> writeResources
com.android.tools.r8.DexFilePerClassFileConsumer$ForwardingConsumer -> com.android.tools.r8.DexFilePerClassFileConsumer$ForwardingConsumer:
    com.android.tools.r8.DexFilePerClassFileConsumer EMPTY_CONSUMER -> b
    com.android.tools.r8.DexFilePerClassFileConsumer consumer -> a
    1:1:void <clinit>():98:98 -> <clinit>
    1:2:void <init>(com.android.tools.r8.DexFilePerClassFileConsumer):102:103 -> <init>
    1:1:com.android.tools.r8.DexFilePerClassFileConsumer access$000():96:96 -> a
    1:2:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):117:118 -> accept
    1:4:boolean combineSyntheticClassesWithPrimaryClass():124:127 -> combineSyntheticClassesWithPrimaryClass
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):133:134 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():108:108 -> getDataResourceConsumer
com.android.tools.r8.DexIndexedConsumer -> com.android.tools.r8.DexIndexedConsumer:
    1:1:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):62:62 -> accept
    2:2:void accept(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):69:69 -> accept
    1:1:com.android.tools.r8.DexIndexedConsumer emptyConsumer():75:75 -> emptyConsumer
com.android.tools.r8.DexIndexedConsumer$ArchiveConsumer -> com.android.tools.r8.DexIndexedConsumer$ArchiveConsumer:
    com.android.tools.r8.utils.OutputBuilder outputBuilder -> c
    boolean consumeDataResources -> d
    1:1:void <init>(java.nio.file.Path):129:129 -> <init>
    2:2:void <init>(java.nio.file.Path,boolean):133:133 -> <init>
    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.DexIndexedConsumer):137:137 -> <init>
    4:9:void <init>(java.nio.file.Path,com.android.tools.r8.DexIndexedConsumer,boolean):141:146 -> <init>
    1:1:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):201:201 -> a
    1:2:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):162:163 -> accept
    3:3:java.lang.String com.android.tools.r8.DexIndexedConsumer$ForwardingConsumer.getDexFileName(int):97:97 -> accept
    3:3:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):163 -> accept
    4:4:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):163:163 -> accept
    5:5:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):168:168 -> accept
    6:6:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):173:173 -> accept
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):178:179 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():156:156 -> getDataResourceConsumer
    1:1:com.android.tools.r8.origin.Origin getOrigin():151:151 -> getOrigin
    1:1:java.nio.file.Path internalGetOutputPath():206:206 -> internalGetOutputPath
    1:17:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):185:201 -> writeResources
    18:30:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):188:200 -> writeResources
    31:45:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):187:201 -> writeResources
com.android.tools.r8.DexIndexedConsumer$DirectoryConsumer -> com.android.tools.r8.DexIndexedConsumer$DirectoryConsumer:
    java.nio.file.Path directory -> c
    com.android.tools.r8.utils.OutputBuilder outputBuilder -> e
    boolean consumeDataResouces -> f
    boolean preparedDirectory -> d
    1:1:void <init>(java.nio.file.Path):219:219 -> <init>
    2:2:void <init>(java.nio.file.Path,boolean):223:223 -> <init>
    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.DexIndexedConsumer):227:227 -> <init>
    4:4:void <init>(java.nio.file.Path,com.android.tools.r8.DexIndexedConsumer,boolean):232:232 -> <init>
    5:26:void <init>(java.nio.file.Path,com.android.tools.r8.DexIndexedConsumer,boolean):214:235 -> <init>
    1:7:void deleteClassesDexFiles(java.nio.file.Path):280:286 -> a
    8:14:void deleteClassesDexFiles(java.nio.file.Path):280:286 -> a
    15:15:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):286:286 -> a
    1:1:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):246:246 -> accept
    2:6:void prepareDirectory():272:276 -> accept
    2:6:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):248 -> accept
    7:9:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):250:252 -> accept
    10:10:java.lang.String com.android.tools.r8.DexIndexedConsumer$ForwardingConsumer.getDexFileName(int):97:97 -> accept
    10:10:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):252 -> accept
    11:11:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):252:252 -> accept
    12:12:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):257:257 -> accept
    13:13:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):262:262 -> accept
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):267:268 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():240:240 -> getDataResourceConsumer
    1:1:java.nio.file.Path internalGetOutputPath():312:312 -> internalGetOutputPath
    1:4:void writeResources(java.nio.file.Path,java.util.List):291:294 -> writeResources
    5:5:java.nio.file.Path getTargetDexFile(java.nio.file.Path,int):302:302 -> writeResources
    5:5:void writeResources(java.nio.file.Path,java.util.List):295 -> writeResources
    6:6:void writeResources(java.nio.file.Path,java.util.List):296:296 -> writeResources
    7:8:void writeFile(byte[],java.nio.file.Path):306:307 -> writeResources
    7:8:void writeResources(java.nio.file.Path,java.util.List):296 -> writeResources
    9:9:void writeResources(java.nio.file.Path,java.util.List):298:298 -> writeResources
    10:16:void writeResources(java.nio.file.Path,java.util.List):292:298 -> writeResources
com.android.tools.r8.DexIndexedConsumer$ForwardingConsumer -> com.android.tools.r8.DexIndexedConsumer$ForwardingConsumer:
    com.android.tools.r8.DexIndexedConsumer EMPTY_CONSUMER -> b
    com.android.tools.r8.DexIndexedConsumer consumer -> a
    1:1:void <clinit>():82:82 -> <clinit>
    1:2:void <init>(com.android.tools.r8.DexIndexedConsumer):86:87 -> <init>
    1:1:com.android.tools.r8.DexIndexedConsumer access$000():80:80 -> a
    2:2:java.lang.String getDefaultDexFileName(int):93:93 -> a
    1:2:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):108:109 -> accept
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):115:116 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():102:102 -> getDataResourceConsumer
com.android.tools.r8.DexSplitterHelper -> com.android.tools.r8.DexSplitterHelper:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():38:38 -> <clinit>
    1:1:void <init>():39:39 -> <init>
    1:1:void lambda$run$0(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String,java.util.concurrent.ExecutorService):48:48 -> a
    2:16:java.util.Map getDistribution(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.FeatureClassMapping,com.android.tools.r8.naming.ClassNameMapper):127:141 -> a
    1:4:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String):44:47 -> run
    5:9:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String):46:50 -> run
    10:69:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String,java.util.concurrent.ExecutorService):61:120 -> run
    70:72:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String,java.util.concurrent.ExecutorService):118:120 -> run
    73:77:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String,java.util.concurrent.ExecutorService):116:120 -> run
    1:3:void runD8ForTesting(com.android.tools.r8.D8Command,boolean):148:150 -> runD8ForTesting
com.android.tools.r8.DiagnosticsHandler -> com.android.tools.r8.DiagnosticsHandler:
    1:10:void error(com.android.tools.r8.Diagnostic):23:32 -> error
    1:4:void info(com.android.tools.r8.Diagnostic):55:58 -> info
    1:6:void warning(com.android.tools.r8.Diagnostic):41:46 -> warning
com.android.tools.r8.DirectoryClassFileProvider -> com.android.tools.r8.DirectoryClassFileProvider:
    java.nio.file.Path root -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():22:22 -> <clinit>
    1:2:void <init>(java.nio.file.Path):31:32 -> <init>
    1:11:void collectClassDescriptors(java.nio.file.Path,java.util.Set):43:53 -> a
    1:1:com.android.tools.r8.ClassFileResourceProvider fromDirectory(java.nio.file.Path):28:28 -> fromDirectory
    1:1:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet():218:218 -> getClassDescriptors
    1:1:java.util.Set getClassDescriptors():37 -> getClassDescriptors
    2:2:java.util.Set getClassDescriptors():38:38 -> getClassDescriptors
    1:6:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):63:68 -> getProgramResource
    1:1:java.nio.file.Path getRoot():73:73 -> getRoot
com.android.tools.r8.Disassemble -> com.android.tools.r8.f:
    1:18:void disassemble(com.android.tools.r8.Disassemble$DisassembleCommand):219:236 -> a
com.android.tools.r8.Disassemble$1 -> com.android.tools.r8.f$a:
com.android.tools.r8.Disassemble$DisassembleCommand -> com.android.tools.r8.f$b:
    java.nio.file.Path outputPath -> e
    boolean useIr -> i
    com.android.tools.r8.StringResource proguardMap -> f
    boolean allInfo -> g
    boolean useSmali -> h
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp,java.nio.file.Path,com.android.tools.r8.StringResource,boolean,boolean,boolean,com.android.tools.r8.Disassemble$1):26:26 -> <init>
    2:2:void <init>(boolean,boolean,com.android.tools.r8.Disassemble$1):26:26 -> <init>
    3:8:void <init>(com.android.tools.r8.utils.AndroidApp,java.nio.file.Path,com.android.tools.r8.StringResource,boolean,boolean,boolean):165:170 -> <init>
    9:14:void <init>(boolean,boolean):174:179 -> <init>
    1:1:com.android.tools.r8.StringResource access$200(com.android.tools.r8.Disassemble$DisassembleCommand):26:26 -> a
    2:3:com.android.tools.r8.utils.InternalOptions getInternalOptions():196:197 -> a
    1:1:boolean access$300(com.android.tools.r8.Disassemble$DisassembleCommand):26:26 -> b
    2:2:com.android.tools.r8.Disassemble$DisassembleCommand$Builder builder():107:107 -> b
    1:1:java.nio.file.Path getOutputPath():183:183 -> c
    1:1:boolean useIr():191:191 -> d
    1:1:boolean useSmali():187:187 -> e
com.android.tools.r8.Disassemble$DisassembleCommand$Builder -> com.android.tools.r8.f$b$a:
    boolean allInfo -> i
    java.nio.file.Path proguardMapFile -> g
    java.nio.file.Path outputPath -> f
    boolean useSmali -> h
    1:6:void <init>():31:36 -> <init>
    1:1:com.android.tools.r8.Disassemble$DisassembleCommand$Builder setOutputPath(java.nio.file.Path):54:54 -> c
    2:2:com.android.tools.r8.Disassemble$DisassembleCommand$Builder setUseSmali(boolean):64:64 -> c
    3:7:com.android.tools.r8.Disassemble$DisassembleCommand makeCommand():76:80 -> c
    3:7:com.android.tools.r8.BaseCommand makeCommand():31 -> c
    8:8:java.nio.file.Path getOutputPath():50:50 -> c
    8:8:com.android.tools.r8.Disassemble$DisassembleCommand makeCommand():81 -> c
    8:8:com.android.tools.r8.BaseCommand makeCommand():31 -> c
    9:9:com.android.tools.r8.Disassemble$DisassembleCommand makeCommand():82:82 -> c
    9:9:com.android.tools.r8.BaseCommand makeCommand():31 -> c
    10:10:com.android.tools.r8.Disassemble$DisassembleCommand makeCommand():77:77 -> c
    10:10:com.android.tools.r8.BaseCommand makeCommand():31 -> c
    com.android.tools.r8.BaseCommand$Builder self() -> d
    1:1:com.android.tools.r8.Disassemble$DisassembleCommand$Builder setProguardMapFile(java.nio.file.Path):45:45 -> d
com.android.tools.r8.ExtractMarker -> com.android.tools.r8.ExtractMarker:
    1:1:void <init>():30:30 -> <init>
    1:1:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):61:61 -> a
    2:12:void addDexResources(com.android.tools.r8.utils.AndroidApp$Builder,java.nio.file.Path):81:91 -> a
    13:23:void addDexResources(com.android.tools.r8.utils.AndroidApp$Builder,java.nio.file.Path):83:93 -> a
    24:29:java.util.Collection extractMarker(com.android.tools.r8.utils.AndroidApp):99:104 -> a
    1:8:int extractDexSize(java.nio.file.Path):54:61 -> extractDexSize
    9:11:int extractDexSize(java.nio.file.Path):59:61 -> extractDexSize
    1:2:java.util.Collection extractMarkerFromClassProgramData(byte[]):75:76 -> extractMarkerFromClassProgramData
    1:3:java.util.Collection extractMarkerFromDexFile(java.nio.file.Path):48:50 -> extractMarkerFromDexFile
    1:2:java.util.Collection extractMarkerFromDexProgramData(byte[]):69:70 -> extractMarkerFromDexProgramData
    1:55:void main(java.lang.String[]):109:163 -> main
    56:57:void main(java.lang.String[]):127:128 -> main
    58:101:void main(java.lang.String[]):127:170 -> main
com.android.tools.r8.ExtractMarker$VdexOrigin -> com.android.tools.r8.ExtractMarker$a:
    int index -> a
    1:2:void <init>(com.android.tools.r8.origin.Origin,int):36:37 -> <init>
    1:1:java.lang.String part():42:42 -> part
com.android.tools.r8.ExtractMarkerCommand -> com.android.tools.r8.h:
    java.lang.String USAGE_MESSAGE -> g
    java.util.List programFiles -> f
    boolean csv -> e
    boolean printHelp -> a
    boolean includeOther -> b
    boolean verbose -> c
    boolean summary -> d
    1:1:void <clinit>():67:67 -> <clinit>
    1:1:void <init>(boolean,com.android.tools.r8.ExtractMarkerCommand$1):14:14 -> <init>
    2:2:void <init>(boolean,boolean,boolean,boolean,java.util.List,com.android.tools.r8.ExtractMarkerCommand$1):14:14 -> <init>
    3:9:void <init>(boolean,boolean,boolean,boolean,java.util.List):118:124 -> <init>
    10:16:void <init>(boolean):127:133 -> <init>
    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder builder():77:77 -> a
    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder parse(java.lang.String[]):81 -> a
    2:20:void parse(java.lang.String[],com.android.tools.r8.ExtractMarkerCommand$Builder):87:105 -> a
    2:20:com.android.tools.r8.ExtractMarkerCommand$Builder parse(java.lang.String[]):82 -> a
    21:21:void parse(java.lang.String[],com.android.tools.r8.ExtractMarkerCommand$Builder):103:103 -> a
    21:21:com.android.tools.r8.ExtractMarkerCommand$Builder parse(java.lang.String[]):82 -> a
    22:22:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String) -> a
    22:22:void parse(java.lang.String[],com.android.tools.r8.ExtractMarkerCommand$Builder):103 -> a
    22:22:com.android.tools.r8.ExtractMarkerCommand$Builder parse(java.lang.String[]):82 -> a
    23:23:void parse(java.lang.String[],com.android.tools.r8.ExtractMarkerCommand$Builder):103:103 -> a
    23:23:com.android.tools.r8.ExtractMarkerCommand$Builder parse(java.lang.String[]):82 -> a
    24:24:boolean getCSV():157:157 -> a
    1:1:boolean getIncludeOther():145:145 -> b
    1:1:java.util.List getProgramFiles():141:141 -> c
    1:1:boolean getSummary():153:153 -> d
    1:1:boolean getVerbose():149:149 -> e
    1:1:boolean isPrintHelp():137:137 -> f
com.android.tools.r8.ExtractMarkerCommand$1 -> com.android.tools.r8.g:
com.android.tools.r8.ExtractMarkerCommand$Builder -> com.android.tools.r8.h$a:
    java.util.List programFiles -> f
    boolean csv -> e
    boolean printHelp -> a
    boolean includeOther -> b
    boolean verbose -> c
    boolean summary -> d
    1:7:void <init>():16:22 -> <init>
    1:1:boolean isPrintHelp():30:30 -> a
    1:1:com.android.tools.r8.ExtractMarkerCommand build():60 -> a
    2:2:com.android.tools.r8.ExtractMarkerCommand build():61:61 -> a
    3:3:boolean isPrintHelp():30:30 -> a
    3:3:com.android.tools.r8.ExtractMarkerCommand build():61 -> a
    4:6:com.android.tools.r8.ExtractMarkerCommand build():61:63 -> a
    7:7:com.android.tools.r8.ExtractMarkerCommand$Builder setCSV(boolean):49:49 -> a
    8:8:com.android.tools.r8.ExtractMarkerCommand$Builder addProgramFile(java.nio.file.Path):54:54 -> a
    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder setIncludeOther(boolean):34:34 -> b
    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder setPrintHelp(boolean):25:25 -> c
    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder setSummary(boolean):44:44 -> d
    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder setVerbose(boolean):39:39 -> e
com.android.tools.r8.FeatureSplit -> com.android.tools.r8.FeatureSplit:
    java.util.List programResourceProviders -> b
    com.android.tools.r8.ProgramConsumer programConsumer -> a
    1:1:void <init>(com.android.tools.r8.ProgramConsumer,java.util.List,com.android.tools.r8.FeatureSplit$1):31:31 -> <init>
    2:4:void <init>(com.android.tools.r8.ProgramConsumer,java.util.List):36:38 -> <init>
    1:1:com.android.tools.r8.ProgramConsumer getProgramConsumer():46:46 -> getProgramConsumer
    1:1:java.util.List getProgramResourceProviders():42:42 -> getProgramResourceProviders
com.android.tools.r8.FeatureSplit$1 -> com.android.tools.r8.FeatureSplit$a:
com.android.tools.r8.FeatureSplit$Builder -> com.android.tools.r8.FeatureSplit$Builder:
    java.util.List programResourceProviders -> b
    com.android.tools.r8.ProgramConsumer programConsumer -> a
    1:1:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.FeatureSplit$1):59:59 -> <init>
    2:2:void <init>(com.android.tools.r8.DiagnosticsHandler):64:64 -> <init>
    3:3:void <init>(com.android.tools.r8.DiagnosticsHandler):61:61 -> <init>
    1:1:com.android.tools.r8.FeatureSplit$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):87:87 -> addProgramResourceProvider
    1:1:com.android.tools.r8.FeatureSplit build():93:93 -> build
    1:1:com.android.tools.r8.FeatureSplit$Builder setProgramConsumer(com.android.tools.r8.ProgramConsumer):77:77 -> setProgramConsumer
com.android.tools.r8.GenerateLintFiles -> com.android.tools.r8.i:
    com.android.tools.r8.utils.InternalOptions options -> c
    java.util.Set parallelMethods -> f
    boolean $assertionsDisabled -> g
    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration desugaredLibraryConfiguration -> d
    com.android.tools.r8.utils.Reporter reporter -> b
    java.lang.String outputDirectory -> e
    com.android.tools.r8.graph.DexItemFactory factory -> a
    1:1:void <clinit>():60:60 -> <clinit>
    1:1:void <init>(java.lang.String,java.lang.String):73:73 -> <init>
    2:22:void <init>(java.lang.String,java.lang.String):64:84 -> <init>
    23:35:void <init>(java.lang.String,java.lang.String):81:93 -> <init>
    36:42:void <init>(java.lang.String,java.lang.String):92:98 -> <init>
    43:45:void <init>(java.lang.String,java.lang.String):97:99 -> <init>
    1:3:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration readDesugaredLibraryConfiguration(java.lang.String):110:112 -> a
    4:14:void addMethodsToHeaderJar(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):128:138 -> a
    15:22:com.android.tools.r8.graph.CfCode buildEmptyThrowingCfCode(com.android.tools.r8.graph.DexMethod):116:123 -> a
    15:22:void addMethodsToHeaderJar(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):138 -> a
    23:28:void addMethodsToHeaderJar(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):140:145 -> a
    29:29:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,int):223:223 -> a
    29:29:void addMethodsToHeaderJar(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):145 -> a
    30:63:void addMethodsToHeaderJar(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):148:181 -> a
    64:64:com.android.tools.r8.GenerateLintFiles$SupportedMethods collectSupportedMethods(com.android.tools.r8.utils.AndroidApiLevel,java.util.function.Predicate):202:202 -> a
    65:66:java.nio.file.Path getAndroidJarPath(com.android.tools.r8.utils.AndroidApiLevel):104:105 -> a
    65:66:com.android.tools.r8.GenerateLintFiles$SupportedMethods collectSupportedMethods(com.android.tools.r8.utils.AndroidApiLevel,java.util.function.Predicate):202 -> a
    67:124:com.android.tools.r8.GenerateLintFiles$SupportedMethods collectSupportedMethods(com.android.tools.r8.utils.AndroidApiLevel,java.util.function.Predicate):202:259 -> a
    125:125:java.util.List lambda$collectSupportedMethods$0(com.android.tools.r8.graph.DexClass):217:217 -> a
    126:129:java.nio.file.Path lintFile(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,java.lang.String):270:273 -> a
    130:130:java.lang.String lintBaseFileName(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel):264:264 -> a
    130:130:java.nio.file.Path lintFile(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,java.lang.String):276 -> a
    131:131:java.nio.file.Path lintFile(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,java.lang.String):276:276 -> a
    132:132:java.nio.file.Path lintFile(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,java.lang.String):273:273 -> a
    133:159:void writeLintFiles(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.GenerateLintFiles$SupportedMethods):286:312 -> a
    160:179:void writeLintFiles(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.GenerateLintFiles$SupportedMethods):311:330 -> a
    180:184:void lambda$writeLintFiles$3(com.android.tools.r8.GenerateLintFiles$SupportedMethods,java.util.List,com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):291:295 -> a
    185:185:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    185:185:void lambda$writeLintFiles$3(com.android.tools.r8.GenerateLintFiles$SupportedMethods,java.util.List,com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):299 -> a
    186:186:void lambda$writeLintFiles$3(com.android.tools.r8.GenerateLintFiles$SupportedMethods,java.util.List,com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):299:299 -> a
    187:187:void lambda$writeLintFiles$3(com.android.tools.r8.GenerateLintFiles$SupportedMethods,java.util.List,com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):295:295 -> a
    188:188:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    188:188:void lambda$writeLintFiles$3(com.android.tools.r8.GenerateLintFiles$SupportedMethods,java.util.List,com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):299 -> a
    189:192:void lambda$writeLintFiles$3(com.android.tools.r8.GenerateLintFiles$SupportedMethods,java.util.List,com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexClass,java.util.List):302:305 -> a
    193:206:void generateLintFiles(com.android.tools.r8.utils.AndroidApiLevel,java.util.function.Predicate,java.util.function.BiPredicate):338:351 -> a
    207:207:boolean lambda$generateLintFiles$4(java.util.function.BiPredicate,com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.graph.DexEncodedMethod):348:348 -> a
    208:213:void run():356:361 -> a
    214:214:void run():360:360 -> a
    215:215:boolean lambda$run$5(com.android.tools.r8.utils.AndroidApiLevel):362:362 -> a
    216:221:boolean lambda$run$6(com.android.tools.r8.utils.AndroidApiLevel,com.android.tools.r8.graph.DexEncodedMethod):364:369 -> a
    222:226:void main(java.lang.String[]):375:379 -> a
    1:1:java.util.List lambda$collectSupportedMethods$1(com.android.tools.r8.graph.DexClass):239:239 -> b
    1:1:java.util.List lambda$collectSupportedMethods$2(com.android.tools.r8.graph.DexClass):253:253 -> c
com.android.tools.r8.GenerateLintFiles$SupportedMethods -> com.android.tools.r8.i$a:
    java.util.Map supportedMethods -> b
    java.util.Set classesWithAllMethodsSupported -> a
    1:3:void <init>(java.util.Set,java.util.Map):190:192 -> <init>
com.android.tools.r8.GenerateMainDexList -> com.android.tools.r8.GenerateMainDexList:
    com.android.tools.r8.utils.Timing timing -> a
    com.android.tools.r8.utils.InternalOptions options -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():37:37 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions):42:42 -> <init>
    2:6:void <init>(com.android.tools.r8.utils.InternalOptions):39:43 -> <init>
    1:58:java.util.List run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):49:106 -> a
    59:59:java.lang.String lambda$run$0(com.android.tools.r8.graph.DexType):72:72 -> a
    60:64:java.lang.Iterable lambda$run$2(com.android.tools.r8.shaking.MainDexClasses,com.android.tools.r8.graph.AppView):84:88 -> a
    65:67:void lambda$run$3(com.android.tools.r8.utils.Box,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):154:156 -> a
    68:68:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    68:68:void lambda$run$1(com.android.tools.r8.graph.AppView,java.util.ArrayList,com.android.tools.r8.graph.DexType):90 -> a
    69:70:void lambda$run$1(com.android.tools.r8.graph.AppView,java.util.ArrayList,com.android.tools.r8.graph.DexType):91:92 -> a
    1:13:void main(java.lang.String[]):163:175 -> main
    1:5:java.util.List run(com.android.tools.r8.GenerateMainDexListCommand):124:128 -> run
    6:10:java.util.List run(com.android.tools.r8.GenerateMainDexListCommand,java.util.concurrent.ExecutorService):147:151 -> run
    11:11:void com.android.tools.r8.utils.ExceptionUtils.withMainDexListHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):60:60 -> run
    11:11:java.util.List run(com.android.tools.r8.GenerateMainDexListCommand,java.util.concurrent.ExecutorService):150 -> run
    12:12:java.util.List run(com.android.tools.r8.GenerateMainDexListCommand,java.util.concurrent.ExecutorService):159:159 -> run
com.android.tools.r8.GenerateMainDexListCommand -> com.android.tools.r8.GenerateMainDexListCommand:
    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> g
    java.lang.String USAGE_MESSAGE -> j
    java.util.List mainDexKeepRules -> e
    com.android.tools.r8.utils.Reporter reporter -> i
    com.android.tools.r8.graph.DexItemFactory factory -> h
    com.android.tools.r8.StringConsumer mainDexListConsumer -> f
    1:1:void <clinit>():137:137 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApp,java.util.List,com.android.tools.r8.StringConsumer,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.utils.Reporter,com.android.tools.r8.GenerateMainDexListCommand$1):26:26 -> <init>
    2:2:void <init>(boolean,boolean,com.android.tools.r8.GenerateMainDexListCommand$1):26:26 -> <init>
    3:8:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApp,java.util.List,com.android.tools.r8.StringConsumer,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.utils.Reporter):206:211 -> <init>
    9:14:void <init>(boolean,boolean):215:220 -> <init>
    1:8:com.android.tools.r8.utils.InternalOptions getInternalOptions():225:232 -> a
    1:1:com.android.tools.r8.utils.Reporter getReporter():169:169 -> b
    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder builder():151:151 -> builder
    2:2:com.android.tools.r8.GenerateMainDexListCommand$Builder builder(com.android.tools.r8.DiagnosticsHandler):155:155 -> builder
    1:1:com.android.tools.r8.StringConsumer getMainDexListConsumer():165:165 -> getMainDexListConsumer
    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder parse(java.lang.String[]):159:159 -> parse
    2:23:void parse(java.lang.String[],com.android.tools.r8.GenerateMainDexListCommand$Builder):173:194 -> parse
    2:23:com.android.tools.r8.GenerateMainDexListCommand$Builder parse(java.lang.String[]):160 -> parse
com.android.tools.r8.GenerateMainDexListCommand$1 -> com.android.tools.r8.GenerateMainDexListCommand$a:
com.android.tools.r8.GenerateMainDexListCommand$Builder -> com.android.tools.r8.GenerateMainDexListCommand$Builder:
    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> i
    com.android.tools.r8.graph.DexItemFactory factory -> f
    com.android.tools.r8.StringConsumer mainDexListConsumer -> h
    java.util.List mainDexRules -> g
    1:1:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.GenerateMainDexListCommand$1):35:35 -> <init>
    2:2:void <init>(com.android.tools.r8.GenerateMainDexListCommand$1):35:35 -> <init>
    3:3:void <init>():42:42 -> <init>
    4:7:void <init>():37:40 -> <init>
    8:8:void <init>(com.android.tools.r8.DiagnosticsHandler):46:46 -> <init>
    9:12:void <init>(com.android.tools.r8.DiagnosticsHandler):37:40 -> <init>
    1:2:void lambda$addMainDexRulesFiles$1(java.util.List):72:73 -> a
    3:4:void lambda$addMainDexRules$2(java.util.List,com.android.tools.r8.origin.Origin):83:84 -> a
    5:5:void lambda$addMainDexRules$2(java.util.List,com.android.tools.r8.origin.Origin):83:83 -> a
    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder addMainDexRules(java.util.List,com.android.tools.r8.origin.Origin):83:83 -> addMainDexRules
    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder addMainDexRulesFiles(java.nio.file.Path[]):59:59 -> addMainDexRulesFiles
    2:2:com.android.tools.r8.GenerateMainDexListCommand$Builder addMainDexRulesFiles(java.util.List):71:71 -> addMainDexRulesFiles
    1:2:void lambda$addMainDexRulesFiles$0(java.nio.file.Path[]):60:61 -> c
    3:23:com.android.tools.r8.GenerateMainDexListCommand makeCommand():107:127 -> c
    3:23:com.android.tools.r8.BaseCommand makeCommand():34 -> c
    24:24:com.android.tools.r8.GenerateMainDexListCommand makeCommand():108:108 -> c
    24:24:com.android.tools.r8.BaseCommand makeCommand():34 -> c
    com.android.tools.r8.BaseCommand$Builder self() -> d
    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder setMainDexKeptGraphConsumer(com.android.tools.r8.experimental.graphinfo.GraphConsumer):132:132 -> setMainDexKeptGraphConsumer
    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder setMainDexListConsumer(com.android.tools.r8.StringConsumer):100:100 -> setMainDexListConsumer
    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder setMainDexListOutputPath(java.nio.file.Path):94:94 -> setMainDexListOutputPath
com.android.tools.r8.InternalProgramOutputPathConsumer -> com.android.tools.r8.j:
com.android.tools.r8.JdkClassFileProvider -> com.android.tools.r8.JdkClassFileProvider:
    com.android.tools.r8.origin.Origin origin -> a
    java.util.Map descriptorToModule -> c
    boolean $assertionsDisabled -> f
    java.nio.file.FileSystem jrtFs -> e
    java.util.Set descriptors -> b
    java.net.URLClassLoader jrtFsJarLoader -> d
    1:1:void <clinit>():37:37 -> <clinit>
    1:1:void <init>():100:100 -> <init>
    2:64:void <init>():40:102 -> <init>
    65:65:void <init>(java.nio.file.Path):111:111 -> <init>
    66:144:void <init>(java.nio.file.Path):40:118 -> <init>
    1:3:void collectDescriptors(java.nio.file.FileSystem):122:124 -> a
    4:8:void lambda$collectDescriptors$0(java.nio.file.Path):126:130 -> a
    9:11:void lambda$collectDescriptors$0(java.nio.file.Path):129:131 -> a
    1:3:void close():169:171 -> close
    1:2:void finalize():163:164 -> finalize
    1:1:com.android.tools.r8.ClassFileResourceProvider fromJavaRuntimeJar(java.nio.file.Path):97:97 -> fromJavaRuntimeJar
    1:15:com.android.tools.r8.ClassFileResourceProvider fromJdkHome(java.nio.file.Path):79:93 -> fromJdkHome
    1:1:com.android.tools.r8.ClassFileResourceProvider fromSystemJdk():52:52 -> fromSystemJdk
    1:5:com.android.tools.r8.ClassFileResourceProvider fromSystemModulesJdk(java.nio.file.Path):62:66 -> fromSystemModulesJdk
    6:6:com.android.tools.r8.ClassFileResourceProvider fromSystemModulesJdk(java.nio.file.Path):64:64 -> fromSystemModulesJdk
    1:1:java.util.Set getClassDescriptors():138:138 -> getClassDescriptors
    1:12:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):143:154 -> getProgramResource
    13:13:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):151:151 -> getProgramResource
    14:19:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):150:155 -> getProgramResource
    20:30:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):147:157 -> getProgramResource
    31:31:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> getProgramResource
    31:31:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):157 -> getProgramResource
    32:32:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):157:157 -> getProgramResource
com.android.tools.r8.L8 -> com.android.tools.r8.L8:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():36:36 -> <clinit>
    1:1:void <init>():37:37 -> <init>
    1:2:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,boolean,com.android.tools.r8.D8Command,com.android.tools.r8.R8Command):77:78 -> a
    3:3:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,boolean,com.android.tools.r8.D8Command,com.android.tools.r8.R8Command,java.util.concurrent.ExecutorService):90:90 -> a
    4:4:void com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):50:50 -> a
    4:4:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,boolean,com.android.tools.r8.D8Command,com.android.tools.r8.R8Command,java.util.concurrent.ExecutorService):90 -> a
    5:10:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,boolean,com.android.tools.r8.D8Command,com.android.tools.r8.R8Command,java.util.concurrent.ExecutorService):96:101 -> a
    11:41:void desugar(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):107:137 -> a
    11:41:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):93 -> a
    42:42:com.android.tools.r8.ClassFileConsumer com.android.tools.r8.utils.InternalOptions.getClassFileConsumer():357:357 -> a
    42:42:void desugar(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):139 -> a
    42:42:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):93 -> a
    43:51:void desugar(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):139:147 -> a
    43:51:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):93 -> a
    52:57:void desugar(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):142:147 -> a
    52:57:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):93 -> a
    58:59:void run(java.lang.String[]):153:154 -> a
    58:59:void lambda$main$1(java.lang.String[]):176 -> a
    60:60:void com.android.tools.r8.utils.SelfRetraceTest.test():25:25 -> a
    60:60:void run(java.lang.String[]):155 -> a
    60:60:void lambda$main$1(java.lang.String[]):176 -> a
    61:61:void run(java.lang.String[]):156:156 -> a
    61:61:void lambda$main$1(java.lang.String[]):176 -> a
    62:62:void com.android.tools.r8.utils.SelfRetraceTest.foo3():13:13 -> a
    62:62:void com.android.tools.r8.utils.SelfRetraceTest.foo2():17 -> a
    62:62:void com.android.tools.r8.utils.SelfRetraceTest.foo1():21 -> a
    62:62:void com.android.tools.r8.utils.SelfRetraceTest.test():26 -> a
    62:62:void run(java.lang.String[]):155 -> a
    62:62:void lambda$main$1(java.lang.String[]):176 -> a
    63:67:void run(java.lang.String[]):159:163 -> a
    63:67:void lambda$main$1(java.lang.String[]):176 -> a
    1:5:void main(java.lang.String[]):172:176 -> main
    1:5:void run(com.android.tools.r8.L8Command):46:50 -> run
    6:6:void run(com.android.tools.r8.L8Command):45:45 -> run
    7:11:void run(com.android.tools.r8.L8Command,java.util.concurrent.ExecutorService):62:66 -> run
    12:12:void run(com.android.tools.r8.L8Command,java.util.concurrent.ExecutorService):61:61 -> run
com.android.tools.r8.L8Command -> com.android.tools.r8.L8Command:
    com.android.tools.r8.graph.DexItemFactory factory -> s
    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration libraryConfiguration -> r
    boolean $assertionsDisabled -> u
    com.android.tools.r8.D8Command d8Command -> p
    java.lang.String USAGE_MESSAGE -> t
    com.android.tools.r8.R8Command r8Command -> q
    1:4:void <clinit>():26:29 -> <clinit>
    1:1:void <init>(com.android.tools.r8.R8Command,com.android.tools.r8.D8Command,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.CompilationMode,com.android.tools.r8.ProgramConsumer,com.android.tools.r8.StringConsumer,int,com.android.tools.r8.utils.Reporter,com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration,java.util.List,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.L8Command$1):27:27 -> <init>
    2:2:void <init>(boolean,boolean,com.android.tools.r8.L8Command$1):27:27 -> <init>
    3:18:void <init>(com.android.tools.r8.R8Command,com.android.tools.r8.D8Command,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.CompilationMode,com.android.tools.r8.ProgramConsumer,com.android.tools.r8.StringConsumer,int,com.android.tools.r8.utils.Reporter,com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration,java.util.List,com.android.tools.r8.graph.DexItemFactory):87:102 -> <init>
    19:23:void <init>(boolean,boolean):106:110 -> <init>
    boolean lambda$new$0(java.lang.String,java.lang.Long) -> a
    1:43:com.android.tools.r8.utils.InternalOptions getInternalOptions():139:181 -> a
    1:1:com.android.tools.r8.L8Command$Builder builder():130:130 -> builder
    2:2:com.android.tools.r8.L8Command$Builder builder(com.android.tools.r8.DiagnosticsHandler):134:134 -> builder
    1:1:com.android.tools.r8.D8Command getD8Command():41:41 -> d
    1:1:com.android.tools.r8.R8Command getR8Command():45:45 -> e
    1:1:boolean isShrinking():37:37 -> f
    1:1:com.android.tools.r8.L8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):58:58 -> parse
    2:2:com.android.tools.r8.L8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):72:72 -> parse
com.android.tools.r8.L8Command$1 -> com.android.tools.r8.L8Command$a:
com.android.tools.r8.L8Command$Builder -> com.android.tools.r8.L8Command$Builder:
    java.util.List proguardConfigFiles -> t
    java.util.List proguardConfigStrings -> s
    1:1:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.L8Command$1):192:192 -> <init>
    2:2:void <init>(com.android.tools.r8.L8Command$1):192:192 -> <init>
    3:3:void <init>():198:198 -> <init>
    4:4:void <init>(com.android.tools.r8.DiagnosticsHandler):202:202 -> <init>
    5:6:void <init>(com.android.tools.r8.DiagnosticsHandler):194:195 -> <init>
    1:1:com.android.tools.r8.L8Command$Builder addProguardConfiguration(java.util.List,com.android.tools.r8.origin.Origin):234:234 -> addProguardConfiguration
    1:1:com.android.tools.r8.L8Command$Builder addProguardConfigurationFiles(java.nio.file.Path[]):222:222 -> addProguardConfigurationFiles
    2:2:com.android.tools.r8.L8Command$Builder addProguardConfigurationFiles(java.util.List):228:228 -> addProguardConfigurationFiles
    1:5:com.android.tools.r8.L8Command makeCommand():260:264 -> c
    1:5:com.android.tools.r8.BaseCommand makeCommand():191 -> c
    6:6:com.android.tools.r8.CompilationMode defaultCompilationMode():217:217 -> c
    6:6:com.android.tools.r8.L8Command makeCommand():265 -> c
    6:6:com.android.tools.r8.BaseCommand makeCommand():191 -> c
    7:35:com.android.tools.r8.L8Command makeCommand():265:293 -> c
    7:35:com.android.tools.r8.BaseCommand makeCommand():191 -> c
    36:63:com.android.tools.r8.L8Command makeCommand():292:319 -> c
    36:63:com.android.tools.r8.BaseCommand makeCommand():191 -> c
    64:64:com.android.tools.r8.L8Command makeCommand():261:261 -> c
    64:64:com.android.tools.r8.BaseCommand makeCommand():191 -> c
    com.android.tools.r8.BaseCommand$Builder self() -> d
    1:16:void validate():240:255 -> e
    1:1:com.android.tools.r8.CompilationMode defaultCompilationMode():217:217 -> f
    1:1:boolean isShrinking():207:207 -> isShrinking
com.android.tools.r8.L8Command$DefaultL8DiagnosticsHandler -> com.android.tools.r8.L8Command$b:
    1:1:void <init>():113:113 -> <init>
    1:5:void error(com.android.tools.r8.Diagnostic):117:121 -> error
    6:12:void error(com.android.tools.r8.Diagnostic):119:125 -> error
com.android.tools.r8.L8Command$DesugaredLibrary -> com.android.tools.r8.L8Command$c:
    java.util.List resources -> a
    1:3:void <init>():324:326 -> <init>
    1:3:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):332:334 -> accept
    4:4:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):333:333 -> accept
    5:5:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):332:332 -> accept
    1:1:java.util.Collection getProgramResources():339:339 -> getProgramResources
com.android.tools.r8.L8CommandParser -> com.android.tools.r8.k:
    java.util.Set OPTIONS_WITH_PARAMETER -> d
    1:26:void <clinit>():22:47 -> <clinit>
    27:44:void <clinit>():37:54 -> <clinit>
    45:45:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable):449:449 -> <clinit>
    45:45:void <clinit>():36 -> <clinit>
    46:46:void <clinit>():34:34 -> <clinit>
    1:1:void <init>():19:19 -> <init>
    1:1:com.android.tools.r8.L8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):68:68 -> a
    2:2:com.android.tools.r8.L8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):82:82 -> a
    3:41:com.android.tools.r8.L8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.L8Command$Builder):91:129 -> a
    42:68:com.android.tools.r8.L8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.L8Command$Builder):127:153 -> a
    69:69:boolean com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder.isEmpty():65:65 -> a
    69:69:com.android.tools.r8.L8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.L8Command$Builder):156 -> a
    70:81:com.android.tools.r8.L8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.L8Command$Builder):157:168 -> a
com.android.tools.r8.OutputMode -> com.android.tools.r8.OutputMode:
    com.android.tools.r8.OutputMode[] $VALUES -> a
    1:16:void <clinit>():11:26 -> <clinit>
    17:17:void <clinit>():7:7 -> <clinit>
    1:1:void <init>(java.lang.String,int):8:8 -> <init>
    1:1:com.android.tools.r8.OutputMode valueOf(java.lang.String):7:7 -> valueOf
    1:1:com.android.tools.r8.OutputMode[] values():7:7 -> values
com.android.tools.r8.ProgramResource -> com.android.tools.r8.ProgramResource:
    1:1:com.android.tools.r8.ProgramResource fromBytes(com.android.tools.r8.origin.Origin,com.android.tools.r8.ProgramResource$Kind,byte[],java.util.Set):52:52 -> fromBytes
    1:1:com.android.tools.r8.ProgramResource fromFile(com.android.tools.r8.ProgramResource$Kind,java.nio.file.Path):41:41 -> fromFile
com.android.tools.r8.ProgramResource$1 -> com.android.tools.r8.ProgramResource$a:
com.android.tools.r8.ProgramResource$ByteResource -> com.android.tools.r8.ProgramResource$ByteResource:
    com.android.tools.r8.origin.Origin origin -> a
    java.util.Set classDescriptors -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ProgramResource$Kind kind -> b
    byte[] bytes -> c
    1:1:void <clinit>():111:111 -> <clinit>
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.ProgramResource$Kind,byte[],java.util.Set,com.android.tools.r8.ProgramResource$1):112:112 -> <init>
    2:7:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.ProgramResource$Kind,byte[],java.util.Set):118:123 -> <init>
    1:1:java.io.InputStream getByteStream():138:138 -> getByteStream
    1:1:java.util.Set getClassDescriptors():143:143 -> getClassDescriptors
    1:1:com.android.tools.r8.ProgramResource$Kind getKind():133:133 -> getKind
    1:1:com.android.tools.r8.origin.Origin getOrigin():128:128 -> getOrigin
com.android.tools.r8.ProgramResource$FileResource -> com.android.tools.r8.ProgramResource$FileResource:
    com.android.tools.r8.origin.Origin origin -> a
    java.nio.file.Path file -> c
    java.util.Set classDescriptors -> d
    com.android.tools.r8.ProgramResource$Kind kind -> b
    1:1:void <init>(com.android.tools.r8.ProgramResource$Kind,java.nio.file.Path,java.util.Set,com.android.tools.r8.ProgramResource$1):72:72 -> <init>
    2:6:void <init>(com.android.tools.r8.ProgramResource$Kind,java.nio.file.Path,java.util.Set):78:82 -> <init>
    1:3:java.io.InputStream getByteStream():98:100 -> getByteStream
    1:1:java.util.Set getClassDescriptors():106:106 -> getClassDescriptors
    1:1:com.android.tools.r8.ProgramResource$Kind getKind():92:92 -> getKind
    1:1:com.android.tools.r8.origin.Origin getOrigin():87:87 -> getOrigin
com.android.tools.r8.ProgramResource$Kind -> com.android.tools.r8.ProgramResource$Kind:
    com.android.tools.r8.ProgramResource$Kind[] $VALUES -> a
    1:3:void <clinit>():30:32 -> <clinit>
    4:4:void <clinit>():27:27 -> <clinit>
    1:1:void <init>(java.lang.String,int):28:28 -> <init>
    1:1:com.android.tools.r8.ProgramResource$Kind valueOf(java.lang.String):27:27 -> valueOf
    1:1:com.android.tools.r8.ProgramResource$Kind[] values():27:27 -> values
com.android.tools.r8.R8 -> com.android.tools.r8.R8:
    com.android.tools.r8.utils.Timing timing -> a
    com.android.tools.r8.utils.InternalOptions options -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():140:140 -> <clinit>
    1:7:void <init>(com.android.tools.r8.utils.InternalOptions):146:152 -> <init>
    1:1:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):185:185 -> a
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    2:2:void lambda$run$5(com.android.tools.r8.graph.AppView,java.util.ArrayList,com.android.tools.r8.graph.DexType):577 -> a
    3:4:void lambda$run$5(com.android.tools.r8.graph.AppView,java.util.ArrayList,com.android.tools.r8.graph.DexType):578:579 -> a
    5:6:void writeApplication(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.ProguardMapSupplier):199:200 -> a
    7:7:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    7:7:void writeApplication(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.ProguardMapSupplier):201 -> a
    8:8:void writeApplication(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.ProguardMapSupplier):202:202 -> a
    9:9:com.android.tools.r8.ClassFileConsumer com.android.tools.r8.utils.InternalOptions.getClassFileConsumer():357:357 -> a
    9:9:void writeApplication(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.ProguardMapSupplier):204 -> a
    10:23:void writeApplication(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.ProguardMapSupplier):204:217 -> a
    24:25:java.util.Set filterMissingClasses(java.util.Set,com.android.tools.r8.shaking.ProguardClassFilter):223:224 -> a
    26:27:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):230:231 -> a
    28:28:void com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):55:55 -> a
    28:28:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):231 -> a
    29:55:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):248:274 -> a
    56:86:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):273:303 -> a
    87:91:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):302:306 -> a
    92:92:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):305:305 -> a
    93:104:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):304:315 -> a
    105:107:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):314:316 -> a
    108:129:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):310:331 -> a
    130:154:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):330:354 -> a
    155:155:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):351:351 -> a
    156:207:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):347:398 -> a
    208:230:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):397:419 -> a
    231:255:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):416:440 -> a
    256:275:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):437:456 -> a
    276:290:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):453:467 -> a
    291:300:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):464:473 -> a
    301:313:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):470:482 -> a
    314:322:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):480:488 -> a
    323:373:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):485:535 -> a
    374:378:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):531:535 -> a
    379:463:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):529:613 -> a
    464:464:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):611:611 -> a
    465:483:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):610:628 -> a
    484:500:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):626:642 -> a
    501:501:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):639:639 -> a
    502:517:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):636:651 -> a
    518:573:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):650:705 -> a
    574:669:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):704:799 -> a
    670:699:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):745:774 -> a
    700:700:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):770:770 -> a
    701:721:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):768:788 -> a
    722:738:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):783:799 -> a
    739:739:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):671:671 -> a
    740:740:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):514:514 -> a
    741:1174:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):366:799 -> a
    1175:1176:void lambda$run$2(com.android.tools.r8.graph.DexType):278:279 -> a
    1177:1177:void lambda$run$2(com.android.tools.r8.graph.DexType):278:278 -> a
    1178:1178:void lambda$run$4(com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):340:340 -> a
    1179:1183:java.lang.Iterable lambda$run$6(com.android.tools.r8.shaking.MainDexClasses,com.android.tools.r8.graph.AppView):571:575 -> a
    1184:1184:com.android.tools.r8.shaking.TreePrunerConfiguration lambda$run$7(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):627:627 -> a
    1185:1185:java.lang.Iterable lambda$run$8(com.android.tools.r8.graph.AppView):652:652 -> a
    1186:1186:void lambda$run$9(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteShrinker):683:683 -> a
    1187:1187:void lambda$run$10(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):691:691 -> a
    1188:1188:void lambda$run$11(java.lang.String):739:739 -> a
    1189:1189:void lambda$run$12(com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder,com.android.tools.r8.graph.DexEncodedMethod):750:750 -> a
    1190:1190:boolean lambda$run$13(com.android.tools.r8.graph.DexProgramClass):762:762 -> a
    1191:1199:com.android.tools.r8.graph.AppView runEnqueuer(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.AppView):806:814 -> a
    1200:1208:com.android.tools.r8.graph.AppView runEnqueuer(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.AppView):812:820 -> a
    1209:1209:com.android.tools.r8.graph.AppView runEnqueuer(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.AppView):818:818 -> a
    1210:1210:com.android.tools.r8.graph.AppView runEnqueuer(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.AppView):817:817 -> a
    1211:1213:void processWhyAreYouKeepingAndCheckDiscarded(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.function.Supplier,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.Enqueuer,boolean,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):837:839 -> a
    1214:1236:void processWhyAreYouKeepingAndCheckDiscarded(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.function.Supplier,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.Enqueuer,boolean,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):838:860 -> a
    1237:1248:void processWhyAreYouKeepingAndCheckDiscarded(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.function.Supplier,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.Enqueuer,boolean,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):858:869 -> a
    1249:1254:void processWhyAreYouKeepingAndCheckDiscarded(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.function.Supplier,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.Enqueuer,boolean,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):868:873 -> a
    1255:1260:void processWhyAreYouKeepingAndCheckDiscarded(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.function.Supplier,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.Enqueuer,boolean,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):871:876 -> a
    1261:1261:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    1261:1261:void processWhyAreYouKeepingAndCheckDiscarded(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.function.Supplier,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.Enqueuer,boolean,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):876 -> a
    1262:1262:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    1262:1262:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    1262:1262:void processWhyAreYouKeepingAndCheckDiscarded(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.function.Supplier,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.Enqueuer,boolean,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):876 -> a
    1263:1263:void processWhyAreYouKeepingAndCheckDiscarded(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.function.Supplier,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.Enqueuer,boolean,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):876:876 -> a
    1264:1272:void computeKotlinInfoForProgramClasses(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):880:888 -> a
    1273:1276:boolean verifyNoJarApplicationReaders(java.util.List):893:896 -> a
    1277:1277:void lambda$run$14(com.android.tools.r8.R8Command,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):918:918 -> a
    1278:1278:void lambda$main$15(java.lang.String[]):934:934 -> a
    boolean lambda$run$3(com.android.tools.r8.graph.DexType) -> b
    1:3:void lambda$runForTesting$1(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):235:237 -> b
    4:5:void run(java.lang.String[]):904:905 -> b
    6:6:void com.android.tools.r8.utils.SelfRetraceTest.test():25:25 -> b
    6:6:void run(java.lang.String[]):906 -> b
    7:7:void run(java.lang.String[]):907:907 -> b
    8:8:void com.android.tools.r8.utils.SelfRetraceTest.foo3():13:13 -> b
    8:8:void com.android.tools.r8.utils.SelfRetraceTest.foo2():17 -> b
    8:8:void com.android.tools.r8.utils.SelfRetraceTest.foo1():21 -> b
    8:8:void com.android.tools.r8.utils.SelfRetraceTest.test():26 -> b
    8:8:void run(java.lang.String[]):906 -> b
    9:16:void run(java.lang.String[]):910:917 -> b
    17:17:void com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):55:55 -> b
    17:17:void run(java.lang.String[]):917 -> b
    18:18:void run(java.lang.String[]):920:920 -> b
    1:1:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):244:244 -> c
    1:5:void main(java.lang.String[]):930:934 -> main
    1:3:void run(com.android.tools.r8.R8Command):164:166 -> run
    4:7:void run(com.android.tools.r8.R8Command,java.util.concurrent.ExecutorService):180:183 -> run
    8:8:void com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):55:55 -> run
    8:8:void run(com.android.tools.r8.R8Command,java.util.concurrent.ExecutorService):182 -> run
com.android.tools.r8.R8Command -> com.android.tools.r8.R8Command:
    java.lang.String USAGE_MESSAGE -> F
    java.util.List mainDexKeepRules -> p
    com.android.tools.r8.StringConsumer proguardConfigurationConsumer -> y
    boolean forceProguardCompatibility -> u
    com.android.tools.r8.StringConsumer proguardUsageConsumer -> w
    com.android.tools.r8.features.FeatureSplitConfiguration featureSplitConfiguration -> E
    com.android.tools.r8.StringConsumer proguardSeedsConsumer -> x
    com.android.tools.r8.StringConsumer proguardMapConsumer -> v
    boolean enableTreeShaking -> r
    boolean enableMinification -> s
    boolean disableVerticalClassMerging -> t
    com.android.tools.r8.shaking.ProguardConfiguration proguardConfiguration -> q
    com.android.tools.r8.experimental.graphinfo.GraphConsumer keptGraphConsumer -> z
    java.util.function.Consumer syntheticProguardRulesConsumer -> B
    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> A
    boolean $assertionsDisabled -> G
    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration libraryConfiguration -> D
    com.android.tools.r8.StringConsumer desugaredLibraryKeepRuleConsumer -> C
    1:577:void <clinit>():58:634 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.ProgramConsumer,java.util.List,com.android.tools.r8.StringConsumer,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.CompilationMode,int,com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.InternalOptions$DesugarState,boolean,boolean,boolean,boolean,com.android.tools.r8.StringConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.experimental.graphinfo.GraphConsumer,java.util.function.Consumer,boolean,boolean,java.util.function.BiPredicate,com.android.tools.r8.StringConsumer,com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration,com.android.tools.r8.features.FeatureSplitConfiguration,java.util.List,com.android.tools.r8.R8Command$1):59:59 -> <init>
    2:2:void <init>(boolean,boolean,com.android.tools.r8.R8Command$1):59:59 -> <init>
    3:32:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.ProgramConsumer,java.util.List,com.android.tools.r8.StringConsumer,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.CompilationMode,int,com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.InternalOptions$DesugarState,boolean,boolean,boolean,boolean,com.android.tools.r8.StringConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.StringConsumer,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.experimental.graphinfo.GraphConsumer,java.util.function.Consumer,boolean,boolean,java.util.function.BiPredicate,com.android.tools.r8.StringConsumer,com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration,com.android.tools.r8.features.FeatureSplitConfiguration,java.util.List):728:757 -> <init>
    33:49:void <init>(boolean,boolean):761:777 -> <init>
    1:1:com.android.tools.r8.R8Command$Builder builder(com.android.tools.r8.utils.AndroidApp):665:665 -> a
    2:2:com.android.tools.r8.R8Command$Builder builder(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):670:670 -> a
    3:55:com.android.tools.r8.utils.InternalOptions getInternalOptions():792:844 -> a
    56:66:com.android.tools.r8.utils.InternalOptions getInternalOptions():841:851 -> a
    67:77:com.android.tools.r8.utils.InternalOptions getInternalOptions():848:858 -> a
    78:88:com.android.tools.r8.utils.InternalOptions getInternalOptions():855:865 -> a
    89:111:com.android.tools.r8.utils.InternalOptions getInternalOptions():862:884 -> a
    112:112:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    112:112:com.android.tools.r8.utils.InternalOptions getInternalOptions():889 -> a
    113:127:com.android.tools.r8.utils.InternalOptions getInternalOptions():890:904 -> a
    128:130:com.android.tools.r8.StringConsumer wrapStringConsumer(com.android.tools.r8.StringConsumer,boolean,java.nio.file.Path):913:915 -> a
    1:1:com.android.tools.r8.R8Command$Builder builder():655:655 -> builder
    2:2:void com.android.tools.r8.R8Command$Builder.<init>():111:111 -> builder
    2:2:com.android.tools.r8.R8Command$Builder builder():655 -> builder
    3:3:com.android.tools.r8.R8Command$Builder builder(com.android.tools.r8.DiagnosticsHandler):660:660 -> builder
    1:1:boolean getEnableMinification():787:787 -> getEnableMinification
    1:1:boolean getEnableTreeShaking():782:782 -> getEnableTreeShaking
    1:1:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):683:683 -> parse
    2:2:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):697:697 -> parse
com.android.tools.r8.R8Command$1 -> com.android.tools.r8.R8Command$a:
com.android.tools.r8.R8Command$Builder -> com.android.tools.r8.R8Command$Builder:
    com.android.tools.r8.experimental.graphinfo.GraphConsumer keptGraphConsumer -> F
    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> G
    java.util.function.Consumer proguardConfigurationConsumerForTesting -> t
    boolean allowTestProguardOptions -> I
    boolean $assertionsDisabled -> J
    java.util.List mainDexRules -> s
    java.util.function.Consumer syntheticProguardRulesConsumer -> u
    com.android.tools.r8.StringConsumer desugaredLibraryKeepRuleConsumer -> v
    java.util.List proguardConfigs -> w
    boolean disableTreeShaking -> x
    boolean disableMinification -> y
    boolean disableVerticalClassMerging -> z
    com.android.tools.r8.StringConsumer proguardConfigurationConsumer -> E
    java.util.List featureSplits -> H
    boolean forceProguardCompatibility -> A
    com.android.tools.r8.StringConsumer proguardUsageConsumer -> C
    com.android.tools.r8.StringConsumer proguardSeedsConsumer -> D
    com.android.tools.r8.StringConsumer proguardMapConsumer -> B
    1:1:void <clinit>():66:66 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.R8Command$1):67:67 -> <init>
    2:2:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.R8Command$1):67:67 -> <init>
    3:3:void <init>():111:111 -> <init>
    4:4:void <init>(com.android.tools.r8.DiagnosticsHandler):115:115 -> <init>
    5:25:void <init>(com.android.tools.r8.DiagnosticsHandler):87:107 -> <init>
    26:26:void <init>(com.android.tools.r8.utils.AndroidApp):119:119 -> <init>
    27:47:void <init>(com.android.tools.r8.utils.AndroidApp):87:107 -> <init>
    48:48:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):123:123 -> <init>
    49:69:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):87:107 -> <init>
    1:2:void lambda$addMainDexRules$3(java.util.List,com.android.tools.r8.origin.Origin):190:191 -> a
    3:3:void lambda$addMainDexRules$3(java.util.List,com.android.tools.r8.origin.Origin):190:190 -> a
    4:5:void lambda$addProguardConfigurationFiles$5(java.util.List):208:209 -> a
    6:6:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):394:394 -> a
    7:9:void lambda$makeR8Command$7(com.android.tools.r8.DataResourceProvider$Visitor,com.android.tools.r8.utils.Reporter,com.android.tools.r8.DataResourceProvider):513:515 -> a
    10:11:void addProguardConfigurationConsumerForTesting(java.util.function.Consumer):577:578 -> a
    12:14:void lambda$addProguardConfigurationConsumerForTesting$8(java.util.function.Consumer,java.util.function.Consumer,com.android.tools.r8.shaking.ProguardConfiguration$Builder):581:583 -> a
    1:1:com.android.tools.r8.R8Command$Builder addFeatureSplit(java.util.function.Function):368:368 -> addFeatureSplit
    2:2:com.android.tools.r8.FeatureSplit$Builder com.android.tools.r8.FeatureSplit.builder(com.android.tools.r8.DiagnosticsHandler):50:50 -> addFeatureSplit
    2:2:com.android.tools.r8.R8Command$Builder addFeatureSplit(java.util.function.Function):368 -> addFeatureSplit
    3:6:com.android.tools.r8.R8Command$Builder addFeatureSplit(java.util.function.Function):368:371 -> addFeatureSplit
    7:21:com.android.tools.r8.R8Command$Builder addFeatureSplit(java.util.function.Function):370:384 -> addFeatureSplit
    1:1:com.android.tools.r8.R8Command$Builder addMainDexRules(java.util.List,com.android.tools.r8.origin.Origin):190:190 -> addMainDexRules
    1:1:com.android.tools.r8.R8Command$Builder addMainDexRulesFiles(java.nio.file.Path[]):170:170 -> addMainDexRulesFiles
    2:2:com.android.tools.r8.R8Command$Builder addMainDexRulesFiles(java.util.Collection):180:180 -> addMainDexRulesFiles
    1:1:com.android.tools.r8.BaseCommand$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):66:66 -> addProgramResourceProvider
    2:2:com.android.tools.r8.R8Command$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):355:355 -> addProgramResourceProvider
    1:1:com.android.tools.r8.R8Command$Builder addProguardConfiguration(java.util.List,com.android.tools.r8.origin.Origin):217:217 -> addProguardConfiguration
    1:1:com.android.tools.r8.R8Command$Builder addProguardConfigurationFiles(java.nio.file.Path[]):197:197 -> addProguardConfigurationFiles
    2:2:com.android.tools.r8.R8Command$Builder addProguardConfigurationFiles(java.util.List):207:207 -> addProguardConfigurationFiles
    1:1:java.lang.Boolean lambda$new$0(java.lang.String,java.lang.Long):102:102 -> b
    2:3:void lambda$addProguardConfiguration$6(java.util.List,com.android.tools.r8.origin.Origin):217:218 -> b
    4:4:void lambda$addProguardConfiguration$6(java.util.List,com.android.tools.r8.origin.Origin):217:217 -> b
    5:7:void addSyntheticProguardRulesConsumerForTesting(java.util.function.Consumer):590:592 -> b
    1:1:com.android.tools.r8.BaseCommand makeCommand():66:66 -> c
    2:2:void setDisableVerticalClassMerging(boolean):133:133 -> c
    3:4:void lambda$addMainDexRulesFiles$1(java.nio.file.Path[]):171:172 -> c
    com.android.tools.r8.BaseCommand$Builder self() -> d
    1:2:void lambda$addProguardConfigurationFiles$4(java.nio.file.Path[]):198:199 -> d
    1:18:void validate():399:416 -> e
    19:44:void validate():414:439 -> e
    1:1:com.android.tools.r8.CompilationMode defaultCompilationMode():143:143 -> f
    2:3:void lambda$addMainDexRulesFiles$2(java.util.Collection):181:182 -> f
    void allowPartiallyImplementedProguardOptions() -> k
    1:1:void allowTestProguardOptions():603:603 -> l
    1:1:void internalForceProguardCompatibility():129:129 -> m
    1:4:com.android.tools.r8.R8Command makeCommand():445:448 -> n
    5:5:com.android.tools.r8.R8Command makeCommand():446:446 -> n
    1:85:com.android.tools.r8.R8Command makeR8Command():452:536 -> o
    86:86:com.android.tools.r8.utils.InternalOptions$DesugarState com.android.tools.r8.BaseCompilerCommand$Builder.getDesugaringState():445:445 -> o
    86:86:com.android.tools.r8.R8Command makeR8Command():537 -> o
    87:117:com.android.tools.r8.R8Command makeR8Command():540:570 -> o
    1:1:com.android.tools.r8.R8Command$Builder setDesugaredLibraryKeepRuleConsumer(com.android.tools.r8.StringConsumer):257:257 -> setDesugaredLibraryKeepRuleConsumer
    1:1:com.android.tools.r8.R8Command$Builder setDisableMinification(boolean):164:164 -> setDisableMinification
    1:1:com.android.tools.r8.R8Command$Builder setDisableTreeShaking(boolean):153:153 -> setDisableTreeShaking
    1:1:com.android.tools.r8.R8Command$Builder setKeptGraphConsumer(com.android.tools.r8.experimental.graphinfo.GraphConsumer):300:300 -> setKeptGraphConsumer
    1:1:com.android.tools.r8.R8Command$Builder setMainDexKeptGraphConsumer(com.android.tools.r8.experimental.graphinfo.GraphConsumer):308:308 -> setMainDexKeptGraphConsumer
    1:1:com.android.tools.r8.BaseCompilerCommand$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode):66:66 -> setOutput
    2:2:com.android.tools.r8.BaseCompilerCommand$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):66:66 -> setOutput
    3:3:com.android.tools.r8.R8Command$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode):327:327 -> setOutput
    4:4:com.android.tools.r8.R8Command$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):350:350 -> setOutput
    1:1:com.android.tools.r8.R8Command$Builder setProguardConfigurationConsumer(com.android.tools.r8.StringConsumer):292:292 -> setProguardConfigurationConsumer
    1:1:com.android.tools.r8.R8Command$Builder setProguardMapConsumer(com.android.tools.r8.StringConsumer):246:246 -> setProguardMapConsumer
    1:2:com.android.tools.r8.R8Command$Builder setProguardMapOutputPath(java.nio.file.Path):232:233 -> setProguardMapOutputPath
    1:1:com.android.tools.r8.R8Command$Builder setProguardSeedsConsumer(com.android.tools.r8.StringConsumer):281:281 -> setProguardSeedsConsumer
    1:1:com.android.tools.r8.R8Command$Builder setProguardUsageConsumer(com.android.tools.r8.StringConsumer):269:269 -> setProguardUsageConsumer
com.android.tools.r8.R8Command$Builder$1 -> com.android.tools.r8.R8Command$Builder$a:
    com.android.tools.r8.ProgramResourceProvider val$programResourceProvider -> a
    1:1:void <init>(com.android.tools.r8.R8Command$Builder,com.android.tools.r8.ProgramResourceProvider):373:373 -> <init>
    1:1:java.util.Collection getProgramResources():376:376 -> getProgramResources
com.android.tools.r8.R8Command$Builder$2 -> com.android.tools.r8.R8Command$Builder$b:
    com.android.tools.r8.shaking.ProguardConfigurationParser val$parser -> a
    com.android.tools.r8.utils.Reporter val$reporter -> b
    1:1:void <init>(com.android.tools.r8.R8Command$Builder,com.android.tools.r8.shaking.ProguardConfigurationParser,com.android.tools.r8.utils.Reporter):484:484 -> <init>
    1:6:void visit(com.android.tools.r8.DataEntryResource):492:497 -> visit
    7:15:void visit(com.android.tools.r8.DataEntryResource):493:501 -> visit
    16:17:void visit(com.android.tools.r8.DataEntryResource):498:499 -> visit
    18:18:void visit(com.android.tools.r8.DataEntryResource):498:498 -> visit
com.android.tools.r8.R8Command$Builder$DefaultR8DiagnosticsHandler -> com.android.tools.r8.R8Command$Builder$c:
    1:1:void <init>():69:69 -> <init>
    2:2:void <init>(com.android.tools.r8.R8Command$1):69:69 -> <init>
    1:6:void error(com.android.tools.r8.Diagnostic):73:78 -> error
    7:14:void error(com.android.tools.r8.Diagnostic):76:83 -> error
com.android.tools.r8.R8Command$EnsureNonDexProgramResourceProvider -> com.android.tools.r8.R8Command$b:
    com.android.tools.r8.ProgramResourceProvider provider -> a
    1:2:void <init>(com.android.tools.r8.ProgramResourceProvider):612:613 -> <init>
    1:1:com.android.tools.r8.DataResourceProvider getDataResourceProvider():630:630 -> getDataResourceProvider
    1:4:java.util.Collection getProgramResources():618:621 -> getProgramResources
com.android.tools.r8.R8Command$StandardOutConsumer -> com.android.tools.r8.R8Command$c:
    1:1:void <init>(com.android.tools.r8.StringConsumer):924:924 -> <init>
    1:2:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):929:930 -> accept
com.android.tools.r8.R8CommandParser -> com.android.tools.r8.n:
    java.util.Set OPTIONS_WITH_PARAMETER -> d
    java.lang.String USAGE_MESSAGE -> e
    1:49:void <clinit>():19:67 -> <clinit>
    50:80:void <clinit>():54:84 -> <clinit>
    81:81:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable):449:449 -> <clinit>
    81:81:void <clinit>():53 -> <clinit>
    82:82:void <clinit>():51:51 -> <clinit>
    1:1:void <init>():17:17 -> <init>
    1:1:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):97:97 -> a
    2:2:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):111:111 -> a
    3:3:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder):115:115 -> a
    4:57:void parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder,com.android.tools.r8.R8CommandParser$ParseState):128:181 -> a
    4:57:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder):116 -> a
    58:107:void parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder,com.android.tools.r8.R8CommandParser$ParseState):178:227 -> a
    58:107:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder):116 -> a
    108:113:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder):117:122 -> a
com.android.tools.r8.R8CommandParser$1 -> com.android.tools.r8.l:
com.android.tools.r8.R8CommandParser$ParseState -> com.android.tools.r8.m:
    java.nio.file.Path outputPath -> c
    com.android.tools.r8.OutputMode outputMode -> b
    boolean includeDataResources -> e
    com.android.tools.r8.CompilationMode mode -> a
    boolean hasDefinedApiLevel -> d
    1:6:void <init>():42:47 -> <init>
    7:7:void <init>(com.android.tools.r8.R8CommandParser$1):42:42 -> <init>
    1:1:boolean access$100(com.android.tools.r8.R8CommandParser$ParseState):42:42 -> a
    2:2:boolean access$102(com.android.tools.r8.R8CommandParser$ParseState,boolean):42:42 -> a
com.android.tools.r8.ResourceException -> com.android.tools.r8.ResourceException:
    com.android.tools.r8.origin.Origin origin -> a
    1:2:void <init>(com.android.tools.r8.origin.Origin,java.lang.String):20:21 -> <init>
    3:4:void <init>(com.android.tools.r8.origin.Origin,java.lang.Throwable):25:26 -> <init>
    5:6:void <init>(com.android.tools.r8.origin.Origin,java.lang.String,java.lang.Throwable):30:31 -> <init>
    1:1:com.android.tools.r8.origin.Origin getOrigin():35:35 -> getOrigin
com.android.tools.r8.ResourceShrinker -> com.android.tools.r8.ResourceShrinker:
    1:1:void <init>():95:95 -> <init>
    1:3:void run(com.android.tools.r8.ResourceShrinker$Command,com.android.tools.r8.ResourceShrinker$ReferenceChecker):462:464 -> run
    4:4:com.android.tools.r8.utils.InternalOptions com.android.tools.r8.ResourceShrinker$Command.getInternalOptions():106:106 -> run
    4:4:void run(com.android.tools.r8.ResourceShrinker$Command,com.android.tools.r8.ResourceShrinker$ReferenceChecker):465 -> run
    5:7:void run(com.android.tools.r8.ResourceShrinker$Command,com.android.tools.r8.ResourceShrinker$ReferenceChecker):465:467 -> run
com.android.tools.r8.ResourceShrinker$Builder -> com.android.tools.r8.ResourceShrinker$Builder:
    1:1:void <init>():111:111 -> <init>
    1:1:com.android.tools.r8.ResourceShrinker$Command makeCommand():120:120 -> c
    1:1:com.android.tools.r8.BaseCommand makeCommand():110 -> c
    com.android.tools.r8.BaseCommand$Builder self() -> d
com.android.tools.r8.ResourceShrinker$Command -> com.android.tools.r8.ResourceShrinker$Command:
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp):101:101 -> <init>
    1:1:com.android.tools.r8.utils.InternalOptions getInternalOptions():106:106 -> a
com.android.tools.r8.ResourceShrinker$DexClassUsageVisitor -> com.android.tools.r8.ResourceShrinker$a:
    com.android.tools.r8.graph.DexProgramClass classDef -> a
    com.android.tools.r8.ResourceShrinker$ReferenceChecker callback -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():146:146 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ResourceShrinker$ReferenceChecker):151:153 -> <init>
    1:6:void visit():157:162 -> a
    7:17:void processFieldValue(com.android.tools.r8.graph.DexValue):178:188 -> a
    7:17:void visit():164 -> a
    18:18:void visit():168:168 -> a
    19:19:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):195:195 -> a
    19:19:void visit():169 -> a
    20:20:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet():218:218 -> a
    20:20:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):199 -> a
    20:20:void visit():169 -> a
    21:21:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList():88:88 -> a
    21:21:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):202 -> a
    21:21:void visit():169 -> a
    22:26:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):204:208 -> a
    22:26:void visit():169 -> a
    27:44:void processIntConstInstruction(com.android.tools.r8.code.Instruction):332:349 -> a
    27:44:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):209 -> a
    27:44:void visit():169 -> a
    45:45:void processIntConstInstruction(com.android.tools.r8.code.Instruction):346:346 -> a
    45:45:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):209 -> a
    45:45:void visit():169 -> a
    46:46:boolean isStringConstInstruction(com.android.tools.r8.code.Instruction):353:353 -> a
    46:46:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):210 -> a
    46:46:void visit():169 -> a
    47:47:void processStringConstantInstruction(com.android.tools.r8.code.Instruction):358:358 -> a
    47:47:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):211 -> a
    47:47:void visit():169 -> a
    48:48:boolean isStringConstInstruction(com.android.tools.r8.code.Instruction):353:353 -> a
    48:48:void processStringConstantInstruction(com.android.tools.r8.code.Instruction):358 -> a
    48:48:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):211 -> a
    48:48:void visit():169 -> a
    49:62:void processStringConstantInstruction(com.android.tools.r8.code.Instruction):358:371 -> a
    49:62:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):211 -> a
    49:62:void visit():169 -> a
    63:63:void processStringConstantInstruction(com.android.tools.r8.code.Instruction):368:368 -> a
    63:63:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):211 -> a
    63:63:void visit():169 -> a
    64:64:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):212:212 -> a
    64:64:void visit():169 -> a
    65:93:void processGetStatic(com.android.tools.r8.code.Instruction):386:414 -> a
    65:93:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):213 -> a
    65:93:void visit():169 -> a
    94:94:void processGetStatic(com.android.tools.r8.code.Instruction):411:411 -> a
    94:94:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):213 -> a
    94:94:void visit():169 -> a
    95:95:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):214:214 -> a
    95:95:void visit():169 -> a
    96:103:void processInvokeInstruction(com.android.tools.r8.code.Instruction):427:434 -> a
    96:103:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):215 -> a
    96:103:void visit():169 -> a
    104:104:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    104:104:void processInvokeInstruction(com.android.tools.r8.code.Instruction):435 -> a
    104:104:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):215 -> a
    104:104:void visit():169 -> a
    105:105:void processInvokeInstruction(com.android.tools.r8.code.Instruction):432:432 -> a
    105:105:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):215 -> a
    105:105:void visit():169 -> a
    106:106:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    106:106:void processInvokeInstruction(com.android.tools.r8.code.Instruction):435 -> a
    106:106:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):215 -> a
    106:106:void visit():169 -> a
    107:107:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):216:216 -> a
    107:107:void visit():169 -> a
    108:115:void processInvokeRangeInstruction(com.android.tools.r8.code.Instruction):448:455 -> a
    108:115:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):217 -> a
    108:115:void visit():169 -> a
    116:116:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    116:116:void processInvokeRangeInstruction(com.android.tools.r8.code.Instruction):456 -> a
    116:116:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):217 -> a
    116:116:void visit():169 -> a
    117:117:void processInvokeRangeInstruction(com.android.tools.r8.code.Instruction):453:453 -> a
    117:117:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):217 -> a
    117:117:void visit():169 -> a
    118:118:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    118:118:void processInvokeRangeInstruction(com.android.tools.r8.code.Instruction):456 -> a
    118:118:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):217 -> a
    118:118:void visit():169 -> a
    119:119:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):218:218 -> a
    119:119:void visit():169 -> a
    120:122:void processFillArray(com.android.tools.r8.code.Instruction[],int,java.util.Set):288:290 -> a
    120:122:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):219 -> a
    120:122:void visit():169 -> a
    123:123:com.android.tools.r8.graph.DexType com.android.tools.r8.code.NewArray.getType():46:46 -> a
    123:123:void processFillArray(com.android.tools.r8.code.Instruction[],int,java.util.Set):291 -> a
    123:123:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):219 -> a
    123:123:void visit():169 -> a
    124:131:void processFillArray(com.android.tools.r8.code.Instruction[],int,java.util.Set):291:298 -> a
    124:131:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):219 -> a
    124:131:void visit():169 -> a
    132:138:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):220:226 -> a
    132:138:void visit():169 -> a
    139:144:boolean isIntArrayPayload(com.android.tools.r8.code.Instruction,java.util.Set):278:283 -> a
    139:144:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):227 -> a
    139:144:void visit():169 -> a
    145:147:void processIntArrayPayload(com.android.tools.r8.code.Instruction):270:272 -> a
    145:147:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):228 -> a
    145:147:void visit():169 -> a
    148:149:void visit():172:173 -> a
    150:173:void processAnnotations(com.android.tools.r8.graph.DexProgramClass):236:259 -> a
    174:174:java.util.stream.Stream lambda$processAnnotations$0(com.android.tools.r8.graph.DexEncodedField):238:238 -> a
    175:175:java.util.stream.Stream lambda$processAnnotations$2(com.android.tools.r8.graph.DexEncodedMethod):246:246 -> a
    176:178:void lambda$processAnnotations$4(com.android.tools.r8.graph.DexAnnotation):260:262 -> a
    179:193:void processAnnotationValue(com.android.tools.r8.graph.DexValue):302:316 -> a
    194:194:boolean isGetStatic(com.android.tools.r8.code.Instruction):375:375 -> a
    1:1:java.util.stream.Stream lambda$processAnnotations$1(com.android.tools.r8.graph.DexEncodedField):242:242 -> b
    2:2:java.util.stream.Stream lambda$processAnnotations$3(com.android.tools.r8.graph.DexEncodedMethod):250:250 -> b
    3:3:boolean isIntConstInstruction(com.android.tools.r8.code.Instruction):322:322 -> b
    1:1:boolean isInvokeInstruction(com.android.tools.r8.code.Instruction):418:418 -> c
    1:1:boolean isInvokeRangeInstruction(com.android.tools.r8.code.Instruction):439:439 -> d
com.android.tools.r8.StringConsumer -> com.android.tools.r8.StringConsumer:
    1:1:com.android.tools.r8.StringConsumer$EmptyConsumer emptyConsumer():47:47 -> emptyConsumer
com.android.tools.r8.StringConsumer$EmptyConsumer -> com.android.tools.r8.StringConsumer$a:
    com.android.tools.r8.StringConsumer$EmptyConsumer EMPTY_CONSUMER -> a
    1:1:void <clinit>():53:53 -> <clinit>
    1:1:void <init>():51:51 -> <init>
    1:1:com.android.tools.r8.StringConsumer$EmptyConsumer access$000():51:51 -> a
com.android.tools.r8.StringConsumer$FileConsumer -> com.android.tools.r8.StringConsumer$FileConsumer:
    java.nio.charset.Charset encoding -> c
    java.nio.file.Path outputPath -> b
    boolean failedToCreateDelegate -> e
    boolean $assertionsDisabled -> f
    com.android.tools.r8.StringConsumer$WriterConsumer delegate -> d
    1:1:void <clinit>():92:92 -> <clinit>
    1:1:void <init>(java.nio.file.Path):102:102 -> <init>
    2:2:void <init>(java.nio.file.Path,com.android.tools.r8.StringConsumer):107:107 -> <init>
    3:15:void <init>(java.nio.file.Path,com.android.tools.r8.StringConsumer):96:108 -> <init>
    1:2:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):132:133 -> accept
    3:12:void ensureDelegate(com.android.tools.r8.DiagnosticsHandler):155:164 -> accept
    3:12:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):136 -> accept
    13:13:void com.android.tools.r8.StringConsumer$WriterConsumer.<init>(com.android.tools.r8.origin.Origin,java.io.Writer):184:184 -> accept
    13:13:void ensureDelegate(com.android.tools.r8.DiagnosticsHandler):164 -> accept
    13:13:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):136 -> accept
    14:17:void ensureDelegate(com.android.tools.r8.DiagnosticsHandler):164:167 -> accept
    14:17:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):136 -> accept
    18:19:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):137:138 -> accept
    1:7:void finished(com.android.tools.r8.DiagnosticsHandler):144:150 -> finished
    1:1:java.nio.charset.Charset getEncoding():127:127 -> getEncoding
    1:1:java.nio.file.Path getOutputPath():113:113 -> getOutputPath
    1:5:void setEncoding(java.nio.charset.Charset):118:122 -> setEncoding
    6:6:void setEncoding(java.nio.charset.Charset):120:120 -> setEncoding
com.android.tools.r8.StringConsumer$ForwardingConsumer -> com.android.tools.r8.StringConsumer$b:
    com.android.tools.r8.StringConsumer consumer -> a
    1:2:void <init>(com.android.tools.r8.StringConsumer):72:73 -> <init>
    1:2:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):78:79 -> accept
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):85:86 -> finished
com.android.tools.r8.StringConsumer$WriterConsumer -> com.android.tools.r8.StringConsumer$c:
    com.android.tools.r8.origin.Origin origin -> b
    java.io.Writer writer -> c
    1:3:void <init>(com.android.tools.r8.origin.Origin,java.io.Writer,com.android.tools.r8.StringConsumer):189:191 -> <init>
    1:6:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):196:201 -> accept
    1:5:void finished(com.android.tools.r8.DiagnosticsHandler):207:211 -> finished
com.android.tools.r8.StringResource -> com.android.tools.r8.o:
    java.lang.String getString() -> a
    1:1:com.android.tools.r8.StringResource fromString(java.lang.String,com.android.tools.r8.origin.Origin):26:26 -> a
    2:2:com.android.tools.r8.StringResource fromFile(java.nio.file.Path):37:37 -> a
    3:3:com.android.tools.r8.StringResource fromFile(java.nio.file.Path,java.nio.charset.Charset):49:49 -> a
    3:3:com.android.tools.r8.StringResource fromFile(java.nio.file.Path):37 -> a
com.android.tools.r8.StringResource$1 -> com.android.tools.r8.o$a:
com.android.tools.r8.StringResource$FileResource -> com.android.tools.r8.o$b:
    java.nio.charset.Charset charset -> b
    com.android.tools.r8.origin.Origin origin -> c
    java.nio.file.Path file -> a
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():82:82 -> <clinit>
    1:1:void <init>(java.nio.file.Path,java.nio.charset.Charset,com.android.tools.r8.StringResource$1):82:82 -> <init>
    2:7:void <init>(java.nio.file.Path,java.nio.charset.Charset):87:92 -> <init>
    1:3:java.lang.String getString():103:105 -> a
    1:1:com.android.tools.r8.origin.Origin getOrigin():97:97 -> getOrigin
com.android.tools.r8.StringResource$StringContentResource -> com.android.tools.r8.o$c:
    com.android.tools.r8.origin.Origin origin -> a
    java.lang.String content -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():60:60 -> <clinit>
    1:1:void <init>(com.android.tools.r8.origin.Origin,java.lang.String,com.android.tools.r8.StringResource$1):60:60 -> <init>
    2:6:void <init>(com.android.tools.r8.origin.Origin,java.lang.String):64:68 -> <init>
    1:1:java.lang.String getString():78:78 -> a
    1:1:com.android.tools.r8.origin.Origin getOrigin():73:73 -> getOrigin
com.android.tools.r8.Version -> com.android.tools.r8.Version:
    1:6:int getMajorVersion(java.lang.String):34:39 -> a
    7:7:boolean isDevelopmentVersion(java.lang.String,boolean):110:110 -> a
    1:6:int getMinorVersion(java.lang.String):52:57 -> b
    1:7:int getPatchVersion(java.lang.String):70:76 -> c
    1:6:java.lang.String getPreReleaseString(java.lang.String):90:95 -> d
    1:1:int getMajorVersion():30:30 -> getMajorVersion
    1:1:int getMinorVersion():48:48 -> getMinorVersion
    1:1:int getPatchVersion():66:66 -> getPatchVersion
    1:1:java.lang.String getPreReleaseString():86:86 -> getPreReleaseString
    1:1:java.lang.String getVersionString():21:21 -> getVersionString
    1:1:boolean isDevelopmentVersion():106:106 -> isDevelopmentVersion
com.android.tools.r8.bisect.Bisect -> com.android.tools.r8.p.a:
    1:4:com.android.tools.r8.graph.DexProgramClass run(com.android.tools.r8.bisect.BisectState,com.android.tools.r8.bisect.Bisect$Command,java.nio.file.Path,java.util.concurrent.ExecutorService):76:79 -> a
    5:17:void writeApp(com.android.tools.r8.graph.DexApplication,java.nio.file.Path,java.util.concurrent.ExecutorService):183:195 -> a
    5:17:com.android.tools.r8.graph.DexProgramClass run(com.android.tools.r8.bisect.BisectState,com.android.tools.r8.bisect.Bisect$Command,java.nio.file.Path,java.util.concurrent.ExecutorService):82 -> a
    18:25:com.android.tools.r8.graph.DexProgramClass run(com.android.tools.r8.bisect.BisectState,com.android.tools.r8.bisect.Bisect$Command,java.nio.file.Path,java.util.concurrent.ExecutorService):83:90 -> a
com.android.tools.r8.bisect.Bisect$Command -> com.android.tools.r8.p.a$a:
    com.android.tools.r8.bisect.BisectOptions$Result apply(com.android.tools.r8.graph.DexApplication) -> a
com.android.tools.r8.bisect.BisectOptions$Result -> com.android.tools.r8.p.b:
    com.android.tools.r8.bisect.BisectOptions$Result UNKNOWN -> a
    com.android.tools.r8.bisect.BisectOptions$Result GOOD -> b
    com.android.tools.r8.bisect.BisectOptions$Result BAD -> c
    1:1:void <clinit>():33:33 -> <clinit>
    1:1:void <init>(java.lang.String,int):33:33 -> <init>
com.android.tools.r8.bisect.BisectState -> com.android.tools.r8.p.c:
    java.nio.file.Path stateFile -> e
    com.android.tools.r8.graph.DexApplication badApp -> b
    java.util.Map indexMap -> d
    com.android.tools.r8.bisect.BisectState$Range nextRange -> g
    java.util.List runs -> f
    java.util.List sortedGoodClasses -> c
    java.lang.String signature -> a
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexApplication,java.nio.file.Path):156:156 -> <init>
    2:20:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexApplication,java.nio.file.Path):151:169 -> <init>
    21:21:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexApplication,java.nio.file.Path):161:161 -> <init>
    1:1:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):190:190 -> a
    2:9:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):202:209 -> a
    10:10:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    10:10:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):209 -> a
    11:18:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):209:216 -> a
    19:19:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    19:19:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):216 -> a
    20:26:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):216:222 -> a
    27:27:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):203:203 -> a
    28:28:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    28:28:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):203 -> a
    29:29:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):203:203 -> a
    30:36:com.android.tools.r8.graph.DexApplication bisect():241:247 -> a
    37:39:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():289:291 -> a
    37:39:com.android.tools.r8.graph.DexApplication bisect():250 -> a
    40:40:boolean com.android.tools.r8.bisect.BisectState$Run.isBad():141:141 -> a
    40:40:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():292 -> a
    40:40:com.android.tools.r8.graph.DexApplication bisect():250 -> a
    41:41:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():293:293 -> a
    41:41:com.android.tools.r8.graph.DexApplication bisect():250 -> a
    42:50:com.android.tools.r8.bisect.BisectState$Range com.android.tools.r8.bisect.BisectState$Range.sub(com.android.tools.r8.bisect.BisectState$Range):73:81 -> a
    42:50:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():293 -> a
    42:50:com.android.tools.r8.graph.DexApplication bisect():250 -> a
    51:58:com.android.tools.r8.graph.DexApplication bisect():251:258 -> a
    59:60:com.android.tools.r8.bisect.BisectState$Range com.android.tools.r8.bisect.BisectState$Range.split():85:86 -> a
    59:60:com.android.tools.r8.graph.DexApplication bisect():259 -> a
    61:67:com.android.tools.r8.graph.DexApplication bisect():259:265 -> a
    68:69:com.android.tools.r8.graph.DexProgramClass getGoodClass(com.android.tools.r8.graph.DexProgramClass):281:282 -> a
    68:69:com.android.tools.r8.graph.DexApplication bisect():266 -> a
    70:70:boolean com.android.tools.r8.bisect.BisectState$Range.contains(int):90:90 -> a
    70:70:com.android.tools.r8.graph.DexProgramClass getGoodClass(com.android.tools.r8.graph.DexProgramClass):282 -> a
    70:70:com.android.tools.r8.graph.DexApplication bisect():266 -> a
    71:71:com.android.tools.r8.graph.DexProgramClass getGoodClass(com.android.tools.r8.graph.DexProgramClass):283:283 -> a
    71:71:com.android.tools.r8.graph.DexApplication bisect():266 -> a
    72:81:com.android.tools.r8.graph.DexApplication bisect():268:277 -> a
    82:82:com.android.tools.r8.graph.DexApplication bisect():252:252 -> a
    83:83:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    83:83:com.android.tools.r8.graph.DexApplication bisect():252 -> a
    84:84:com.android.tools.r8.graph.DexApplication bisect():252:252 -> a
    85:85:com.android.tools.r8.bisect.BisectState$Range com.android.tools.r8.bisect.BisectState$Range.sub(com.android.tools.r8.bisect.BisectState$Range):73:73 -> a
    85:85:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():293 -> a
    85:85:com.android.tools.r8.graph.DexApplication bisect():250 -> a
    86:86:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():295:295 -> a
    86:86:com.android.tools.r8.graph.DexApplication bisect():250 -> a
    87:94:com.android.tools.r8.bisect.BisectState$Range com.android.tools.r8.bisect.BisectState$Range.add(com.android.tools.r8.bisect.BisectState$Range):62:69 -> a
    87:94:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():295 -> a
    87:94:com.android.tools.r8.graph.DexApplication bisect():250 -> a
    95:95:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():297:297 -> a
    95:95:com.android.tools.r8.graph.DexApplication bisect():250 -> a
    96:99:java.util.List getSortedClasses(com.android.tools.r8.graph.DexApplication):326:329 -> a
    1:3:com.android.tools.r8.graph.DexProgramClass getFinalClass():233:235 -> b
    4:9:java.lang.String makeSignature(com.android.tools.r8.graph.DexApplication):335:340 -> b
    1:10:void read():173:182 -> c
    11:11:java.lang.String readSignature(java.io.BufferedReader):305:305 -> c
    11:11:void read():182 -> c
    12:28:void read():182:198 -> c
    29:29:void read():183:183 -> c
    30:30:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> c
    30:30:void read():183 -> c
    31:31:void read():183:183 -> c
    32:41:void read():181:190 -> c
    1:7:void write():309:315 -> d
    8:10:void com.android.tools.r8.bisect.BisectState$Run.write(java.io.Writer):135:137 -> d
    8:10:void write():316 -> d
    11:16:void write():317:322 -> d
    17:27:void write():312:322 -> d
com.android.tools.r8.bisect.BisectState$Range -> com.android.tools.r8.p.c$a:
    int end -> b
    boolean $assertionsDisabled -> c
    int start -> a
    1:1:void <clinit>():30:30 -> <clinit>
    1:4:void <init>(int,int):34:37 -> <init>
    5:9:void <init>(java.lang.String):40:44 -> <init>
    1:3:void write(java.io.Writer):48:50 -> a
    4:4:boolean isEmpty():54:54 -> a
    1:1:int size():58:58 -> b
    1:1:boolean verify():113:113 -> c
    1:5:boolean equals(java.lang.Object):100:104 -> equals
    1:1:int hashCode():109:109 -> hashCode
    1:1:java.lang.String toString():95:95 -> toString
com.android.tools.r8.bisect.BisectState$Run -> com.android.tools.r8.p.c$b:
    boolean good -> a
    boolean $assertionsDisabled -> c
    com.android.tools.r8.bisect.BisectState$Range range -> b
    1:1:void <clinit>():117:117 -> <clinit>
    1:4:void <init>(com.android.tools.r8.bisect.BisectOptions$Result,com.android.tools.r8.bisect.BisectState$Range):121:124 -> <init>
    5:9:void <init>(java.lang.String):127:131 -> <init>
com.android.tools.r8.cf.CfCodePrinter -> com.android.tools.r8.q.a:
    boolean pendingComma -> o
    java.util.Set imports -> j
    java.lang.StringBuilder builder -> p
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap labelToIndex -> n
    boolean $assertionsDisabled -> q
    java.util.Set methodNames -> l
    java.util.List sortedLabels -> m
    java.util.List methods -> k
    1:1:void <clinit>():71:71 -> <clinit>
    1:1:void <init>():86:86 -> <init>
    2:13:void <init>():73:84 -> <init>
    void print(com.android.tools.r8.cf.code.CfNop) -> a
    void print(com.android.tools.r8.cf.code.CfPosition) -> a
    1:10:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):99:108 -> a
    11:11:java.lang.String r8Type(java.lang.String,java.lang.String):186:186 -> a
    11:11:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):109 -> a
    12:15:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):109:112 -> a
    16:16:java.lang.String r8Type(java.lang.String,java.lang.String):186:186 -> a
    16:16:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):113 -> a
    17:18:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):113:114 -> a
    19:19:java.lang.String r8Type(java.lang.String,java.lang.String):186:186 -> a
    19:19:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):115 -> a
    20:35:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):115:130 -> a
    36:36:java.lang.String r8Type(java.lang.String,java.lang.String):186:186 -> a
    36:36:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):131 -> a
    37:62:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):131:156 -> a
    63:73:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):151:161 -> a
    74:74:void visitMethod(java.lang.String,com.android.tools.r8.graph.CfCode):100:100 -> a
    75:77:java.lang.String r8Type(java.lang.String,java.util.List):190:192 -> a
    78:78:java.lang.String r8Type(java.lang.String,java.util.List):190:190 -> a
    79:79:java.lang.String numericType(com.android.tools.r8.ir.code.NumericType):212:212 -> a
    80:80:java.lang.String dexString(com.android.tools.r8.graph.DexString):224:224 -> a
    81:81:java.lang.String quote(java.lang.String):165:165 -> a
    81:81:java.lang.String dexString(com.android.tools.r8.graph.DexString):224 -> a
    82:82:java.lang.String dexString(com.android.tools.r8.graph.DexString):224:224 -> a
    83:86:void ensureComma():253:256 -> a
    83:86:void printNewInstruction(java.lang.String,java.lang.String[]):260 -> a
    87:88:void printNewInstruction(java.lang.String,java.lang.String[]):261:262 -> a
    89:89:void printNewVarInstruction(java.lang.String,com.android.tools.r8.ir.code.ValueType,int):266:266 -> a
    90:90:void printNewJumpInstruction(java.lang.String,com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,com.android.tools.r8.cf.code.CfLabel):270:270 -> a
    91:91:java.lang.String ifTypeKind(com.android.tools.r8.ir.code.If$Type):220:220 -> a
    91:91:void printNewJumpInstruction(java.lang.String,com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,com.android.tools.r8.cf.code.CfLabel):270 -> a
    92:92:void printNewJumpInstruction(java.lang.String,com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,com.android.tools.r8.cf.code.CfLabel):270:270 -> a
    93:95:void print(com.android.tools.r8.cf.code.CfStackInstruction):280:282 -> a
    96:96:void print(com.android.tools.r8.cf.code.CfStackInstruction):280:280 -> a
    97:97:void print(com.android.tools.r8.cf.code.CfThrow):287:287 -> a
    98:98:void print(com.android.tools.r8.cf.code.CfConstNull):292:292 -> a
    99:100:void print(com.android.tools.r8.cf.code.CfConstNumber):297:298 -> a
    101:101:java.lang.String longValue(long):169:169 -> a
    101:101:void print(com.android.tools.r8.cf.code.CfConstNumber):298 -> a
    102:102:void print(com.android.tools.r8.cf.code.CfConstNumber):298:298 -> a
    103:103:void print(com.android.tools.r8.cf.code.CfConstNumber):297:297 -> a
    104:104:void print(com.android.tools.r8.cf.code.CfConstClass):303:303 -> a
    105:105:void print(com.android.tools.r8.cf.code.CfReturnVoid):308:308 -> a
    106:106:void print(com.android.tools.r8.cf.code.CfReturn):313:313 -> a
    107:107:void print(com.android.tools.r8.cf.code.CfMonitor):318:318 -> a
    108:111:void print(com.android.tools.r8.cf.code.CfArithmeticBinop):323:326 -> a
    112:112:void print(com.android.tools.r8.cf.code.CfArithmeticBinop):323:323 -> a
    113:114:void print(com.android.tools.r8.cf.code.CfCmp):331:332 -> a
    115:115:void print(com.android.tools.r8.cf.code.CfCmp):331:331 -> a
    116:119:void print(com.android.tools.r8.cf.code.CfLogicalBinop):337:340 -> a
    120:120:void print(com.android.tools.r8.cf.code.CfLogicalBinop):337:337 -> a
    121:121:void print(com.android.tools.r8.cf.code.CfNeg):345:345 -> a
    122:125:void print(com.android.tools.r8.cf.code.CfNumberConversion):350:353 -> a
    126:126:void print(com.android.tools.r8.cf.code.CfNumberConversion):350:350 -> a
    127:127:void print(com.android.tools.r8.cf.code.CfConstString):358:358 -> a
    128:128:void print(com.android.tools.r8.cf.code.CfDexItemBasedConstString):363:363 -> a
    129:129:void print(com.android.tools.r8.cf.code.CfArrayLoad):368:368 -> a
    130:130:void print(com.android.tools.r8.cf.code.CfArrayStore):373:373 -> a
    131:134:void print(com.android.tools.r8.cf.code.CfInvoke):378:381 -> a
    135:136:java.lang.String dexMethod(com.android.tools.r8.graph.DexMethod):243:244 -> a
    135:136:void print(com.android.tools.r8.cf.code.CfInvoke):381 -> a
    137:144:java.lang.String dexProto(com.android.tools.r8.graph.DexProto):232:239 -> a
    137:144:java.lang.String dexMethod(com.android.tools.r8.graph.DexMethod):246 -> a
    137:144:void print(com.android.tools.r8.cf.code.CfInvoke):381 -> a
    145:147:java.lang.String dexMethod(com.android.tools.r8.graph.DexMethod):246:248 -> a
    145:147:void print(com.android.tools.r8.cf.code.CfInvoke):381 -> a
    148:149:void print(com.android.tools.r8.cf.code.CfInvoke):381:382 -> a
    150:150:void print(com.android.tools.r8.cf.code.CfInvoke):378:378 -> a
    151:151:void print(com.android.tools.r8.cf.code.CfInvokeDynamic):387:387 -> a
    152:152:void print(com.android.tools.r8.cf.code.CfFrame):392:392 -> a
    153:153:void print(com.android.tools.r8.cf.code.CfInstanceOf):397:397 -> a
    154:154:void print(com.android.tools.r8.cf.code.CfCheckCast):402:402 -> a
    155:155:void print(com.android.tools.r8.cf.code.CfFieldInstruction):407:407 -> a
    156:156:void print(com.android.tools.r8.cf.code.CfNew):412:412 -> a
    157:157:void print(com.android.tools.r8.cf.code.CfNewArray):417:417 -> a
    158:158:void print(com.android.tools.r8.cf.code.CfMultiANewArray):422:422 -> a
    159:159:void print(com.android.tools.r8.cf.code.CfArrayLength):427:427 -> a
    160:160:void print(com.android.tools.r8.cf.code.CfGoto):443:443 -> a
    161:161:void print(com.android.tools.r8.cf.code.CfIf):449:449 -> a
    162:162:void print(com.android.tools.r8.cf.code.CfIf):448:448 -> a
    163:163:void print(com.android.tools.r8.cf.code.CfIfCmp):455:455 -> a
    164:164:void print(com.android.tools.r8.cf.code.CfIfCmp):454:454 -> a
    165:165:void print(com.android.tools.r8.cf.code.CfSwitch):460:460 -> a
    166:166:void print(com.android.tools.r8.cf.code.CfLoad):465:465 -> a
    167:167:void print(com.android.tools.r8.cf.code.CfStore):470:470 -> a
    168:171:void print(com.android.tools.r8.cf.code.CfIinc):475:478 -> a
    172:172:void print(com.android.tools.r8.cf.code.CfIinc):475:475 -> a
    173:173:void print(com.android.tools.r8.cf.code.CfConstMethodHandle):483:483 -> a
    174:174:void print(com.android.tools.r8.cf.code.CfConstMethodType):488:488 -> a
    1:3:java.lang.String type(java.lang.String,java.util.List):175:177 -> b
    4:4:java.lang.String valueType(com.android.tools.r8.ir.code.ValueType):208:208 -> b
    5:5:java.lang.String memberType(com.android.tools.r8.ir.code.MemberType):216:216 -> b
    6:6:java.lang.String dexType(com.android.tools.r8.graph.DexType):228:228 -> b
    7:7:java.lang.String quote(java.lang.String):165:165 -> b
    7:7:java.lang.String dexType(com.android.tools.r8.graph.DexType):228 -> b
    8:8:java.lang.String dexType(com.android.tools.r8.graph.DexType):228:228 -> b
    9:12:void ensureComma():253:256 -> b
    9:12:void print(com.android.tools.r8.cf.code.CfLabel):432 -> b
    13:13:void print(com.android.tools.r8.cf.code.CfLabel):433:433 -> b
    1:1:java.lang.String cfType(java.lang.String):200:200 -> c
    2:2:java.lang.String labelName(com.android.tools.r8.cf.code.CfLabel):204:204 -> c
    1:2:java.util.List getImports():89:90 -> d
    3:3:java.lang.String irType(java.lang.String):196:196 -> d
    1:1:java.util.List getMethods():95:95 -> e
    2:2:boolean lambda$type$0(java.lang.String):176:176 -> e
    1:1:java.lang.String immutableListType():182:182 -> f
com.android.tools.r8.cf.CfPrinter -> com.android.tools.r8.q.b:
    java.util.List sortedLabels -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap labelToIndex -> c
    boolean $assertionsDisabled -> i
    com.android.tools.r8.naming.ClassNameMapper mapper -> f
    java.util.List localsAtLabel -> d
    int instructionIndexSpace -> h
    int nextInstructionIndex -> g
    java.lang.String indent -> a
    java.lang.StringBuilder builder -> e
    1:1:void <clinit>():87:87 -> <clinit>
    1:1:void <init>():108:108 -> <init>
    2:16:void <init>():101:115 -> <init>
    17:17:void <init>(com.android.tools.r8.graph.CfCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):124:124 -> <init>
    18:105:void <init>(com.android.tools.r8.graph.CfCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):101:188 -> <init>
    1:22:java.util.List computeLocalsAtLabels(java.util.List):197:218 -> a
    23:23:boolean lambda$computeLocalsAtLabels$0(int,com.android.tools.r8.graph.CfCode$LocalVariableInfo):202:202 -> a
    24:24:int lambda$computeLocalsAtLabels$1(com.android.tools.r8.graph.CfCode$LocalVariableInfo,com.android.tools.r8.graph.CfCode$LocalVariableInfo):217:217 -> a
    25:26:java.util.List getSortedLocalVariables(com.android.tools.r8.graph.CfCode):224:225 -> a
    27:28:void print(java.lang.String):246:247 -> a
    27:28:void print(com.android.tools.r8.cf.code.CfArrayLength):489 -> a
    29:30:void print(java.lang.String):246:247 -> a
    29:30:void print(com.android.tools.r8.cf.code.CfConstNull):293 -> a
    31:32:void print(java.lang.String):246:247 -> a
    31:32:void print(com.android.tools.r8.cf.code.CfNop):251 -> a
    33:34:void print(java.lang.String):246:247 -> a
    33:34:void print(com.android.tools.r8.cf.code.CfReturnVoid):324 -> a
    35:36:void print(java.lang.String):246:247 -> a
    35:36:void print(com.android.tools.r8.cf.code.CfThrow):289 -> a
    37:66:void print(com.android.tools.r8.cf.code.CfStackInstruction):255:284 -> a
    67:68:void print(java.lang.String):246:247 -> a
    67:68:void print(com.android.tools.r8.cf.code.CfStackInstruction):281 -> a
    69:70:void print(java.lang.String):246:247 -> a
    69:70:void print(com.android.tools.r8.cf.code.CfStackInstruction):278 -> a
    71:72:void print(java.lang.String):246:247 -> a
    71:72:void print(com.android.tools.r8.cf.code.CfStackInstruction):275 -> a
    73:74:void print(java.lang.String):246:247 -> a
    73:74:void print(com.android.tools.r8.cf.code.CfStackInstruction):272 -> a
    75:76:void print(java.lang.String):246:247 -> a
    75:76:void print(com.android.tools.r8.cf.code.CfStackInstruction):269 -> a
    77:78:void print(java.lang.String):246:247 -> a
    77:78:void print(com.android.tools.r8.cf.code.CfStackInstruction):266 -> a
    79:80:void print(java.lang.String):246:247 -> a
    79:80:void print(com.android.tools.r8.cf.code.CfStackInstruction):263 -> a
    81:82:void print(java.lang.String):246:247 -> a
    81:82:void print(com.android.tools.r8.cf.code.CfStackInstruction):260 -> a
    83:84:void print(java.lang.String):246:247 -> a
    83:84:void print(com.android.tools.r8.cf.code.CfStackInstruction):257 -> a
    85:101:void print(com.android.tools.r8.cf.code.CfConstNumber):297:313 -> a
    102:102:void print(com.android.tools.r8.cf.code.CfConstNumber):310:310 -> a
    103:103:void print(com.android.tools.r8.cf.code.CfConstNumber):307:307 -> a
    104:104:void print(com.android.tools.r8.cf.code.CfConstNumber):304:304 -> a
    105:105:void print(com.android.tools.r8.cf.code.CfConstNumber):301:301 -> a
    106:108:void print(com.android.tools.r8.cf.code.CfConstClass):318:320 -> a
    109:112:void appendType(com.android.tools.r8.graph.DexType):697:700 -> a
    109:112:void print(com.android.tools.r8.cf.code.CfConstClass):320 -> a
    113:113:void appendType(com.android.tools.r8.graph.DexType):698:698 -> a
    113:113:void print(com.android.tools.r8.cf.code.CfConstClass):320 -> a
    114:114:void print(com.android.tools.r8.cf.code.CfReturn):328:328 -> a
    115:115:void print(com.android.tools.r8.cf.code.CfMonitor):332:332 -> a
    116:117:void print(java.lang.String):246:247 -> a
    116:117:void print(com.android.tools.r8.cf.code.CfMonitor):332 -> a
    118:118:void print(com.android.tools.r8.cf.code.CfArithmeticBinop):336:336 -> a
    119:119:void print(com.android.tools.r8.cf.code.CfCmp):340:340 -> a
    120:120:void print(com.android.tools.r8.cf.code.CfLogicalBinop):344:344 -> a
    121:121:void print(com.android.tools.r8.cf.code.CfNeg):348:348 -> a
    122:122:void print(com.android.tools.r8.cf.code.CfNumberConversion):352:352 -> a
    123:124:void print(com.android.tools.r8.cf.code.CfConstString):356:357 -> a
    125:126:void print(com.android.tools.r8.cf.code.CfDexItemBasedConstString):361:362 -> a
    127:128:void print(com.android.tools.r8.cf.code.CfArrayLoad):366:367 -> a
    129:130:void print(com.android.tools.r8.cf.code.CfArrayStore):371:372 -> a
    131:133:void print(com.android.tools.r8.cf.code.CfInvoke):376:378 -> a
    134:137:void print(com.android.tools.r8.cf.code.CfInvokeDynamic):382:385 -> a
    138:138:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    138:138:void print(com.android.tools.r8.cf.code.CfInvokeDynamic):385 -> a
    139:139:void print(com.android.tools.r8.cf.code.CfInvokeDynamic):385:385 -> a
    140:140:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    140:140:void print(com.android.tools.r8.cf.code.CfInvokeDynamic):385 -> a
    141:160:void print(com.android.tools.r8.cf.code.CfFrame):389:408 -> a
    161:164:void print(com.android.tools.r8.cf.code.CfFrame$FrameType):412:415 -> a
    165:168:void appendType(com.android.tools.r8.graph.DexType):697:700 -> a
    165:168:void print(com.android.tools.r8.cf.code.CfFrame$FrameType):415 -> a
    169:169:void appendType(com.android.tools.r8.graph.DexType):698:698 -> a
    169:169:void print(com.android.tools.r8.cf.code.CfFrame$FrameType):415 -> a
    170:170:void print(com.android.tools.r8.cf.code.CfFrame$FrameType):417:417 -> a
    171:173:void print(com.android.tools.r8.cf.code.CfInstanceOf):422:424 -> a
    174:176:void print(com.android.tools.r8.cf.code.CfCheckCast):428:430 -> a
    177:192:void print(com.android.tools.r8.cf.code.CfFieldInstruction):434:449 -> a
    193:193:void print(com.android.tools.r8.cf.code.CfFieldInstruction):440:440 -> a
    194:203:void print(com.android.tools.r8.cf.code.CfFieldInstruction):437:446 -> a
    204:212:void print(com.android.tools.r8.cf.code.CfFieldInstruction):443:451 -> a
    213:218:void appendField(com.android.tools.r8.graph.DexField):718:723 -> a
    213:218:void print(com.android.tools.r8.cf.code.CfFieldInstruction):451 -> a
    219:220:void print(com.android.tools.r8.cf.code.CfFieldInstruction):452:453 -> a
    221:225:void appendDescriptor(com.android.tools.r8.graph.DexType):689:693 -> a
    221:225:void print(com.android.tools.r8.cf.code.CfFieldInstruction):453 -> a
    226:228:void print(com.android.tools.r8.cf.code.CfNew):457:459 -> a
    229:242:void print(com.android.tools.r8.cf.code.CfNewArray):463:476 -> a
    243:246:void print(com.android.tools.r8.cf.code.CfMultiANewArray):482:485 -> a
    247:251:void print(com.android.tools.r8.cf.code.CfPosition):508:512 -> a
    252:253:void print(com.android.tools.r8.cf.code.CfGoto):517:518 -> a
    254:258:void print(com.android.tools.r8.cf.code.CfIf):526:530 -> a
    259:259:java.lang.String ifPostfix(com.android.tools.r8.ir.code.If$Type):522:522 -> a
    259:259:void print(com.android.tools.r8.cf.code.CfIf):530 -> a
    260:262:void print(com.android.tools.r8.cf.code.CfIf):530:532 -> a
    263:266:void print(com.android.tools.r8.cf.code.CfIfCmp):536:539 -> a
    267:267:java.lang.String ifPostfix(com.android.tools.r8.ir.code.If$Type):522:522 -> a
    267:267:void print(com.android.tools.r8.cf.code.CfIfCmp):539 -> a
    268:270:void print(com.android.tools.r8.cf.code.CfIfCmp):539:541 -> a
    271:288:void print(com.android.tools.r8.cf.code.CfSwitch):545:562 -> a
    289:289:void print(com.android.tools.r8.cf.code.CfLoad):566:566 -> a
    290:291:void printPrefixed(com.android.tools.r8.ir.code.ValueType,java.lang.String,int):583:584 -> a
    290:291:void print(com.android.tools.r8.cf.code.CfLoad):566 -> a
    292:292:void print(com.android.tools.r8.cf.code.CfStore):570:570 -> a
    293:294:void printPrefixed(com.android.tools.r8.ir.code.ValueType,java.lang.String,int):583:584 -> a
    293:294:void print(com.android.tools.r8.cf.code.CfStore):570 -> a
    295:300:void print(com.android.tools.r8.cf.code.CfIinc):574:579 -> a
    301:313:char typePrefix(com.android.tools.r8.ir.code.ValueType):588:600 -> a
    314:332:char typePrefix(com.android.tools.r8.ir.code.MemberType):605:623 -> a
    333:335:void print(com.android.tools.r8.cf.code.CfConstMethodHandle):646:648 -> a
    336:338:void print(com.android.tools.r8.cf.code.CfConstMethodType):652:654 -> a
    339:339:java.lang.String getLabel(com.android.tools.r8.cf.code.CfLabel):658:658 -> a
    340:342:void indent():674:676 -> a
    343:343:void appendComment(java.lang.String):685:685 -> a
    344:352:void appendClass(com.android.tools.r8.graph.DexType):705:713 -> a
    353:353:void appendClass(com.android.tools.r8.graph.DexType):712:712 -> a
    354:354:void appendClass(com.android.tools.r8.graph.DexType):711:711 -> a
    355:362:void appendMethod(com.android.tools.r8.graph.DexMethod):727:734 -> a
    363:363:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    363:363:void appendMethod(com.android.tools.r8.graph.DexMethod):734 -> a
    364:364:void appendMethod(com.android.tools.r8.graph.DexMethod):734:734 -> a
    365:365:java.lang.String com.android.tools.r8.graph.DexProto.toDescriptorString():99:99 -> a
    365:365:void appendMethod(com.android.tools.r8.graph.DexMethod):734 -> a
    366:366:java.lang.String opcodeName(int):738:738 -> a
    1:13:int lambda$getSortedLocalVariables$2(com.android.tools.r8.graph.CfCode$LocalVariableInfo,com.android.tools.r8.graph.CfCode$LocalVariableInfo):228:240 -> b
    14:15:void print(java.lang.String):246:247 -> b
    16:26:void print(com.android.tools.r8.cf.code.CfLabel):493:503 -> b
    27:27:void print(com.android.tools.r8.cf.code.CfLabel):501:501 -> b
    28:28:void print(com.android.tools.r8.cf.code.CfLabel):499:499 -> b
    29:30:void instructionIndex():668:669 -> b
    1:2:void newline():662:663 -> c
    1:1:java.lang.String toString():743:743 -> toString
com.android.tools.r8.cf.CfRegisterAllocator -> com.android.tools.r8.q.d:
    boolean $assertionsDisabled -> n
    int maxRegisterNumber -> l
    com.android.tools.r8.graph.AppView appView -> a
    int maxArgumentRegisterNumber -> m
    int nextUnusedRegisterNumber -> k
    com.android.tools.r8.ir.code.IRCode code -> b
    com.android.tools.r8.cf.TypeVerificationHelper typeHelper -> c
    java.util.PriorityQueue unhandled -> i
    java.util.NavigableSet freeRegisters -> j
    java.util.Map liveAtEntrySets -> d
    java.util.List liveIntervals -> f
    java.util.List inactive -> h
    java.util.List active -> g
    java.util.Map lazyTypeInfoAtBlockEntry -> e
    1:1:void <clinit>():58:58 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.cf.TypeVerificationHelper):115:115 -> <init>
    2:28:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.cf.TypeVerificationHelper):92:118 -> <init>
    1:1:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):128:128 -> a
    2:6:int getRegisterForValue(com.android.tools.r8.ir.code.Value):132:136 -> a
    7:7:com.android.tools.r8.utils.InternalOptions options():146:146 -> a
    8:29:int getNextFreeRegister(boolean):263:284 -> a
    30:33:void freeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):288:291 -> a
    34:34:void assignRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):349:349 -> a
    34:34:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):333 -> a
    35:36:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):334:335 -> a
    37:40:void updateRegisterState(int,boolean):342:345 -> a
    37:40:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):335 -> a
    41:45:void updateHints(com.android.tools.r8.ir.regalloc.LiveIntervals):304:308 -> a
    41:45:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):336 -> a
    46:46:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):337:337 -> a
    47:51:void addToLiveAtEntrySet(com.android.tools.r8.ir.code.BasicBlock,java.util.Collection):353:357 -> a
    52:52:com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry getTypesAtBlockEntry(com.android.tools.r8.ir.code.BasicBlock):363:363 -> a
    53:75:boolean hasEqualTypesAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):399:421 -> a
    76:83:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):528:535 -> a
    84:84:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
    84:84:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):535 -> a
    85:87:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):537:539 -> a
    88:91:void applyInstructionsToTypes(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.Deque,int):471:474 -> a
    88:91:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):538 -> a
    92:119:boolean tryApplyInstructionWithDependentOutType(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.Deque):432:459 -> a
    92:119:void applyInstructionsToTypes(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.Deque,int):476 -> a
    92:119:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):538 -> a
    120:140:void applyInstructionsToTypes(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.Deque,int):479:499 -> a
    120:140:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):538 -> a
    141:147:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):544:550 -> a
    148:148:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet.<init>(int):95:95 -> a
    148:148:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):550 -> a
    149:149:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):551:551 -> a
    150:163:void applyInstructionsBackwardsToRegisterLiveness(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet,int):506:519 -> a
    150:163:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):552 -> a
    164:165:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):558:559 -> a
    166:166:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(int):110:110 -> a
    166:166:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):559 -> a
    167:167:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):560:560 -> a
    168:168:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntIterator.next():57:57 -> a
    168:168:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntIterator.next():33 -> a
    168:168:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):560 -> a
    169:176:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):560:567 -> a
    177:182:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):566:571 -> a
    183:194:void updateFirstRegisterMapByJoiningTheSecond(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):578:589 -> a
    195:204:void updateFirstStackByJoiningTheSecond(java.util.List,java.util.List):596:605 -> a
    1:1:int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int):141:141 -> b
    2:7:void computeNeedsRegister():165:170 -> b
    2:7:void allocateRegisters():151 -> b
    8:11:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():176:179 -> b
    8:11:void allocateRegisters():152 -> b
    12:12:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():178:178 -> b
    12:12:void allocateRegisters():152 -> b
    13:53:void performLinearScan():184:224 -> b
    13:53:void allocateRegisters():153 -> b
    54:62:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals):315:323 -> b
    54:62:void performLinearScan():231 -> b
    54:62:void allocateRegisters():153 -> b
    63:63:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> b
    63:63:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals):323 -> b
    63:63:void performLinearScan():231 -> b
    63:63:void allocateRegisters():153 -> b
    64:73:void performLinearScan():232:241 -> b
    64:73:void allocateRegisters():153 -> b
    74:74:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> b
    74:74:void performLinearScan():242 -> b
    74:74:void allocateRegisters():153 -> b
    75:76:void performLinearScan():255:256 -> b
    75:76:void allocateRegisters():153 -> b
    77:77:void performLinearScan():251:251 -> b
    77:77:void allocateRegisters():153 -> b
    78:79:void allocateRegisters():158:159 -> b
    80:83:void takeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):296:299 -> b
    84:85:com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry lambda$getTypesAtBlockEntry$0(com.android.tools.r8.ir.code.BasicBlock):366:367 -> b
    86:86:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(int):110:110 -> b
    86:86:com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry lambda$getTypesAtBlockEntry$0(com.android.tools.r8.ir.code.BasicBlock):367 -> b
    87:96:com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry lambda$getTypesAtBlockEntry$0(com.android.tools.r8.ir.code.BasicBlock):368:377 -> b
    97:108:void mergeBlocks(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):383:394 -> b
    1:1:int registersUsed():123:123 -> c
com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry -> com.android.tools.r8.q.c:
    java.util.List stack -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap registers -> a
    1:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.List):71:73 -> <init>
    1:11:java.lang.String toString():78:88 -> toString
com.android.tools.r8.cf.FixedLocalValue -> com.android.tools.r8.q.e:
    com.android.tools.r8.ir.code.Phi phi -> r
    1:2:void <init>(com.android.tools.r8.ir.code.Phi):21:22 -> <init>
    boolean isConstant() -> L
    boolean needsRegister() -> X
    1:1:int getRegister(com.android.tools.r8.cf.CfRegisterAllocator):26:26 -> a
    2:2:int com.android.tools.r8.cf.CfRegisterAllocator.getRegisterForValue(com.android.tools.r8.ir.code.Value,int):128:128 -> a
    2:2:int getRegister(com.android.tools.r8.cf.CfRegisterAllocator):26 -> a
    1:1:com.android.tools.r8.ir.code.Phi getPhi():30:30 -> i0
    1:1:java.lang.String toString():45:45 -> toString
com.android.tools.r8.cf.LoadStoreHelper -> com.android.tools.r8.q.g:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Map clonableConstants -> d
    boolean $assertionsDisabled -> f
    com.android.tools.r8.ir.code.IRCode code -> b
    com.android.tools.r8.cf.TypeVerificationHelper typesHelper -> c
    java.util.ListIterator blockIterator -> e
    1:1:void <clinit>():32:32 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.cf.TypeVerificationHelper):41:41 -> <init>
    2:8:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.cf.TypeVerificationHelper):38:44 -> <init>
    1:11:void insertLoadsAndStores():99:109 -> a
    12:32:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):114:134 -> a
    33:36:void movePhis(java.util.List,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):245:248 -> a
    33:36:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):134 -> a
    37:39:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):292:294 -> a
    37:39:void movePhis(java.util.List,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):248 -> a
    37:39:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):134 -> a
    40:47:void movePhis(java.util.List,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):249:256 -> a
    40:47:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):134 -> a
    48:50:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):292:294 -> a
    48:50:void movePhis(java.util.List,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):256 -> a
    48:50:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):134 -> a
    51:51:void movePhis(java.util.List,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):257:257 -> a
    51:51:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):134 -> a
    52:55:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):136:139 -> a
    56:56:com.android.tools.r8.ir.code.StackValue createStackValue(com.android.tools.r8.ir.code.Value,int):143:143 -> a
    57:57:com.android.tools.r8.ir.code.StackValue createStackValue(com.android.tools.r8.graph.DexType,int):147:147 -> a
    57:57:void popOutType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):214 -> a
    58:58:void popOutType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):214:214 -> a
    59:67:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):152:160 -> a
    68:68:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):287:287 -> a
    68:68:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):161 -> a
    69:71:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):292:294 -> a
    69:71:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):287 -> a
    69:71:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):161 -> a
    72:72:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):163:163 -> a
    73:73:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):287:287 -> a
    73:73:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):163 -> a
    74:76:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):292:294 -> a
    74:76:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):287 -> a
    74:76:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):163 -> a
    77:79:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):165:167 -> a
    80:86:void popOutValue(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):223:229 -> a
    87:89:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):292:294 -> a
    87:89:void popOutValue(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):229 -> a
    90:110:com.android.tools.r8.ir.code.Instruction load(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value):262:282 -> a
    1:7:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):171:177 -> b
    8:8:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):93:93 -> b
    8:8:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):177 -> b
    9:16:boolean hasLocalInfoOrUsersOutsideThisBlock(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock):48:55 -> b
    9:16:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):94 -> b
    9:16:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):177 -> b
    17:17:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):95:95 -> b
    17:17:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):177 -> b
    18:36:boolean isConstInstructionAlwaysThreeBytes(com.android.tools.r8.ir.code.ConstInstruction):63:81 -> b
    18:36:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):95 -> b
    18:36:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):177 -> b
    37:37:boolean isConstInstructionAlwaysThreeBytes(com.android.tools.r8.ir.code.ConstInstruction):77:77 -> b
    37:37:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):95 -> b
    37:37:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):177 -> b
    38:54:boolean isConstInstructionAlwaysThreeBytes(com.android.tools.r8.ir.code.ConstInstruction):72:88 -> b
    38:54:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):95 -> b
    38:54:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):177 -> b
    55:55:boolean isConstInstructionAlwaysThreeBytes(com.android.tools.r8.ir.code.ConstInstruction):84:84 -> b
    55:55:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):95 -> b
    55:55:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):177 -> b
    56:57:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):178:179 -> b
    58:68:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):178:188 -> b
    69:69:com.android.tools.r8.ir.code.StackValue createStackValue(com.android.tools.r8.ir.code.Value,int):143:143 -> b
    69:69:void popOutValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):218 -> b
    69:69:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):188 -> b
    70:70:void popOutValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):218:218 -> b
    70:70:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):188 -> b
    71:86:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):191:206 -> b
    87:89:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):292:294 -> b
    87:89:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):206 -> b
    90:92:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):207:209 -> b
com.android.tools.r8.cf.LoadStoreHelper$PhiMove -> com.android.tools.r8.q.f:
    com.android.tools.r8.ir.code.Phi phi -> a
    com.android.tools.r8.ir.code.Value operand -> b
    1:3:void <init>(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Value):236:238 -> <init>
com.android.tools.r8.cf.TypeVerificationHelper -> com.android.tools.r8.q.m:
    boolean computingVerificationTypes -> i
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.AppView appView -> e
    com.android.tools.r8.ir.code.IRCode code -> f
    com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo DOUBLE -> d
    com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo LONG -> c
    com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo FLOAT -> b
    com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo INT -> a
    java.util.Map types -> g
    java.util.Map newInstanceInfos -> h
    1:1:void <clinit>():35:35 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):115:115 -> <init>
    2:15:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):110:123 -> <init>
    1:8:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):127:134 -> a
    9:9:boolean com.android.tools.r8.graph.DexType.isFloatType():224:224 -> a
    9:9:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):136 -> a
    10:12:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):137:139 -> a
    13:13:boolean com.android.tools.r8.graph.DexType.isByteType():208:208 -> a
    13:13:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):140 -> a
    14:14:boolean com.android.tools.r8.graph.DexType.isCharType():212:212 -> a
    14:14:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):141 -> a
    15:15:boolean com.android.tools.r8.graph.DexType.isShortType():216:216 -> a
    15:15:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):142 -> a
    16:16:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):143:143 -> a
    17:22:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):139:144 -> a
    23:26:com.android.tools.r8.graph.DexType getDexType(com.android.tools.r8.ir.code.Value):148:151 -> a
    27:32:com.android.tools.r8.graph.DexType join(java.util.Set):180:185 -> a
    33:33:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getLatticeElement(com.android.tools.r8.graph.DexType):219:219 -> a
    33:33:com.android.tools.r8.graph.DexType join(java.util.Set):185 -> a
    34:35:com.android.tools.r8.graph.DexType join(java.util.Set):186:187 -> a
    36:36:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getLatticeElement(com.android.tools.r8.graph.DexType):219:219 -> a
    36:36:com.android.tools.r8.graph.DexType join(java.util.Set):187 -> a
    37:47:com.android.tools.r8.graph.DexType join(java.util.Set):187:197 -> a
    48:48:com.android.tools.r8.graph.DexType join(java.util.Set):196:196 -> a
    49:49:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    49:49:com.android.tools.r8.graph.DexType join(java.util.Set):196 -> a
    50:50:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    50:50:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    50:50:com.android.tools.r8.graph.DexType join(java.util.Set):196 -> a
    51:51:com.android.tools.r8.graph.DexType join(java.util.Set):196:196 -> a
    52:62:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo join(com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):205:215 -> a
    63:127:java.util.Map computeVerificationTypes():223:287 -> a
    128:130:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.ir.code.Value):313:315 -> a
    128:130:java.util.Map computeVerificationTypes():288 -> a
    131:150:java.util.Map computeVerificationTypes():290:309 -> a
    151:156:void addUsers(com.android.tools.r8.ir.code.Value,java.util.Set):319:324 -> a
    1:19:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):155:173 -> b
    20:20:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):171:171 -> b
    21:21:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):169:169 -> b
    22:22:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):167:167 -> b
    23:23:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):165:165 -> b
    24:24:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):163:163 -> b
com.android.tools.r8.cf.TypeVerificationHelper$1 -> com.android.tools.r8.q.h:
com.android.tools.r8.cf.TypeVerificationHelper$InitializedTypeInfo -> com.android.tools.r8.q.i:
    com.android.tools.r8.graph.DexType type -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():41:41 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.cf.TypeVerificationHelper$1):41:41 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexType):44:46 -> <init>
    1:1:com.android.tools.r8.graph.DexType getDexType():51:51 -> a
    1:1:java.lang.String toString():56:56 -> toString
com.android.tools.r8.cf.TypeVerificationHelper$NewInstanceInfo -> com.android.tools.r8.q.j:
    com.android.tools.r8.ir.code.NewInstance newInstance -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():60:60 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.NewInstance):63:65 -> <init>
    1:1:com.android.tools.r8.graph.DexType getDexType():70:70 -> a
    1:1:java.lang.String toString():75:75 -> toString
    2:2:com.android.tools.r8.graph.DexType getDexType():70:70 -> toString
    2:2:java.lang.String toString():75 -> toString
    3:3:java.lang.String toString():75:75 -> toString
com.android.tools.r8.cf.TypeVerificationHelper$ThisInstanceInfo -> com.android.tools.r8.q.k:
    com.android.tools.r8.ir.code.Argument thisArgument -> b
    com.android.tools.r8.graph.DexType type -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():79:79 -> <clinit>
    1:5:void <init>(com.android.tools.r8.ir.code.Argument,com.android.tools.r8.graph.DexType):83:87 -> <init>
    1:1:com.android.tools.r8.graph.DexType getDexType():92:92 -> a
    1:1:java.lang.String toString():97:97 -> toString
    2:2:com.android.tools.r8.graph.DexType getDexType():92:92 -> toString
    2:2:java.lang.String toString():97 -> toString
    3:3:java.lang.String toString():97:97 -> toString
com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo -> com.android.tools.r8.q.l:
    com.android.tools.r8.graph.DexType getDexType() -> a
com.android.tools.r8.cf.code.CfArithmeticBinop -> com.android.tools.r8.q.n.a:
    com.android.tools.r8.ir.code.NumericType type -> b
    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode opcode -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():20:20 -> <clinit>
    1:5:void <init>(com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode,com.android.tools.r8.ir.code.NumericType):33:37 -> <init>
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forBinop():90:90 -> a
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):171 -> a
    2:2:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):91:91 -> a
    3:3:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):89:89 -> a
    4:4:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):87:87 -> a
    5:5:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):85:85 -> a
    6:6:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):83:83 -> a
    7:7:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):81:81 -> a
    8:8:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):79:79 -> a
    9:9:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):77:77 -> a
    10:10:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):75:75 -> a
    11:11:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):73:73 -> a
    12:12:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):71:71 -> a
    13:13:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):69:69 -> a
    14:14:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):67:67 -> a
    15:15:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):65:65 -> a
    16:16:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):63:63 -> a
    17:17:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):61:61 -> a
    18:18:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):59:59 -> a
    19:19:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):57:57 -> a
    20:20:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):55:55 -> a
    21:21:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):53:53 -> a
    22:22:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):51:51 -> a
    23:23:void print(com.android.tools.r8.cf.CfPrinter):127:127 -> a
    24:24:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):132:132 -> a
    25:45:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):143:163 -> a
    46:46:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):160:160 -> a
    47:47:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):157:157 -> a
    48:48:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):154:154 -> a
    49:49:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):151:151 -> a
    50:50:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):148:148 -> a
    1:1:boolean canThrow():137:137 -> e
    1:13:int getAsmOpcode():96:108 -> q
    14:14:int getAsmOpcode():106:106 -> q
    15:15:int getAsmOpcode():104:104 -> q
    16:16:int getAsmOpcode():102:102 -> q
    17:17:int getAsmOpcode():100:100 -> q
    18:18:int getAsmOpcode():98:98 -> q
    1:1:int getAsmOpcodeTypeOffset():113:113 -> r
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getOpcode():41:41 -> s
    1:1:com.android.tools.r8.ir.code.NumericType getType():45:45 -> t
com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode -> com.android.tools.r8.q.n.a$a:
    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode[] $VALUES -> f
    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode Sub -> b
    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode Add -> a
    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode Rem -> e
    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode Div -> d
    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode Mul -> c
    1:5:void <clinit>():23:27 -> <clinit>
    6:6:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(java.lang.String,int):22:22 -> <init>
com.android.tools.r8.cf.code.CfArrayLength -> com.android.tools.r8.q.n.b:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():18:18 -> <clinit>
    1:1:void <init>():18:18 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):22:22 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):27:27 -> a
    3:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):37:40 -> a
    7:7:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):39:39 -> a
    8:8:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayLength():82:82 -> a
    8:8:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):47 -> a
    boolean canThrow() -> e
com.android.tools.r8.cf.code.CfArrayLoad -> com.android.tools.r8.q.n.c:
    boolean $assertionsDisabled -> b
    com.android.tools.r8.ir.code.MemberType type -> a
    1:1:void <clinit>():21:21 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.MemberType):25:27 -> <init>
    1:19:int getLoadType():35:53 -> a
    1:19:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):59 -> a
    20:20:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):59:59 -> a
    21:21:void print(com.android.tools.r8.cf.CfPrinter):64:64 -> a
    22:26:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):74:78 -> a
    27:45:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.ValueType.fromMemberType(com.android.tools.r8.ir.code.MemberType):37:55 -> a
    27:45:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):78 -> a
    46:46:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.ValueType.fromMemberType(com.android.tools.r8.ir.code.MemberType):53:53 -> a
    46:46:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):78 -> a
    47:47:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.ValueType.fromMemberType(com.android.tools.r8.ir.code.MemberType):48:48 -> a
    47:47:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):78 -> a
    48:48:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.ValueType.fromMemberType(com.android.tools.r8.ir.code.MemberType):46:46 -> a
    48:48:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):78 -> a
    49:49:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.ValueType.fromMemberType(com.android.tools.r8.ir.code.MemberType):44:44 -> a
    49:49:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):78 -> a
    50:58:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.ValueType.fromMemberType(com.android.tools.r8.ir.code.MemberType):42:50 -> a
    50:58:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):78 -> a
    59:65:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):79:85 -> a
    66:66:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayGet():78:78 -> a
    66:66:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):92 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.ir.code.MemberType getType():31:31 -> q
com.android.tools.r8.cf.code.CfArrayStore -> com.android.tools.r8.q.n.d:
    com.android.tools.r8.ir.code.MemberType type -> a
    1:2:void <init>(com.android.tools.r8.ir.code.MemberType):24:25 -> <init>
    1:19:int getStoreType():33:51 -> a
    1:19:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):57 -> a
    20:20:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):57:57 -> a
    21:21:void print(com.android.tools.r8.cf.CfPrinter):62:62 -> a
    22:25:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):72:75 -> a
    26:26:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayPut():86:86 -> a
    26:26:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):82 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.ir.code.MemberType getType():29:29 -> q
com.android.tools.r8.cf.code.CfCheckCast -> com.android.tools.r8.q.n.e:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):23:24 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):33:33 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):38:38 -> a
    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):43:43 -> a
    4:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):54:56 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):63:63 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexType getType():28:28 -> q
com.android.tools.r8.cf.code.CfCmp -> com.android.tools.r8.q.n.f:
    com.android.tools.r8.ir.code.Cmp$Bias bias -> a
    com.android.tools.r8.ir.code.NumericType type -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():22:22 -> <clinit>
    1:8:void <init>(com.android.tools.r8.ir.code.Cmp$Bias,com.android.tools.r8.ir.code.NumericType):27:34 -> <init>
    1:1:com.android.tools.r8.cf.code.CfCmp fromAsm(int):58:58 -> a
    2:2:com.android.tools.r8.cf.code.CfCmp fromAsm(int):56:56 -> a
    3:3:com.android.tools.r8.cf.code.CfCmp fromAsm(int):54:54 -> a
    4:4:com.android.tools.r8.cf.code.CfCmp fromAsm(int):52:52 -> a
    5:5:com.android.tools.r8.cf.code.CfCmp fromAsm(int):50:50 -> a
    6:6:com.android.tools.r8.cf.code.CfCmp fromAsm(int):48:48 -> a
    7:7:void print(com.android.tools.r8.cf.CfPrinter):77:77 -> a
    8:8:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):82:82 -> a
    9:11:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):87:89 -> a
    12:12:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forBinop():90:90 -> a
    12:12:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):96 -> a
    1:9:int getAsmOpcode():63:71 -> q
    10:10:int getAsmOpcode():69:69 -> q
    11:11:int getAsmOpcode():67:67 -> q
    1:1:com.android.tools.r8.ir.code.Cmp$Bias getBias():38:38 -> r
    1:1:com.android.tools.r8.ir.code.NumericType getType():42:42 -> s
com.android.tools.r8.cf.code.CfConstClass -> com.android.tools.r8.q.n.g:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):23:24 -> <init>
    1:1:void print(com.android.tools.r8.cf.CfPrinter):38:38 -> a
    2:23:java.lang.String getInternalName(com.android.tools.r8.naming.NamingLens):47:68 -> a
    2:23:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):33 -> a
    24:24:java.lang.String getInternalName(com.android.tools.r8.naming.NamingLens):50:50 -> a
    24:24:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):33 -> a
    25:25:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):33:33 -> a
    26:26:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):74:74 -> a
    27:27:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):79:79 -> a
    28:28:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):86:86 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexType getType():28:28 -> q
com.android.tools.r8.cf.code.CfConstMethodHandle -> com.android.tools.r8.q.n.h:
    com.android.tools.r8.graph.DexMethodHandle handle -> a
    1:2:void <init>(com.android.tools.r8.graph.DexMethodHandle):23:24 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):33:33 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):38:38 -> a
    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):43:43 -> a
    4:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):54:55 -> a
    6:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):54:54 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstMethodHandle():333:333 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):62 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexMethodHandle getHandle():28:28 -> q
com.android.tools.r8.cf.code.CfConstMethodType -> com.android.tools.r8.q.n.i:
    com.android.tools.r8.graph.DexProto type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexProto):23:24 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):33:33 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):38:38 -> a
    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):43:43 -> a
    4:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):54:55 -> a
    6:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):54:54 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstMethodType():337:337 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):62 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexProto getType():28:28 -> q
com.android.tools.r8.cf.code.CfConstNull -> com.android.tools.r8.q.n.j:
    1:1:void <init>():18:18 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):22:22 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):27:27 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):32:32 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstInstruction():107:107 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):39 -> a
com.android.tools.r8.cf.code.CfConstNumber -> com.android.tools.r8.q.n.k:
    com.android.tools.r8.ir.code.ValueType type -> b
    long value -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():19:19 -> <clinit>
    1:3:void <init>(long,com.android.tools.r8.ir.code.ValueType):24:26 -> <init>
    1:53:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):59:111 -> a
    54:61:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):99:106 -> a
    62:62:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):101:101 -> a
    63:63:boolean isNegativeZeroDouble(double):116:116 -> a
    63:63:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):102 -> a
    64:64:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):103:103 -> a
    65:69:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):76:80 -> a
    70:85:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):78:93 -> a
    86:86:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):88:88 -> a
    87:87:boolean isNegativeZeroFloat(float):120:120 -> a
    87:87:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):89 -> a
    88:88:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):90:90 -> a
    89:97:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):62:70 -> a
    98:98:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstInstruction():107:107 -> a
    98:98:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):137 -> a
    99:99:boolean isNegativeZeroDouble(double):116:116 -> a
    100:100:boolean isNegativeZeroFloat(float):120:120 -> a
    101:101:void print(com.android.tools.r8.cf.CfPrinter):125:125 -> a
    102:102:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):130:130 -> a
    103:113:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueType.toPrimitiveTypeLattice():125:135 -> a
    103:113:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):130 -> a
    114:114:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueType.toPrimitiveTypeLattice():133:133 -> a
    114:114:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):130 -> a
    115:115:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueType.toPrimitiveTypeLattice():131:131 -> a
    115:115:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):130 -> a
    116:116:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueType.toPrimitiveTypeLattice():129:129 -> a
    116:116:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):130 -> a
    117:117:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueType.toPrimitiveTypeLattice():127:127 -> a
    117:117:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):130 -> a
    118:118:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):130:130 -> a
    1:2:double getDoubleValue():53:54 -> q
    1:2:float getFloatValue():48:49 -> r
    1:2:int getIntValue():38:39 -> s
    1:2:long getLongValue():43:44 -> t
    1:1:long getRawValue():34:34 -> u
    1:1:com.android.tools.r8.ir.code.ValueType getType():30:30 -> v
com.android.tools.r8.cf.code.CfConstString -> com.android.tools.r8.q.n.l:
    com.android.tools.r8.graph.DexString string -> a
    1:2:void <init>(com.android.tools.r8.graph.DexString):21:22 -> <init>
    com.android.tools.r8.cf.code.CfConstString asConstString() -> a
    1:1:void setString(com.android.tools.r8.graph.DexString):30:30 -> a
    2:2:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):45:45 -> a
    3:3:void print(com.android.tools.r8.cf.CfPrinter):50:50 -> a
    4:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):61:62 -> a
    6:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):61:61 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstInstruction():107:107 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):69 -> a
    boolean canThrow() -> e
    boolean isConstString() -> i
    1:1:com.android.tools.r8.graph.DexString getString():26:26 -> q
com.android.tools.r8.cf.code.CfDexItemBasedConstString -> com.android.tools.r8.q.n.m:
    com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo nameComputationInfo -> b
    com.android.tools.r8.graph.DexReference item -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():20:20 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):25:27 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):50:50 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):56:56 -> a
    3:5:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):67:69 -> a
    6:7:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):75:76 -> a
    8:8:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):75:75 -> a
    9:9:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDexItemBasedConstString(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexType):95:95 -> a
    9:9:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):85 -> a
    com.android.tools.r8.cf.code.CfDexItemBasedConstString asDexItemBasedConstString() -> b
    boolean canThrow() -> e
    boolean isDexItemBasedConstString() -> j
    1:1:com.android.tools.r8.graph.DexReference getItem():31:31 -> q
    1:1:com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo getNameComputationInfo():35:35 -> r
com.android.tools.r8.cf.code.CfFieldInstruction -> com.android.tools.r8.q.n.n:
    com.android.tools.r8.graph.DexField field -> b
    com.android.tools.r8.graph.DexField declaringField -> c
    boolean $assertionsDisabled -> d
    int opcode -> a
    1:1:void <clinit>():21:21 -> <clinit>
    1:5:void <init>(int,com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):27:31 -> <init>
    1:4:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):54:57 -> a
    5:5:void print(com.android.tools.r8.cf.CfPrinter):62:62 -> a
    6:20:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):67:81 -> a
    21:21:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):72:72 -> a
    22:31:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):69:78 -> a
    32:32:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):75:75 -> a
    33:60:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):92:119 -> a
    61:63:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):113:115 -> a
    64:65:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):107:108 -> a
    66:67:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):101:102 -> a
    68:68:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):96:96 -> a
    69:79:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):127:137 -> a
    80:80:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):135:135 -> a
    81:81:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):133:133 -> a
    82:82:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):131:131 -> a
    83:83:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):129:129 -> a
    com.android.tools.r8.cf.code.CfFieldInstruction asFieldInstruction() -> c
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexField getField():35:35 -> q
    1:1:int getOpcode():39:39 -> r
com.android.tools.r8.cf.code.CfFrame -> com.android.tools.r8.q.n.p:
    java.util.List stack -> b
    boolean $assertionsDisabled -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap locals -> a
    1:1:void <clinit>():24:24 -> <clinit>
    1:5:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap,java.util.List):198:202 -> <init>
    1:1:int computeStackCount():223:223 -> a
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):215 -> a
    2:8:java.lang.Object[] computeStackTypes(int,com.android.tools.r8.naming.NamingLens):227:233 -> a
    2:8:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):216 -> a
    9:18:int computeLocalsCount():239:248 -> a
    9:18:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):217 -> a
    19:25:java.lang.Object[] computeLocalsTypes(int,com.android.tools.r8.naming.NamingLens):259:265 -> a
    19:25:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):218 -> a
    26:26:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):219:219 -> a
    27:27:void print(com.android.tools.r8.cf.CfPrinter):279:279 -> a
    28:28:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):285:285 -> a
    29:29:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):297:297 -> a
    boolean emitsIR() -> f
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getLocals():206:206 -> q
    1:1:java.util.List getStack():210:210 -> r
    1:1:java.lang.String toString():274:274 -> toString
com.android.tools.r8.cf.code.CfFrame$1 -> com.android.tools.r8.q.n.o:
com.android.tools.r8.cf.code.CfFrame$FrameType -> com.android.tools.r8.q.n.p$a:
    1:1:void <init>(com.android.tools.r8.cf.code.CfFrame$1):26:26 -> <init>
    2:2:void <init>():74:74 -> <init>
    com.android.tools.r8.graph.DexType getInitializedType() -> a
    java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens) -> a
    1:1:com.android.tools.r8.cf.code.CfFrame$FrameType initialized(com.android.tools.r8.graph.DexType):29:29 -> a
    2:2:com.android.tools.r8.cf.code.CfFrame$FrameType uninitializedNew(com.android.tools.r8.cf.code.CfLabel):33:33 -> a
    com.android.tools.r8.cf.code.CfLabel getUninitializedLabel() -> b
    boolean isInitialized() -> c
    boolean isTop() -> d
    boolean isUninitializedNew() -> e
    boolean isUninitializedThis() -> f
    boolean isWide() -> g
    1:1:com.android.tools.r8.cf.code.CfFrame$FrameType top():41:41 -> h
    1:1:com.android.tools.r8.cf.code.CfFrame$FrameType uninitializedThis():37:37 -> i
com.android.tools.r8.cf.code.CfFrame$InitializedType -> com.android.tools.r8.q.n.q:
    com.android.tools.r8.graph.DexType type -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():77:77 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.cf.code.CfFrame$1):77:77 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexType):81:83 -> <init>
    1:16:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):93:108 -> a
    17:17:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):100:100 -> a
    18:26:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):98:106 -> a
    27:27:com.android.tools.r8.graph.DexType getInitializedType():124:124 -> a
    boolean isInitialized() -> c
    1:1:boolean isWide():114:114 -> g
    1:1:java.lang.String toString():88:88 -> toString
com.android.tools.r8.cf.code.CfFrame$Top -> com.android.tools.r8.q.n.r:
    com.android.tools.r8.cf.code.CfFrame$Top SINGLETON -> a
    1:1:void <clinit>():130:130 -> <clinit>
    1:1:void <init>():128:128 -> <init>
    1:1:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):139:139 -> a
    boolean isTop() -> d
    1:1:com.android.tools.r8.cf.code.CfFrame$Top access$300():128:128 -> j
com.android.tools.r8.cf.code.CfFrame$UninitializedNew -> com.android.tools.r8.q.n.s:
    com.android.tools.r8.cf.code.CfLabel label -> a
    1:1:void <init>(com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfFrame$1):148:148 -> <init>
    2:3:void <init>(com.android.tools.r8.cf.code.CfLabel):151:152 -> <init>
    1:1:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):162:162 -> a
    1:1:com.android.tools.r8.cf.code.CfLabel getUninitializedLabel():172:172 -> b
    boolean isUninitializedNew() -> e
com.android.tools.r8.cf.code.CfFrame$UninitializedThis -> com.android.tools.r8.q.n.t:
    1:1:void <init>(com.android.tools.r8.cf.code.CfFrame$1):176:176 -> <init>
    2:2:void <init>():177:177 -> <init>
    1:1:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):181:181 -> a
    boolean isUninitializedThis() -> f
com.android.tools.r8.cf.code.CfGoto -> com.android.tools.r8.q.n.u:
    com.android.tools.r8.cf.code.CfLabel target -> a
    1:2:void <init>(com.android.tools.r8.cf.code.CfLabel):21:22 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):47:47 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):52:52 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):57:57 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():261:261 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):64 -> a
    1:1:com.android.tools.r8.cf.code.CfLabel getTarget():42:42 -> g
    boolean isJump() -> l
com.android.tools.r8.cf.code.CfIf -> com.android.tools.r8.q.n.v:
    com.android.tools.r8.ir.code.If$Type kind -> a
    com.android.tools.r8.ir.code.ValueType type -> b
    com.android.tools.r8.cf.code.CfLabel target -> c
    1:4:void <init>(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,com.android.tools.r8.cf.code.CfLabel):27:30 -> <init>
    1:1:void print(com.android.tools.r8.cf.CfPrinter):67:67 -> a
    2:2:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):72:72 -> a
    3:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):87:90 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():261:261 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):97 -> a
    1:1:com.android.tools.r8.cf.code.CfLabel getTarget():43:43 -> g
    boolean isConditionalJump() -> h
    boolean isJump() -> l
    1:1:com.android.tools.r8.ir.code.If$Type getKind():38:38 -> q
    1:15:int getOpcode():47:61 -> r
    16:16:int getOpcode():59:59 -> r
    17:17:int getOpcode():49:49 -> r
    1:1:com.android.tools.r8.ir.code.ValueType getType():34:34 -> s
com.android.tools.r8.cf.code.CfIfCmp -> com.android.tools.r8.q.n.w:
    com.android.tools.r8.ir.code.If$Type kind -> a
    com.android.tools.r8.ir.code.ValueType type -> b
    com.android.tools.r8.cf.code.CfLabel target -> c
    1:4:void <init>(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,com.android.tools.r8.cf.code.CfLabel):27:30 -> <init>
    1:15:int getOpcode():47:61 -> a
    1:15:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):72 -> a
    16:16:int getOpcode():59:59 -> a
    16:16:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):72 -> a
    17:17:int getOpcode():49:49 -> a
    17:17:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):72 -> a
    18:18:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):72:72 -> a
    19:19:void print(com.android.tools.r8.cf.CfPrinter):67:67 -> a
    20:24:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):87:91 -> a
    25:25:void com.android.tools.r8.ir.conversion.IRBuilder.addIf(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,int,int,int,int):1298:1298 -> a
    25:25:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):91 -> a
    26:28:void com.android.tools.r8.ir.conversion.IRBuilder.addIf(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,int,int,int,int):1296:1298 -> a
    26:28:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):91 -> a
    29:29:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():261:261 -> a
    29:29:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):98 -> a
    1:1:com.android.tools.r8.cf.code.CfLabel getTarget():43:43 -> g
    boolean isConditionalJump() -> h
    boolean isJump() -> l
    1:1:com.android.tools.r8.ir.code.If$Type getKind():34:34 -> q
    1:1:com.android.tools.r8.ir.code.ValueType getType():38:38 -> r
com.android.tools.r8.cf.code.CfIinc -> com.android.tools.r8.q.n.x:
    int increment -> b
    int var -> a
    1:3:void <init>(int,int):22:24 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):29:29 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):34:34 -> a
    3:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):47:48 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):55:55 -> a
    1:1:int getIncrement():42:42 -> q
    1:1:int getLocalIndex():38:38 -> r
com.android.tools.r8.cf.code.CfInstanceOf -> com.android.tools.r8.q.n.y:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):22:23 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):32:32 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):37:37 -> a
    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):42:42 -> a
    4:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):52:54 -> a
    7:7:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):53:53 -> a
    8:8:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):61:61 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexType getType():27:27 -> q
com.android.tools.r8.cf.code.CfInstruction -> com.android.tools.r8.q.n.z:
    1:1:void <init>():17:17 -> <init>
    com.android.tools.r8.cf.code.CfConstString asConstString() -> a
    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode) -> a
    com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType) -> a
    void print(com.android.tools.r8.cf.CfPrinter) -> a
    void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType) -> a
    void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens) -> a
    com.android.tools.r8.cf.code.CfDexItemBasedConstString asDexItemBasedConstString() -> b
    com.android.tools.r8.cf.code.CfFieldInstruction asFieldInstruction() -> c
    com.android.tools.r8.cf.code.CfInvoke asInvoke() -> d
    boolean canThrow() -> e
    boolean emitsIR() -> f
    com.android.tools.r8.cf.code.CfLabel getTarget() -> g
    boolean isConditionalJump() -> h
    boolean isConstString() -> i
    boolean isDexItemBasedConstString() -> j
    boolean isInvoke() -> k
    boolean isJump() -> l
    boolean isLabel() -> m
    boolean isLoad() -> n
    boolean isReturn() -> o
    boolean isStore() -> p
    1:3:java.lang.String toString():25:27 -> toString
com.android.tools.r8.cf.code.CfInvoke -> com.android.tools.r8.q.n.A:
    int opcode -> b
    com.android.tools.r8.graph.DexMethod method -> a
    boolean itf -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():34:34 -> <clinit>
    1:7:void <init>(int,com.android.tools.r8.graph.DexMethod,boolean):40:46 -> <init>
    1:4:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):73:76 -> a
    5:5:void print(com.android.tools.r8.cf.CfPrinter):81:81 -> a
    6:26:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):86:106 -> a
    27:42:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):88:103 -> a
    43:48:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):94:99 -> a
    49:49:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):91:91 -> a
    50:52:boolean isInvokeSuper(com.android.tools.r8.graph.DexType):111:113 -> a
    53:103:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):126:176 -> a
    104:147:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):129:172 -> a
    148:152:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):159:163 -> a
    153:154:com.android.tools.r8.ir.code.Invoke$Type invokeTypeForInvokeSpecialToNonInitMethodOnHolder(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CfSourceCode):275:276 -> a
    153:154:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):163 -> a
    155:159:com.android.tools.r8.graph.DexEncodedMethod lookupMethod(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):301:305 -> a
    155:159:com.android.tools.r8.ir.code.Invoke$Type invokeTypeForInvokeSpecialToNonInitMethodOnHolder(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CfSourceCode):276 -> a
    155:159:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):163 -> a
    160:176:com.android.tools.r8.ir.code.Invoke$Type invokeTypeForInvokeSpecialToNonInitMethodOnHolder(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CfSourceCode):280:296 -> a
    160:176:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):163 -> a
    177:177:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    177:177:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    177:177:com.android.tools.r8.ir.code.Invoke$Type invokeTypeForInvokeSpecialToNonInitMethodOnHolder(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CfSourceCode):296 -> a
    177:177:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):163 -> a
    178:178:com.android.tools.r8.ir.code.Invoke$Type invokeTypeForInvokeSpecialToNonInitMethodOnHolder(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CfSourceCode):296:296 -> a
    178:178:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):163 -> a
    179:179:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):165:165 -> a
    180:235:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):135:190 -> a
    236:239:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):189:192 -> a
    240:301:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):200:261 -> a
    302:331:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):209:238 -> a
    332:364:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):214:246 -> a
    365:365:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    365:365:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):247 -> a
    366:382:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):248:264 -> a
    383:383:boolean noNeedToUseGraphLense(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.GraphLense):269:269 -> a
    com.android.tools.r8.cf.code.CfInvoke asInvoke() -> d
    boolean canThrow() -> e
    boolean isInvoke() -> k
    1:1:com.android.tools.r8.graph.DexMethod getMethod():50:50 -> q
    1:1:int getOpcode():54:54 -> r
    1:1:boolean isInterface():58:58 -> s
com.android.tools.r8.cf.code.CfInvokeDynamic -> com.android.tools.r8.q.n.B:
    com.android.tools.r8.graph.DexCallSite callSite -> a
    1:2:void <init>(com.android.tools.r8.graph.DexCallSite):39:40 -> <init>
    1:5:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):45:49 -> a
    6:21:java.lang.Object decodeBootstrapArgument(com.android.tools.r8.graph.DexValue,com.android.tools.r8.naming.NamingLens):58:73 -> a
    6:21:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):49 -> a
    22:22:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):49:49 -> a
    23:24:java.lang.Object decodeBootstrapArgument(com.android.tools.r8.graph.DexValue,com.android.tools.r8.naming.NamingLens):75:76 -> a
    23:24:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):49 -> a
    25:28:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):51:54 -> a
    29:29:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):53:53 -> a
    30:30:void print(com.android.tools.r8.cf.CfPrinter):82:82 -> a
    31:31:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):91:91 -> a
    32:34:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):101:103 -> a
    35:37:int[] com.android.tools.r8.ir.conversion.CfState.popReverse(int):182:184 -> a
    35:37:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):103 -> a
    38:47:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):103:112 -> a
    48:48:int[] com.android.tools.r8.ir.conversion.CfState.popReverse(int):182:182 -> a
    48:48:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):103 -> a
    49:49:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forInvokeCustom():169:169 -> a
    49:49:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):120 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexCallSite getCallSite():86:86 -> q
com.android.tools.r8.cf.code.CfLabel -> com.android.tools.r8.q.n.C:
    com.android.tools.r8.org.objectweb.asm.Label label -> a
    1:3:void <init>():17:19 -> <init>
    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode) -> a
    1:1:void print(com.android.tools.r8.cf.CfPrinter):40:40 -> a
    2:2:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):45:45 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):62:62 -> a
    boolean emitsIR() -> f
    boolean isLabel() -> m
    1:4:com.android.tools.r8.org.objectweb.asm.Label getLabel():22:25 -> q
com.android.tools.r8.cf.code.CfLoad -> com.android.tools.r8.q.n.D:
    com.android.tools.r8.ir.code.ValueType type -> b
    int var -> a
    1:3:void <init>(com.android.tools.r8.ir.code.ValueType,int):25:27 -> <init>
    1:13:int getLoadType():31:43 -> a
    1:13:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):59 -> a
    14:14:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):59:59 -> a
    15:15:void print(com.android.tools.r8.cf.CfPrinter):64:64 -> a
    16:18:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):77:79 -> a
    19:19:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    19:19:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):79 -> a
    20:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forLoad():265:265 -> a
    20:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):91 -> a
    boolean emitsIR() -> f
    boolean isLoad() -> n
    1:1:int getLocalIndex():72:72 -> q
    1:1:com.android.tools.r8.ir.code.ValueType getType():68:68 -> r
com.android.tools.r8.cf.code.CfLogicalBinop -> com.android.tools.r8.q.n.E:
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode opcode -> a
    com.android.tools.r8.ir.code.NumericType type -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():20:20 -> <clinit>
    1:6:void <init>(com.android.tools.r8.cf.code.CfLogicalBinop$Opcode,com.android.tools.r8.ir.code.NumericType):34:39 -> <init>
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):77:77 -> a
    2:2:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):75:75 -> a
    3:3:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):73:73 -> a
    4:4:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):71:71 -> a
    5:5:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):69:69 -> a
    6:6:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):67:67 -> a
    7:7:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):65:65 -> a
    8:8:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):63:63 -> a
    9:9:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):61:61 -> a
    10:10:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):59:59 -> a
    11:11:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):57:57 -> a
    12:12:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):55:55 -> a
    13:13:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):53:53 -> a
    14:14:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forBinop():90:90 -> a
    14:14:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):143 -> a
    15:15:void print(com.android.tools.r8.cf.CfPrinter):102:102 -> a
    16:16:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):107:107 -> a
    17:40:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):112:135 -> a
    41:41:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):132:132 -> a
    42:42:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):129:129 -> a
    43:43:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):126:126 -> a
    44:44:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):123:123 -> a
    45:45:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):120:120 -> a
    46:46:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):117:117 -> a
    1:15:int getAsmOpcode():82:96 -> q
    16:16:int getAsmOpcode():94:94 -> q
    17:17:int getAsmOpcode():92:92 -> q
    18:18:int getAsmOpcode():90:90 -> q
    19:19:int getAsmOpcode():88:88 -> q
    20:20:int getAsmOpcode():86:86 -> q
    21:21:int getAsmOpcode():84:84 -> q
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getOpcode():47:47 -> r
    1:1:com.android.tools.r8.ir.code.NumericType getType():43:43 -> s
com.android.tools.r8.cf.code.CfLogicalBinop$Opcode -> com.android.tools.r8.q.n.E$a:
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode Shl -> a
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode[] $VALUES -> g
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode And -> d
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode Or -> e
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode Shr -> b
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode Ushr -> c
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode Xor -> f
    1:6:void <clinit>():23:28 -> <clinit>
    7:7:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(java.lang.String,int):22:22 -> <init>
com.android.tools.r8.cf.code.CfMonitor -> com.android.tools.r8.q.n.F:
    com.android.tools.r8.ir.code.Monitor$Type type -> a
    1:2:void <init>(com.android.tools.r8.ir.code.Monitor$Type):23:24 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):33:33 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):38:38 -> a
    3:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):48:49 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMonitor():269:269 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):56 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.ir.code.Monitor$Type getType():28:28 -> q
com.android.tools.r8.cf.code.CfMultiANewArray -> com.android.tools.r8.q.n.G:
    com.android.tools.r8.graph.DexType type -> a
    int dimensions -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():18:18 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexType,int):23:25 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):38:38 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):43:43 -> a
    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):48:48 -> a
    4:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):58:60 -> a
    7:9:int[] com.android.tools.r8.ir.conversion.CfState.popReverse(int):182:184 -> a
    7:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):60 -> a
    10:10:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):61:61 -> a
    11:11:int[] com.android.tools.r8.ir.conversion.CfState.popReverse(int):182:182 -> a
    11:11:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):60 -> a
    12:12:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):68:68 -> a
    boolean canThrow() -> e
    1:1:int getDimensions():33:33 -> q
    1:1:com.android.tools.r8.graph.DexType getType():29:29 -> r
com.android.tools.r8.cf.code.CfNeg -> com.android.tools.r8.q.n.H:
    com.android.tools.r8.ir.code.NumericType type -> a
    1:2:void <init>(com.android.tools.r8.ir.code.NumericType):24:25 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):34:34 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):39:39 -> a
    3:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):77:78 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forUnop():329:329 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):85 -> a
    1:14:int getAsmOpcode():43:56 -> q
    1:1:com.android.tools.r8.ir.code.NumericType getType():29:29 -> r
com.android.tools.r8.cf.code.CfNew -> com.android.tools.r8.q.n.I:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):22:23 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):32:32 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):37:37 -> a
    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):42:42 -> a
    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):52:52 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):59:59 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexType getType():27:27 -> q
com.android.tools.r8.cf.code.CfNewArray -> com.android.tools.r8.q.n.J:
    com.android.tools.r8.graph.DexType type -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():21:21 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexType):25:27 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):67:67 -> a
    2:20:int getPrimitiveTypeCode():35:53 -> a
    2:20:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):68 -> a
    21:21:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):68:68 -> a
    22:26:java.lang.String getElementInternalName(com.android.tools.r8.naming.NamingLens):58:62 -> a
    22:26:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):70 -> a
    27:27:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):70:70 -> a
    28:28:void print(com.android.tools.r8.cf.CfPrinter):76:76 -> a
    29:30:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):81:82 -> a
    31:33:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):93:95 -> a
    34:34:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):102:102 -> a
    boolean canThrow() -> e
    1:1:com.android.tools.r8.graph.DexType getType():31:31 -> q
com.android.tools.r8.cf.code.CfNop -> com.android.tools.r8.q.n.K:
    1:1:void <init>():17:17 -> <init>
    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode) -> a
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):21:21 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):26:26 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):43:43 -> a
    boolean emitsIR() -> f
com.android.tools.r8.cf.code.CfNumberConversion -> com.android.tools.r8.q.n.L:
    com.android.tools.r8.ir.code.NumericType to -> b
    com.android.tools.r8.ir.code.NumericType from -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():20:20 -> <clinit>
    1:7:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType):25:31 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):44:44 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):49:49 -> a
    3:3:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):142:142 -> a
    4:4:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):140:140 -> a
    5:5:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):138:138 -> a
    6:6:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):136:136 -> a
    7:7:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):134:134 -> a
    8:8:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):132:132 -> a
    9:9:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):130:130 -> a
    10:10:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):128:128 -> a
    11:11:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):126:126 -> a
    12:12:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):124:124 -> a
    13:13:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):122:122 -> a
    14:14:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):120:120 -> a
    15:15:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):118:118 -> a
    16:16:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):116:116 -> a
    17:17:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):114:114 -> a
    18:18:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):112:112 -> a
    19:20:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):148:149 -> a
    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forUnop():329:329 -> a
    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):156 -> a
    1:53:int getAsmOpcode():53:105 -> q
    54:101:int getAsmOpcode():55:102 -> q
    102:110:int getAsmOpcode():83:91 -> q
    111:119:int getAsmOpcode():72:80 -> q
    1:1:com.android.tools.r8.ir.code.NumericType getFromType():35:35 -> r
    1:1:com.android.tools.r8.ir.code.NumericType getToType():39:39 -> s
com.android.tools.r8.cf.code.CfPosition -> com.android.tools.r8.q.n.M:
    com.android.tools.r8.cf.code.CfLabel label -> a
    com.android.tools.r8.ir.code.Position position -> b
    1:3:void <init>(com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.ir.code.Position):22:24 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):29:29 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):34:34 -> a
    3:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):62:64 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):71:71 -> a
    boolean emitsIR() -> f
    1:1:com.android.tools.r8.cf.code.CfLabel getLabel():42:42 -> q
    1:1:com.android.tools.r8.ir.code.Position getPosition():38:38 -> r
com.android.tools.r8.cf.code.CfReturn -> com.android.tools.r8.q.n.N:
    com.android.tools.r8.ir.code.ValueType type -> a
    1:2:void <init>(com.android.tools.r8.ir.code.ValueType):24:25 -> <init>
    1:13:int getOpcode():33:45 -> a
    1:13:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):56 -> a
    14:14:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):56:56 -> a
    15:15:void print(com.android.tools.r8.cf.CfPrinter):61:61 -> a
    16:17:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):71:72 -> a
    18:18:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forReturn():301:301 -> a
    18:18:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):79 -> a
    boolean isJump() -> l
    boolean isReturn() -> o
    1:1:com.android.tools.r8.ir.code.ValueType getType():29:29 -> q
com.android.tools.r8.cf.code.CfReturnVoid -> com.android.tools.r8.q.n.O:
    1:1:void <init>():17:17 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):26:26 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):31:31 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):41:41 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forReturn():301:301 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):48 -> a
    boolean isJump() -> l
    boolean isReturn() -> o
com.android.tools.r8.cf.code.CfStackInstruction -> com.android.tools.r8.q.n.P:
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode opcode -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():21:21 -> <clinit>
    1:2:void <init>(com.android.tools.r8.cf.code.CfStackInstruction$Opcode):72:73 -> <init>
    1:1:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):64:64 -> a
    2:2:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):62:62 -> a
    3:3:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):60:60 -> a
    4:4:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):58:58 -> a
    5:5:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):56:56 -> a
    6:6:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):54:54 -> a
    7:7:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):52:52 -> a
    8:8:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):50:50 -> a
    9:9:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):48:48 -> a
    10:10:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):46:46 -> a
    11:11:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):78:78 -> a
    12:12:void print(com.android.tools.r8.cf.CfPrinter):83:83 -> a
    13:135:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):92:214 -> a
    136:155:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):166:185 -> a
    156:156:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):181:181 -> a
    157:157:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    157:157:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):181 -> a
    158:173:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):181:196 -> a
    174:183:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):288:297 -> a
    174:183:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
    184:184:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    184:184:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):297 -> a
    184:184:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
    185:185:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):299:299 -> a
    185:185:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
    186:186:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    186:186:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):299 -> a
    186:186:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
    187:187:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):301:301 -> a
    187:187:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
    188:188:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    188:188:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):301 -> a
    188:188:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
    189:189:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):303:303 -> a
    189:189:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
    190:190:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    190:190:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):303 -> a
    190:190:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
    191:191:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):305:305 -> a
    191:191:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
    192:192:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    192:192:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):305 -> a
    192:192:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
    193:193:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):307:307 -> a
    193:193:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
    194:194:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    194:194:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):307 -> a
    194:194:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
    195:195:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    195:195:void dup2x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):297 -> a
    195:195:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):201 -> a
    196:196:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):197:197 -> a
    197:197:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    197:197:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):197 -> a
    198:198:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):197:197 -> a
    199:199:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):189:189 -> a
    200:200:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    200:200:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):189 -> a
    201:201:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):189:189 -> a
    202:210:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):152:160 -> a
    211:213:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):140:142 -> a
    214:214:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    214:214:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):142 -> a
    215:216:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):144:145 -> a
    217:217:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    217:217:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):145 -> a
    218:218:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):146:146 -> a
    219:219:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    219:219:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):146 -> a
    220:220:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    220:220:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):145 -> a
    221:229:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):126:134 -> a
    230:234:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):117:121 -> a
    235:237:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):110:112 -> a
    238:238:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    238:238:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):112 -> a
    239:242:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):101:104 -> a
    243:244:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):95:96 -> a
    245:250:void dup1x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):224:229 -> a
    251:251:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    251:251:void dup1x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):229 -> a
    252:252:void dup1x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):231:231 -> a
    253:253:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    253:253:void dup1x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):231 -> a
    254:254:void dup1x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):233:233 -> a
    255:255:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    255:255:void dup1x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):233 -> a
    256:256:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    256:256:void dup1x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):229 -> a
    257:263:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):241:247 -> a
    264:264:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    264:264:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):247 -> a
    265:265:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):249:249 -> a
    266:266:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    266:266:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):249 -> a
    267:267:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):251:251 -> a
    268:268:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    268:268:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):251 -> a
    269:269:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):253:253 -> a
    270:270:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    270:270:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):253 -> a
    271:271:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    271:271:void dup1x2(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):247 -> a
    272:272:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):319:319 -> a
    1:8:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):260:267 -> b
    9:9:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> b
    9:9:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):267 -> b
    10:10:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):269:269 -> b
    11:11:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> b
    11:11:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):269 -> b
    12:12:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):271:271 -> b
    13:13:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> b
    13:13:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):271 -> b
    14:14:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):273:273 -> b
    15:15:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> b
    15:15:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):273 -> b
    16:16:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):275:275 -> b
    17:17:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> b
    17:17:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):275 -> b
    18:18:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> b
    18:18:void dup2x1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot):267 -> b
    boolean emitsIR() -> f
    1:1:com.android.tools.r8.cf.code.CfStackInstruction$Opcode getOpcode():87:87 -> q
com.android.tools.r8.cf.code.CfStackInstruction$Opcode -> com.android.tools.r8.q.n.P$a:
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Swap -> j
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode[] $VALUES -> k
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Dup2X2 -> i
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Dup2X1 -> h
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Dup2 -> g
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode DupX2 -> f
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode DupX1 -> e
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Dup -> d
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Pop2 -> c
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Pop -> b
    int opcode -> a
    1:9:void <clinit>():24:32 -> <clinit>
    10:10:void <clinit>():23:23 -> <clinit>
    1:2:void <init>(java.lang.String,int,int):36:37 -> <init>
    1:1:int access$000(com.android.tools.r8.cf.code.CfStackInstruction$Opcode):23:23 -> a
com.android.tools.r8.cf.code.CfStore -> com.android.tools.r8.q.n.Q:
    com.android.tools.r8.ir.code.ValueType type -> b
    int var -> a
    1:3:void <init>(com.android.tools.r8.ir.code.ValueType,int):25:27 -> <init>
    1:13:int getStoreType():31:43 -> a
    1:13:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):59 -> a
    14:14:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):59:59 -> a
    15:15:void print(com.android.tools.r8.cf.CfPrinter):64:64 -> a
    16:17:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):77:78 -> a
    18:18:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    18:18:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):78 -> a
    19:19:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forStore():317:317 -> a
    19:19:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):90 -> a
    boolean emitsIR() -> f
    boolean isStore() -> p
    1:1:int getLocalIndex():72:72 -> q
    1:1:com.android.tools.r8.ir.code.ValueType getType():68:68 -> r
com.android.tools.r8.cf.code.CfSwitch -> com.android.tools.r8.q.n.S:
    com.android.tools.r8.cf.code.CfLabel defaultTarget -> b
    int[] keys -> c
    java.util.List targets -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.cf.code.CfSwitch$Kind kind -> a
    1:1:void <clinit>():21:21 -> <clinit>
    1:7:void <init>(com.android.tools.r8.cf.code.CfSwitch$Kind,com.android.tools.r8.cf.code.CfLabel,int[],java.util.List):30:36 -> <init>
    1:12:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):72:83 -> a
    13:13:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):78:78 -> a
    14:14:void print(com.android.tools.r8.cf.CfPrinter):90:90 -> a
    15:20:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):95:100 -> a
    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():261:261 -> a
    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):107 -> a
    boolean isJump() -> l
    1:1:com.android.tools.r8.cf.code.CfLabel getDefaultTarget():44:44 -> q
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList getKeys():48:48 -> r
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>(int[]):135:135 -> r
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList getKeys():48 -> r
    1:1:com.android.tools.r8.cf.code.CfSwitch$Kind getKind():40:40 -> s
    1:1:java.util.List getSwitchTargets():52:52 -> t
com.android.tools.r8.cf.code.CfSwitch$Kind -> com.android.tools.r8.q.n.S$a:
    com.android.tools.r8.cf.code.CfSwitch$Kind[] $VALUES -> c
    com.android.tools.r8.cf.code.CfSwitch$Kind TABLE -> b
    com.android.tools.r8.cf.code.CfSwitch$Kind LOOKUP -> a
    1:1:void <clinit>():23:23 -> <clinit>
    1:1:void <init>(java.lang.String,int):23:23 -> <init>
com.android.tools.r8.cf.code.CfThrow -> com.android.tools.r8.q.n.T:
    1:1:void <init>():18:18 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):27:27 -> a
    2:2:void print(com.android.tools.r8.cf.CfPrinter):32:32 -> a
    3:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):42:43 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():261:261 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):50 -> a
    boolean canThrow() -> e
    boolean isJump() -> l
com.android.tools.r8.cf.code.CfTryCatch -> com.android.tools.r8.q.n.U:
    com.android.tools.r8.cf.code.CfLabel start -> a
    com.android.tools.r8.cf.code.CfLabel end -> b
    java.util.List targets -> d
    java.util.List guards -> c
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():13:13 -> <clinit>
    1:6:void <init>(com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfLabel,java.util.List,java.util.List):19:24 -> <init>
    1:2:boolean verifyAllNonNull(java.util.List):28:29 -> a
    3:8:com.android.tools.r8.cf.code.CfTryCatch fromBuilder(com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.ir.code.CatchHandlers,com.android.tools.r8.ir.conversion.CfBuilder):39:44 -> a
com.android.tools.r8.code.AddDouble -> com.android.tools.r8.code.b:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AddDouble2Addr -> com.android.tools.r8.code.a:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AddFloat -> com.android.tools.r8.code.d:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AddFloat2Addr -> com.android.tools.r8.code.c:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AddInt -> com.android.tools.r8.code.f:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AddInt2Addr -> com.android.tools.r8.code.e:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AddIntLit16 -> com.android.tools.r8.code.g:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AddIntLit8 -> com.android.tools.r8.code.h:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AddLong -> com.android.tools.r8.code.j:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AddLong2Addr -> com.android.tools.r8.code.i:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.Aget -> com.android.tools.r8.code.k:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AgetBoolean -> com.android.tools.r8.code.l:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AgetByte -> com.android.tools.r8.code.m:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AgetChar -> com.android.tools.r8.code.n:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AgetObject -> com.android.tools.r8.code.o:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AgetShort -> com.android.tools.r8.code.p:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AgetWide -> com.android.tools.r8.code.q:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AndInt -> com.android.tools.r8.code.s:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AndInt2Addr -> com.android.tools.r8.code.r:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AndIntLit16 -> com.android.tools.r8.code.t:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AndIntLit8 -> com.android.tools.r8.code.u:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AndLong -> com.android.tools.r8.code.w:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AndLong2Addr -> com.android.tools.r8.code.v:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.Aput -> com.android.tools.r8.code.x:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AputBoolean -> com.android.tools.r8.code.y:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AputByte -> com.android.tools.r8.code.z:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AputChar -> com.android.tools.r8.code.A:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AputObject -> com.android.tools.r8.code.B:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AputShort -> com.android.tools.r8.code.C:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.AputWide -> com.android.tools.r8.code.D:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ArrayLength -> com.android.tools.r8.code.E:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.Base1Format -> com.android.tools.r8.code.F:
    1:1:void <init>(com.android.tools.r8.code.BytecodeStream):11:11 -> <init>
    2:2:void <init>():14:14 -> <init>
    int getSize() -> m
com.android.tools.r8.code.Base2Format -> com.android.tools.r8.code.G:
    1:1:void <init>():10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.code.BytecodeStream):13:13 -> <init>
    int getSize() -> m
com.android.tools.r8.code.Base3Format -> com.android.tools.r8.code.H:
    1:1:void <init>():10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.code.BytecodeStream):13:13 -> <init>
    int getSize() -> m
com.android.tools.r8.code.Base4Format -> com.android.tools.r8.code.I:
    1:1:void <init>():10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.code.BytecodeStream):13:13 -> <init>
    int getSize() -> m
com.android.tools.r8.code.Base5Format -> com.android.tools.r8.code.J:
    1:1:void <init>():10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.code.BytecodeStream):13:13 -> <init>
    int getSize() -> m
com.android.tools.r8.code.BaseInstructionFactory -> com.android.tools.r8.code.K:
    1:1:void <init>():8:8 -> <init>
com.android.tools.r8.code.BytecodeStream -> com.android.tools.r8.code.L:
com.android.tools.r8.code.CheckCast -> com.android.tools.r8.code.M:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexType):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):47:47 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):56:56 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    boolean isCheckCast() -> q
    1:1:com.android.tools.r8.graph.DexType getType():51:51 -> z
com.android.tools.r8.code.CmpLong -> com.android.tools.r8.code.N:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
    2:2:void <init>(int,int,int):21:21 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):10:10 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.CmpgDouble -> com.android.tools.r8.code.O:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
    2:2:void <init>(int,int,int):21:21 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):10:10 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.CmpgFloat -> com.android.tools.r8.code.P:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
    2:2:void <init>(int,int,int):21:21 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):10:10 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.CmplDouble -> com.android.tools.r8.code.Q:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
    2:2:void <init>(int,int,int):21:21 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):10:10 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.CmplFloat -> com.android.tools.r8.code.S:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
    2:2:void <init>(int,int,int):21:21 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):10:10 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.Const -> com.android.tools.r8.code.V:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
    2:2:void <init>(int,int):23:23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void com.android.tools.r8.code.Format31i.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:34 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    3:3:int decodedValue():43:43 -> a
    4:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    6:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    7:10:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:63 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.Const16 -> com.android.tools.r8.code.T:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
    2:2:void <init>(int,int):23:23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):12:12 -> a
    2:3:void com.android.tools.r8.code.Format21s.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    4:4:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    4:4:void com.android.tools.r8.code.Format21s.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):36 -> a
    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    5:5:int decodedValue():43:43 -> a
    6:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:57 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.Const4 -> com.android.tools.r8.code.U:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
    2:2:void <init>(int,int):23:23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:void com.android.tools.r8.code.Format11n.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:39 -> a
    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    2:2:int decodedValue():43:43 -> a
    3:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    5:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    6:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:63 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ConstClass -> com.android.tools.r8.code.W:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexType):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    com.android.tools.r8.code.ConstClass asConstClass() -> b
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    boolean isConstClass() -> r
    1:1:com.android.tools.r8.graph.DexType getType():46:46 -> z
com.android.tools.r8.code.ConstHigh16 -> com.android.tools.r8.code.X:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
    2:2:void <init>(int,int):23:23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void com.android.tools.r8.code.Format21h.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:34 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    3:3:void com.android.tools.r8.code.Format21h.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):34 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    4:4:int decodedValue():43:43 -> a
    5:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    7:7:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    8:11:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:63 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ConstMethodHandle -> com.android.tools.r8.code.Y:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):23:23 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexMethodHandle):27:27 -> <init>
    1:1:com.android.tools.r8.graph.DexMethodHandle getMethodHandle():31:31 -> a
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):62 -> a
    2:2:void registerUse(com.android.tools.r8.graph.UseRegistry):62:62 -> a
    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry):61:61 -> a
    4:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):56:56 -> a
    5:5:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):67:67 -> a
    6:7:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    6:7:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):71 -> a
    8:8:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):69:69 -> a
    9:9:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    9:9:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):16 -> a
    10:10:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):76:76 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):51:51 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ConstMethodType -> com.android.tools.r8.code.Z:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):22:22 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexProto):26:26 -> <init>
    1:1:com.android.tools.r8.graph.DexProto getMethodType():30:30 -> a
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):60 -> a
    2:2:void registerUse(com.android.tools.r8.graph.UseRegistry):60:60 -> a
    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):55:55 -> a
    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):65:65 -> a
    5:6:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    5:6:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):69 -> a
    7:7:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):67:67 -> a
    8:8:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    8:8:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):15 -> a
    9:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):74:74 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):50:50 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ConstString -> com.android.tools.r8.code.a0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):21:21 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexString):25:25 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):64:64 -> a
    2:2:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):14 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):69:69 -> a
    4:5:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    4:5:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):73 -> a
    6:6:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):71:71 -> a
    7:7:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):78:78 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):59:59 -> b
    com.android.tools.r8.code.ConstString asConstString() -> c
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    boolean isConstString() -> s
    1:1:com.android.tools.r8.graph.DexString getString():29:29 -> z
com.android.tools.r8.code.ConstStringJumbo -> com.android.tools.r8.code.b0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexString):22:22 -> <init>
    1:2:void com.android.tools.r8.code.Format31c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):37:38 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    3:3:void com.android.tools.r8.code.Instruction.write32BitReference(com.android.tools.r8.graph.IndexedDexItem,java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):115:115 -> a
    3:3:void com.android.tools.r8.code.Format31c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):38 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):61:61 -> a
    5:5:void com.android.tools.r8.code.Format31c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):64:64 -> a
    5:5:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    6:6:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> a
    6:6:void com.android.tools.r8.code.Format31c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):64 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    7:7:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):66:66 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):56:56 -> b
    com.android.tools.r8.code.ConstStringJumbo asConstStringJumbo() -> d
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    boolean isConstStringJumbo() -> t
    1:1:com.android.tools.r8.graph.DexString getString():26:26 -> z
com.android.tools.r8.code.ConstWide -> com.android.tools.r8.code.e0:
    short com.android.tools.r8.code.Format51l.AA -> f
    long com.android.tools.r8.code.Format51l.BBBBBBBBBBBBBBBB -> g
    boolean com.android.tools.r8.code.Format51l.$assertionsDisabled -> h
    1:1:void com.android.tools.r8.code.Format51l.<clinit>():13:13 -> <clinit>
    1:2:void com.android.tools.r8.code.Format51l.<init>(int,com.android.tools.r8.code.BytecodeStream):20:21 -> <init>
    1:2:void <init>(int,com.android.tools.r8.code.BytecodeStream):19 -> <init>
    3:4:long com.android.tools.r8.code.Instruction.read64BitValue(com.android.tools.r8.code.BytecodeStream):70:71 -> <init>
    3:4:void com.android.tools.r8.code.Format51l.<init>(int,com.android.tools.r8.code.BytecodeStream):22 -> <init>
    3:4:void <init>(int,com.android.tools.r8.code.BytecodeStream):19 -> <init>
    5:5:void com.android.tools.r8.code.Format51l.<init>(int,com.android.tools.r8.code.BytecodeStream):22:22 -> <init>
    5:5:void <init>(int,com.android.tools.r8.code.BytecodeStream):19 -> <init>
    6:9:void com.android.tools.r8.code.Format51l.<init>(int,long):25:28 -> <init>
    6:9:void <init>(int,long):23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void com.android.tools.r8.code.Format51l.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:34 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    3:4:void com.android.tools.r8.code.Instruction.write64BitValue(long,java.nio.ShortBuffer):102:103 -> a
    3:4:void com.android.tools.r8.code.Format51l.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):34 -> a
    3:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    5:5:long decodedValue():43:43 -> a
    6:7:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    8:8:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    9:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:60 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    1:5:boolean com.android.tools.r8.code.Format51l.equals(java.lang.Object):44:48 -> equals
    1:5:boolean com.android.tools.r8.code.Format51l.equals(java.lang.Object):0 -> equals
    1:1:int com.android.tools.r8.code.Format51l.hashCode():39:39 -> hashCode
    1:1:int com.android.tools.r8.code.Format51l.hashCode():0 -> hashCode
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ConstWide16 -> com.android.tools.r8.code.c0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
    2:2:void <init>(int,int):23:23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void com.android.tools.r8.code.Format21s.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    3:3:void com.android.tools.r8.code.Format21s.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):36 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    4:4:long decodedValue():43:43 -> a
    5:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    7:7:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    8:8:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:60 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ConstWide32 -> com.android.tools.r8.code.d0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
    2:2:void <init>(int,int):23:23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void com.android.tools.r8.code.Format31i.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:34 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    3:3:long decodedValue():43:43 -> a
    4:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    6:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    7:7:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:60 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ConstWideHigh16 -> com.android.tools.r8.code.f0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
    2:2:void <init>(int,int):23:23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void com.android.tools.r8.code.Format21h.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:34 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    3:3:void com.android.tools.r8.code.Format21h.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):34 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    4:4:long decodedValue():43:43 -> a
    5:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    7:7:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    8:8:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:60 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.DexItemBasedConstString -> com.android.tools.r8.code.g0:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo nameComputationInfo -> i
    1:1:void <clinit>():15:15 -> <clinit>
    1:2:void <init>(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):24:25 -> <init>
    1:1:com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo getNameComputationInfo():33:33 -> A
    1:1:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):15 -> a
    2:2:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):71:71 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):76:76 -> a
    4:5:void registerUse(com.android.tools.r8.graph.UseRegistry):82:83 -> a
    6:6:com.android.tools.r8.graph.DexReference getItem():29:29 -> a
    6:6:void registerUse(com.android.tools.r8.graph.UseRegistry):83 -> a
    7:7:void registerUse(com.android.tools.r8.graph.UseRegistry):83:83 -> a
    8:8:com.android.tools.r8.graph.DexReference getItem():29:29 -> a
    8:8:void registerUse(com.android.tools.r8.graph.UseRegistry):84 -> a
    9:9:void registerUse(com.android.tools.r8.graph.UseRegistry):84:84 -> a
    10:10:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):90:90 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):65:65 -> b
    com.android.tools.r8.code.DexItemBasedConstString asDexItemBasedConstString() -> e
    boolean canThrow() -> f
    java.lang.String getName() -> i
    1:1:int getOpcode():48:48 -> k
    java.lang.String getSmaliName() -> n
    boolean isDexItemBasedConstString() -> u
    1:1:com.android.tools.r8.graph.DexReference getItem():29:29 -> z
com.android.tools.r8.code.DivDouble -> com.android.tools.r8.code.i0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.DivDouble2Addr -> com.android.tools.r8.code.h0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.DivFloat -> com.android.tools.r8.code.k0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.DivFloat2Addr -> com.android.tools.r8.code.j0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.DivInt -> com.android.tools.r8.code.m0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.DivInt2Addr -> com.android.tools.r8.code.l0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.DivIntLit16 -> com.android.tools.r8.code.n0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.DivIntLit8 -> com.android.tools.r8.code.o0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.DivLong -> com.android.tools.r8.code.q0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.DivLong2Addr -> com.android.tools.r8.code.p0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.DoubleToFloat -> com.android.tools.r8.code.r0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.DoubleToInt -> com.android.tools.r8.code.s0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.DoubleToLong -> com.android.tools.r8.code.t0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.FillArrayData -> com.android.tools.r8.code.u0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    2:2:int com.android.tools.r8.code.Format31t.getPayloadOffset():45:45 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    4:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):45:45 -> a
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.FillArrayDataPayload -> com.android.tools.r8.code.v0:
    short[] data -> h
    boolean $assertionsDisabled -> i
    long size -> g
    int element_width -> f
    1:1:void <clinit>():13:13 -> <clinit>
    1:10:void <init>(int,com.android.tools.r8.code.BytecodeStream):20:29 -> <init>
    11:14:void <init>(int,long,short[]):33:36 -> <init>
    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder) -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):46:47 -> a
    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):47 -> a
    4:6:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):48:50 -> a
    7:7:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    7:7:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):50 -> a
    8:47:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):86:125 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):80:80 -> b
    2:2:java.lang.String com.android.tools.r8.code.Format10x.toString(com.android.tools.r8.naming.ClassNameMapper):40:40 -> b
    2:2:java.lang.String com.android.tools.r8.code.Nop.toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
    2:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):80 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):80:80 -> b
    1:6:boolean equals(java.lang.Object):56:61 -> equals
    1:4:int hashCode():66:69 -> hashCode
    1:1:int getSize():75:75 -> m
    boolean isPayload() -> w
com.android.tools.r8.code.FilledNewArray -> com.android.tools.r8.code.w0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17:17 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexType,int,int,int,int,int):21:21 -> <init>
    1:1:com.android.tools.r8.graph.DexType getType():40:40 -> a
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.FilledNewArrayRange -> com.android.tools.r8.code.x0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17:17 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexType):21:21 -> <init>
    1:1:com.android.tools.r8.graph.DexType getType():40:40 -> a
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.FloatToDouble -> com.android.tools.r8.code.y0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.FloatToInt -> com.android.tools.r8.code.z0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.FloatToLong -> com.android.tools.r8.code.A0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.Format10x -> com.android.tools.r8.code.B0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
    2:2:void <init>():20:20 -> <init>
    1:1:boolean equals(java.lang.Object):35:35 -> equals
com.android.tools.r8.code.Format11n -> com.android.tools.r8.code.C0:
    boolean $assertionsDisabled -> h
    byte A -> f
    byte B -> g
    1:1:void <clinit>():13:13 -> <clinit>
    1:8:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:26 -> <init>
    9:13:void <init>(int,int):30:34 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):58:58 -> b
    1:5:boolean equals(java.lang.Object):49:53 -> equals
    1:1:int hashCode():44:44 -> hashCode
com.android.tools.r8.code.Format11x -> com.android.tools.r8.code.D0:
    short AA -> f
    boolean $assertionsDisabled -> g
    1:1:void <clinit>():13:13 -> <clinit>
    1:2:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:20 -> <init>
    3:5:void <init>(int):23:25 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):53:53 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    1:4:boolean equals(java.lang.Object):40:43 -> equals
    1:1:int hashCode():35:35 -> hashCode
com.android.tools.r8.code.Format12x -> com.android.tools.r8.code.E0:
    boolean $assertionsDisabled -> h
    byte A -> f
    byte B -> g
    1:1:void <clinit>():13:13 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:21 -> <init>
    4:8:void <init>(int,int):24:28 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):57:57 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):52:52 -> b
    1:5:boolean equals(java.lang.Object):43:47 -> equals
    1:1:int hashCode():38:38 -> hashCode
com.android.tools.r8.code.Format21c -> com.android.tools.r8.code.F0:
    short AA -> f
    com.android.tools.r8.graph.IndexedDexItem BBBB -> g
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():15:15 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.IndexedDexItem[]):22:24 -> <init>
    4:7:void <init>(int,com.android.tools.r8.graph.IndexedDexItem):27:30 -> <init>
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):62:62 -> a
    4:4:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):55:56 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):55:55 -> b
    1:5:boolean equals(java.lang.Object):46:50 -> equals
    1:1:int hashCode():41:41 -> hashCode
com.android.tools.r8.code.Format21h -> com.android.tools.r8.code.G0:
    char BBBB -> g
    short AA -> f
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():12:12 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:21 -> <init>
    4:8:void <init>(int,int):24:28 -> <init>
    1:5:boolean equals(java.lang.Object):44:48 -> equals
    1:1:int hashCode():39:39 -> hashCode
com.android.tools.r8.code.Format21s -> com.android.tools.r8.code.H0:
    short BBBB -> g
    short AA -> f
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():14:14 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):21:23 -> <init>
    4:8:void <init>(int,int):26:30 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):36 -> a
    4:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):60:60 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):55:55 -> b
    1:5:boolean equals(java.lang.Object):46:50 -> equals
    1:1:int hashCode():41:41 -> hashCode
com.android.tools.r8.code.Format21t -> com.android.tools.r8.code.I0:
    short BBBB -> g
    short AA -> f
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():16:16 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):23:25 -> <init>
    4:8:void <init>(int,int):28:32 -> <init>
    com.android.tools.r8.ir.code.If$Type getType() -> A
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):37:38 -> a
    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):38 -> a
    4:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):66:68 -> a
    7:7:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):78:78 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):73:73 -> b
    1:5:boolean equals(java.lang.Object):48:52 -> equals
    1:1:int hashCode():43:43 -> hashCode
    1:1:int[] getTargets():61:61 -> o
    com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint() -> z
com.android.tools.r8.code.Format22b -> com.android.tools.r8.code.J0:
    short BB -> g
    short AA -> f
    boolean $assertionsDisabled -> i
    byte CC -> h
    1:1:void <clinit>():14:14 -> <clinit>
    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream):22:25 -> <init>
    5:11:void <init>(int,int,int):28:34 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:40 -> a
    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):40 -> a
    4:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):64:65 -> a
    6:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):64:64 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):59:59 -> b
    1:5:boolean equals(java.lang.Object):50:54 -> equals
    1:1:int hashCode():45:45 -> hashCode
com.android.tools.r8.code.Format22c -> com.android.tools.r8.code.K0:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.IndexedDexItem CCCC -> h
    byte A -> f
    byte B -> g
    1:1:void <clinit>():15:15 -> <clinit>
    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.IndexedDexItem[]):23:26 -> <init>
    5:10:void <init>(int,int,com.android.tools.r8.graph.IndexedDexItem):29:34 -> <init>
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:40 -> a
    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):66:66 -> a
    4:4:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):72:72 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):59:60 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):59:59 -> b
    1:5:boolean equals(java.lang.Object):50:54 -> equals
    1:1:int hashCode():45:45 -> hashCode
com.android.tools.r8.code.Format22s -> com.android.tools.r8.code.L0:
    short CCCC -> h
    boolean $assertionsDisabled -> i
    byte A -> f
    byte B -> g
    1:1:void <clinit>():14:14 -> <clinit>
    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream):22:25 -> <init>
    5:11:void <init>(int,int,int):28:34 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:40 -> a
    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):40 -> a
    4:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):64:65 -> a
    6:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):64:64 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):59:59 -> b
    1:5:boolean equals(java.lang.Object):50:54 -> equals
    1:1:int hashCode():45:45 -> hashCode
com.android.tools.r8.code.Format22t -> com.android.tools.r8.code.M0:
    short CCCC -> h
    boolean $assertionsDisabled -> i
    byte A -> f
    byte B -> g
    1:1:void <clinit>():16:16 -> <clinit>
    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream):24:27 -> <init>
    5:11:void <init>(int,int,int):30:36 -> <init>
    com.android.tools.r8.ir.code.If$Type getType() -> A
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):41:42 -> a
    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):42 -> a
    4:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):70:72 -> a
    7:7:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):82:82 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):77:77 -> b
    1:5:boolean equals(java.lang.Object):52:56 -> equals
    1:1:int hashCode():47:47 -> hashCode
    1:1:int[] getTargets():65:65 -> o
    com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint() -> z
com.android.tools.r8.code.Format22x -> com.android.tools.r8.code.N0:
    char BBBB -> g
    short AA -> f
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():13:13 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):20:22 -> <init>
    4:8:void <init>(int,int):25:29 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):59:59 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> b
    1:5:boolean equals(java.lang.Object):45:49 -> equals
    1:1:int hashCode():40:40 -> hashCode
com.android.tools.r8.code.Format23x -> com.android.tools.r8.code.O0:
    short BB -> g
    short CC -> h
    short AA -> f
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():13:13 -> <clinit>
    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream):21:24 -> <init>
    5:11:void <init>(int,int,int):27:33 -> <init>
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):38:39 -> a
    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39 -> a
    4:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):63:63 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):58:58 -> b
    1:5:boolean equals(java.lang.Object):49:53 -> equals
    1:1:int hashCode():44:44 -> hashCode
com.android.tools.r8.code.Format30t -> com.android.tools.r8.code.P0:
    int AAAAAAAA -> f
    1:2:void <init>(int,com.android.tools.r8.code.BytecodeStream):18:19 -> <init>
    3:4:void <init>(int):22:23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):28:29 -> a
    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):52:52 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):47:47 -> b
    2:2:java.lang.String com.android.tools.r8.code.Instruction.formatOffset(int):191:191 -> b
    2:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):47 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):47:47 -> b
    1:4:boolean equals(java.lang.Object):39:42 -> equals
    1:1:int hashCode():34:34 -> hashCode
com.android.tools.r8.code.Format31c -> com.android.tools.r8.code.Q0:
    short AA -> f
    com.android.tools.r8.graph.DexString BBBBBBBB -> g
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():17:17 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.DexString[]):24:26 -> <init>
    4:7:void <init>(int,com.android.tools.r8.graph.DexString):29:32 -> <init>
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):37:38 -> a
    3:3:void com.android.tools.r8.code.Instruction.write32BitReference(com.android.tools.r8.graph.IndexedDexItem,java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):115:115 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):38 -> a
    4:4:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):64:64 -> a
    5:5:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> a
    5:5:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):64 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):57:58 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):57:57 -> b
    1:5:boolean equals(java.lang.Object):48:52 -> equals
    1:1:int hashCode():43:43 -> hashCode
com.android.tools.r8.code.Format31i -> com.android.tools.r8.code.R0:
    short AA -> f
    int BBBBBBBB -> g
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():13:13 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):20:22 -> <init>
    4:7:void <init>(int,int):25:28 -> <init>
    1:5:boolean equals(java.lang.Object):44:48 -> equals
    1:1:int hashCode():39:39 -> hashCode
com.android.tools.r8.code.Format31t -> com.android.tools.r8.code.S0:
    short AA -> f
    int BBBBBBBB -> g
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():13:13 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):20:22 -> <init>
    4:7:void <init>(int,int):25:28 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:35 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):68:68 -> b
    1:1:void setPayloadOffset(int):49:49 -> c
    1:5:boolean equals(java.lang.Object):59:63 -> equals
    1:1:int hashCode():54:54 -> hashCode
    1:1:int getPayloadOffset():45:45 -> l
    boolean hasPayload() -> p
com.android.tools.r8.code.Format32x -> com.android.tools.r8.code.T0:
    int AAAA -> f
    int BBBB -> g
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():14:14 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):21:23 -> <init>
    4:8:void <init>(int,int):26:30 -> <init>
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):36 -> a
    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):37:37 -> a
    5:5:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    5:5:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):37 -> a
    6:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):61:61 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):56:56 -> b
    1:5:boolean equals(java.lang.Object):47:51 -> equals
    1:1:int hashCode():42:42 -> hashCode
com.android.tools.r8.code.Format35c -> com.android.tools.r8.code.U0:
    boolean $assertionsDisabled -> m
    byte F -> j
    byte E -> i
    byte G -> k
    com.android.tools.r8.graph.IndexedDexItem BBBB -> l
    byte A -> f
    byte D -> h
    byte C -> g
    1:1:void <clinit>():15:15 -> <clinit>
    1:10:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.IndexedDexItem[]):27:36 -> <init>
    11:24:void <init>(int,com.android.tools.r8.graph.IndexedDexItem,int,int,int,int,int):39:52 -> <init>
    1:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):57:59 -> a
    4:4:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):59 -> a
    5:13:void appendRegisterArguments(java.lang.StringBuilder,java.lang.String):79:87 -> a
    14:19:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):105:110 -> a
    20:20:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):116:116 -> a
    1:9:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):92:100 -> b
    1:6:boolean equals(java.lang.Object):70:75 -> equals
    1:2:int hashCode():64:65 -> hashCode
com.android.tools.r8.code.Format3rc -> com.android.tools.r8.code.V0:
    char CCCC -> g
    short AA -> f
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.IndexedDexItem BBBB -> h
    1:1:void <clinit>():15:15 -> <clinit>
    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.IndexedDexItem[]):23:26 -> <init>
    5:10:void <init>(int,int,com.android.tools.r8.graph.IndexedDexItem):29:34 -> <init>
    1:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:41 -> a
    4:4:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):41 -> a
    5:11:void appendRegisterRange(java.lang.StringBuilder):59:65 -> a
    12:17:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):83:88 -> a
    18:18:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):94:94 -> a
    1:9:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):70:78 -> b
    1:5:boolean equals(java.lang.Object):51:55 -> equals
    1:1:int hashCode():46:46 -> hashCode
com.android.tools.r8.code.Goto -> com.android.tools.r8.code.Y0:
    boolean com.android.tools.r8.code.Format10t.$assertionsDisabled -> g
    byte com.android.tools.r8.code.Format10t.AA -> f
    1:1:void com.android.tools.r8.code.Format10t.<clinit>():12:12 -> <clinit>
    1:3:void com.android.tools.r8.code.Format10t.<init>(int,com.android.tools.r8.code.BytecodeStream):18:20 -> <init>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):15 -> <init>
    4:6:void com.android.tools.r8.code.Format10t.<init>(int):23:25 -> <init>
    4:6:void <init>(int):19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:void com.android.tools.r8.code.Format10t.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    3:3:java.lang.String com.android.tools.r8.code.Format10t.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):53:53 -> a
    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
    1:1:java.lang.String com.android.tools.r8.code.Format10t.toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
    1:4:boolean com.android.tools.r8.code.Format10t.equals(java.lang.Object):40:43 -> equals
    1:4:boolean com.android.tools.r8.code.Format10t.equals(java.lang.Object):0 -> equals
    1:1:int com.android.tools.r8.code.Format10t.hashCode():35:35 -> hashCode
    1:1:int com.android.tools.r8.code.Format10t.hashCode():0 -> hashCode
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:int[] getTargets():39:39 -> o
com.android.tools.r8.code.Goto16 -> com.android.tools.r8.code.W0:
    short com.android.tools.r8.code.Format20t.AAAA -> f
    boolean com.android.tools.r8.code.Format20t.$assertionsDisabled -> g
    1:1:void com.android.tools.r8.code.Format20t.<clinit>():12:12 -> <clinit>
    1:2:void com.android.tools.r8.code.Format20t.<init>(int,com.android.tools.r8.code.BytecodeStream):18:19 -> <init>
    1:2:void <init>(int,com.android.tools.r8.code.BytecodeStream):15 -> <init>
    3:5:void com.android.tools.r8.code.Format20t.<init>(int):22:24 -> <init>
    3:5:void <init>(int):19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void com.android.tools.r8.code.Format20t.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):29:30 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    3:3:void com.android.tools.r8.code.Format20t.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    5:5:java.lang.String com.android.tools.r8.code.Format20t.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):53:53 -> a
    5:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
    1:1:java.lang.String com.android.tools.r8.code.Format20t.toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
    1:4:boolean com.android.tools.r8.code.Format20t.equals(java.lang.Object):40:43 -> equals
    1:4:boolean com.android.tools.r8.code.Format20t.equals(java.lang.Object):0 -> equals
    1:1:int com.android.tools.r8.code.Format20t.hashCode():35:35 -> hashCode
    1:1:int com.android.tools.r8.code.Format20t.hashCode():0 -> hashCode
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:int[] getTargets():39:39 -> o
com.android.tools.r8.code.Goto32 -> com.android.tools.r8.code.X0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:3:void com.android.tools.r8.code.Format30t.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):28:29 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    1:1:java.lang.String com.android.tools.r8.code.Format30t.toString(com.android.tools.r8.naming.ClassNameMapper):47:47 -> b
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
    2:2:java.lang.String com.android.tools.r8.code.Instruction.formatOffset(int):191:191 -> b
    2:2:java.lang.String com.android.tools.r8.code.Format30t.toString(com.android.tools.r8.naming.ClassNameMapper):47 -> b
    2:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
    3:3:java.lang.String com.android.tools.r8.code.Format30t.toString(com.android.tools.r8.naming.ClassNameMapper):47:47 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:int[] getTargets():39:39 -> o
com.android.tools.r8.code.IfEq -> com.android.tools.r8.code.Z0:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
com.android.tools.r8.code.IfEqz -> com.android.tools.r8.code.a1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
com.android.tools.r8.code.IfGe -> com.android.tools.r8.code.b1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
com.android.tools.r8.code.IfGez -> com.android.tools.r8.code.c1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
com.android.tools.r8.code.IfGt -> com.android.tools.r8.code.d1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
com.android.tools.r8.code.IfGtz -> com.android.tools.r8.code.e1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
com.android.tools.r8.code.IfLe -> com.android.tools.r8.code.f1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
com.android.tools.r8.code.IfLez -> com.android.tools.r8.code.g1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
com.android.tools.r8.code.IfLt -> com.android.tools.r8.code.h1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
com.android.tools.r8.code.IfLtz -> com.android.tools.r8.code.i1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
com.android.tools.r8.code.IfNe -> com.android.tools.r8.code.j1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
com.android.tools.r8.code.IfNez -> com.android.tools.r8.code.k1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> A
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> z
com.android.tools.r8.code.Iget -> com.android.tools.r8.code.l1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IgetBoolean -> com.android.tools.r8.code.m1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IgetByte -> com.android.tools.r8.code.n1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():46:46 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IgetChar -> com.android.tools.r8.code.o1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():46:46 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IgetObject -> com.android.tools.r8.code.p1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):47:47 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():42:42 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IgetShort -> com.android.tools.r8.code.q1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):47:47 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():42:42 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IgetWide -> com.android.tools.r8.code.r1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):47:47 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():42:42 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.InstanceOf -> com.android.tools.r8.code.s1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexType):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:com.android.tools.r8.graph.DexType getType():46:46 -> z
com.android.tools.r8.code.Instruction -> com.android.tools.r8.code.t1:
    int[] NO_TARGETS -> c
    int[] EXIT_TARGET -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.code.Instruction[] EMPTY_ARRAY -> b
    int offset -> a
    1:5:void <clinit>():21:25 -> <clinit>
    1:3:void <init>(com.android.tools.r8.code.BytecodeStream):29:31 -> <init>
    4:5:void <init>():34:35 -> <init>
    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder) -> a
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    short combineBytes(int,int) -> a
    void registerUse(com.android.tools.r8.graph.UseRegistry) -> a
    java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper) -> a
    void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping) -> a
    1:1:char read16BitValue(com.android.tools.r8.code.BytecodeStream):52:52 -> a
    2:2:void writeFirst(int,java.nio.ShortBuffer):85:85 -> a
    3:3:void writeFirst(int,int,java.nio.ShortBuffer):89:89 -> a
    4:5:void write32BitValue(long,java.nio.ShortBuffer):97:98 -> a
    6:7:void write16BitReference(com.android.tools.r8.graph.IndexedDexItem,java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):108:109 -> a
    8:8:void write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    8:8:void write16BitReference(com.android.tools.r8.graph.IndexedDexItem,java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):110 -> a
    9:9:java.lang.String formatRelativeOffset(int):199:199 -> a
    10:10:java.lang.String formatOffset(int):191:191 -> a
    10:10:java.lang.String formatRelativeOffset(int):199 -> a
    11:11:java.lang.String formatRelativeOffset(int):199:199 -> a
    12:12:java.lang.String formatDecimalOffset(int):195:195 -> a
    12:12:java.lang.String formatRelativeOffset(int):199 -> a
    13:13:java.lang.String formatRelativeOffset(int):199:199 -> a
    14:22:java.lang.String formatSmaliString(java.lang.String):212:220 -> a
    23:23:java.lang.String toSmaliString(com.android.tools.r8.code.Instruction):260:260 -> a
    24:24:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):272:272 -> a
    com.android.tools.r8.code.ConstClass asConstClass() -> b
    int makeByte(int,int) -> b
    java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper) -> b
    1:2:long read32BitValue(com.android.tools.r8.code.BytecodeStream):63:64 -> b
    3:3:void setOffset(int):123:123 -> b
    4:5:java.lang.String formatString(java.lang.String):203:204 -> b
    6:6:java.lang.String formatOffset(int):191:191 -> b
    6:6:java.lang.String formatString(java.lang.String):204 -> b
    7:11:java.lang.String formatString(java.lang.String):204:208 -> b
    com.android.tools.r8.code.ConstString asConstString() -> c
    1:1:short read8BitValue(com.android.tools.r8.code.BytecodeStream):43:43 -> c
    com.android.tools.r8.code.ConstStringJumbo asConstStringJumbo() -> d
    1:1:short readSigned16BitValue(com.android.tools.r8.code.BytecodeStream):48:48 -> d
    com.android.tools.r8.code.DexItemBasedConstString asDexItemBasedConstString() -> e
    1:2:int readSigned32BitValue(com.android.tools.r8.code.BytecodeStream):56:57 -> e
    boolean canThrow() -> f
    1:1:byte readSigned8BitValue(com.android.tools.r8.code.BytecodeStream):39:39 -> f
    com.android.tools.r8.graph.DexField getField() -> g
    com.android.tools.r8.graph.DexMethod getMethod() -> h
    java.lang.String getName() -> i
    1:1:int getOffset():119:119 -> j
    int getOpcode() -> k
    int getPayloadOffset() -> l
    int getSize() -> m
    java.lang.String getSmaliName() -> n
    1:1:int[] getTargets():224:224 -> o
    boolean hasPayload() -> p
    boolean isCheckCast() -> q
    boolean isConstClass() -> r
    boolean isConstString() -> s
    boolean isConstStringJumbo() -> t
    1:1:java.lang.String toString():277:277 -> toString
    boolean isDexItemBasedConstString() -> u
    boolean isIntSwitch() -> v
    boolean isPayload() -> w
    1:1:boolean isSimpleNop():163:163 -> x
    boolean isSwitchPayload() -> y
com.android.tools.r8.code.InstructionFactory -> com.android.tools.r8.code.u1:
    1:1:void <init>():11:11 -> <init>
    1:4:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):22:25 -> a
    5:6:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):15:16 -> a
    5:6:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    7:7:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):462:462 -> a
    7:7:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    7:7:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    8:8:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):136:136 -> a
    8:8:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    8:8:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    9:9:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):134:134 -> a
    9:9:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    9:9:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    10:10:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):132:132 -> a
    10:10:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    10:10:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    11:11:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):130:130 -> a
    11:11:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    11:11:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    12:12:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):128:128 -> a
    12:12:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    12:12:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    13:13:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):126:126 -> a
    13:13:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    13:13:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    14:14:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):124:124 -> a
    14:14:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    14:14:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    15:15:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):122:122 -> a
    15:15:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    15:15:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    16:16:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):120:120 -> a
    16:16:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    16:16:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    17:17:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):118:118 -> a
    17:17:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    17:17:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    18:18:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):116:116 -> a
    18:18:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    18:18:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    19:19:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):114:114 -> a
    19:19:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    19:19:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    20:20:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):112:112 -> a
    20:20:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    20:20:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    21:21:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):110:110 -> a
    21:21:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    21:21:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    22:22:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):108:108 -> a
    22:22:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    22:22:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    23:23:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):106:106 -> a
    23:23:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    23:23:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    24:24:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):104:104 -> a
    24:24:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    24:24:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    25:25:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):102:102 -> a
    25:25:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    25:25:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    26:26:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):100:100 -> a
    26:26:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    26:26:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    27:27:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):98:98 -> a
    27:27:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    27:27:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    28:28:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):96:96 -> a
    28:28:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    28:28:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    29:29:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):94:94 -> a
    29:29:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    29:29:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    30:30:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):92:92 -> a
    30:30:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    30:30:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    31:31:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):90:90 -> a
    31:31:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    31:31:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    32:32:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):88:88 -> a
    32:32:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    32:32:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    33:33:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):86:86 -> a
    33:33:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    33:33:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    34:34:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):84:84 -> a
    34:34:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    34:34:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    35:35:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):82:82 -> a
    35:35:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    35:35:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    36:36:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):80:80 -> a
    36:36:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    36:36:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    37:37:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):78:78 -> a
    37:37:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    37:37:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    38:38:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):76:76 -> a
    38:38:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    38:38:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    39:39:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):74:74 -> a
    39:39:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    39:39:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    40:40:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):72:72 -> a
    40:40:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    40:40:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    41:41:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):70:70 -> a
    41:41:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    41:41:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    42:42:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):68:68 -> a
    42:42:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    42:42:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    43:43:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):66:66 -> a
    43:43:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    43:43:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    44:44:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):64:64 -> a
    44:44:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    44:44:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    45:45:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):62:62 -> a
    45:45:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    45:45:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    46:46:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):60:60 -> a
    46:46:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    46:46:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    47:47:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):58:58 -> a
    47:47:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    47:47:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    48:48:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):56:56 -> a
    48:48:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    48:48:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    49:49:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):54:54 -> a
    49:49:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    49:49:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    50:50:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):52:52 -> a
    50:50:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    50:50:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    51:51:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):50:50 -> a
    51:51:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    51:51:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    52:52:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):48:48 -> a
    52:52:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    52:52:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    53:53:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):46:46 -> a
    53:53:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    53:53:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    54:54:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):44:44 -> a
    54:54:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    54:54:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    55:55:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):42:42 -> a
    55:55:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    55:55:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    56:56:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):40:40 -> a
    56:56:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    56:56:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    57:57:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):38:38 -> a
    57:57:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    57:57:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    58:58:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):36:36 -> a
    58:58:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    58:58:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    59:59:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):34:34 -> a
    59:59:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    59:59:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    60:60:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):32:32 -> a
    60:60:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    60:60:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    61:61:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):30:30 -> a
    61:61:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    61:61:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    62:62:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):28:28 -> a
    62:62:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    62:62:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    63:63:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):26:26 -> a
    63:63:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    63:63:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    64:64:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):24:24 -> a
    64:64:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    64:64:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    65:65:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):22:22 -> a
    65:65:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    65:65:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    66:66:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):20:20 -> a
    66:66:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    66:66:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    67:67:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> a
    67:67:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    67:67:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    68:68:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):16:16 -> a
    68:68:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    68:68:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    69:285:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):14:230 -> a
    69:285:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    69:285:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    286:286:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):228:228 -> a
    286:286:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    286:286:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    287:287:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):226:226 -> a
    287:287:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    287:287:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    288:288:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):224:224 -> a
    288:288:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    288:288:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    289:289:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):222:222 -> a
    289:289:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    289:289:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    290:290:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):220:220 -> a
    290:290:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    290:290:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    291:291:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):218:218 -> a
    291:291:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    291:291:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    292:292:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):216:216 -> a
    292:292:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    292:292:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    293:293:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):214:214 -> a
    293:293:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    293:293:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    294:294:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):212:212 -> a
    294:294:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    294:294:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    295:295:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):210:210 -> a
    295:295:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    295:295:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    296:296:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):208:208 -> a
    296:296:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    296:296:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    297:297:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):206:206 -> a
    297:297:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    297:297:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    298:298:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):204:204 -> a
    298:298:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    298:298:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    299:299:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):202:202 -> a
    299:299:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    299:299:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    300:300:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):200:200 -> a
    300:300:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    300:300:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    301:301:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):198:198 -> a
    301:301:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    301:301:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    302:302:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):196:196 -> a
    302:302:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    302:302:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    303:303:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):194:194 -> a
    303:303:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    303:303:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    304:304:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):192:192 -> a
    304:304:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    304:304:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    305:305:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):190:190 -> a
    305:305:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    305:305:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    306:306:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):188:188 -> a
    306:306:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    306:306:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    307:307:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):186:186 -> a
    307:307:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    307:307:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    308:308:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):184:184 -> a
    308:308:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    308:308:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    309:309:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):182:182 -> a
    309:309:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    309:309:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    310:310:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):180:180 -> a
    310:310:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    310:310:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    311:311:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):178:178 -> a
    311:311:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    311:311:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    312:312:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):176:176 -> a
    312:312:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    312:312:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    313:313:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):174:174 -> a
    313:313:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    313:313:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    314:314:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):172:172 -> a
    314:314:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    314:314:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    315:315:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):170:170 -> a
    315:315:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    315:315:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    316:316:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):168:168 -> a
    316:316:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    316:316:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    317:317:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):166:166 -> a
    317:317:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    317:317:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    318:318:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):164:164 -> a
    318:318:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    318:318:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    319:319:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):162:162 -> a
    319:319:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    319:319:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    320:320:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):160:160 -> a
    320:320:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    320:320:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    321:321:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):158:158 -> a
    321:321:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    321:321:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    322:322:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):156:156 -> a
    322:322:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    322:322:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    323:323:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):154:154 -> a
    323:323:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    323:323:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    324:324:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):152:152 -> a
    324:324:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    324:324:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    325:325:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):150:150 -> a
    325:325:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    325:325:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    326:326:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):148:148 -> a
    326:326:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    326:326:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    327:327:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):146:146 -> a
    327:327:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    327:327:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    328:328:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):144:144 -> a
    328:328:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    328:328:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    329:329:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):142:142 -> a
    329:329:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    329:329:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    330:330:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):140:140 -> a
    330:330:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    330:330:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    331:433:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):138:240 -> a
    331:433:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    331:433:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    434:434:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):238:238 -> a
    434:434:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    434:434:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    435:435:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):236:236 -> a
    435:435:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    435:435:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    436:436:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):234:234 -> a
    436:436:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    436:436:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    437:653:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):232:448 -> a
    437:653:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    437:653:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    654:654:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):446:446 -> a
    654:654:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    654:654:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    655:655:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):444:444 -> a
    655:655:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    655:655:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    656:656:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):442:442 -> a
    656:656:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    656:656:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    657:657:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):440:440 -> a
    657:657:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    657:657:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    658:658:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):438:438 -> a
    658:658:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    658:658:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    659:659:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):436:436 -> a
    659:659:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    659:659:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    660:660:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):434:434 -> a
    660:660:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    660:660:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    661:661:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):432:432 -> a
    661:661:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    661:661:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    662:662:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):430:430 -> a
    662:662:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    662:662:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    663:663:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):428:428 -> a
    663:663:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    663:663:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    664:664:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):426:426 -> a
    664:664:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    664:664:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    665:665:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):424:424 -> a
    665:665:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    665:665:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    666:666:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):422:422 -> a
    666:666:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    666:666:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    667:667:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):420:420 -> a
    667:667:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    667:667:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    668:668:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):418:418 -> a
    668:668:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    668:668:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    669:669:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):416:416 -> a
    669:669:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    669:669:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    670:670:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):414:414 -> a
    670:670:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    670:670:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    671:671:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):412:412 -> a
    671:671:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    671:671:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    672:672:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):410:410 -> a
    672:672:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    672:672:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    673:673:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):408:408 -> a
    673:673:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    673:673:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    674:674:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):406:406 -> a
    674:674:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    674:674:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    675:675:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):404:404 -> a
    675:675:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    675:675:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    676:676:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):402:402 -> a
    676:676:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    676:676:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    677:677:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):400:400 -> a
    677:677:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    677:677:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    678:678:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):398:398 -> a
    678:678:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    678:678:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    679:679:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):396:396 -> a
    679:679:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    679:679:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    680:680:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):394:394 -> a
    680:680:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    680:680:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    681:681:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):392:392 -> a
    681:681:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    681:681:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    682:682:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):390:390 -> a
    682:682:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    682:682:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    683:683:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):388:388 -> a
    683:683:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    683:683:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    684:684:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):386:386 -> a
    684:684:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    684:684:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    685:685:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):384:384 -> a
    685:685:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    685:685:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    686:686:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):382:382 -> a
    686:686:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    686:686:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    687:687:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):380:380 -> a
    687:687:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    687:687:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    688:688:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):378:378 -> a
    688:688:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    688:688:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    689:689:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):376:376 -> a
    689:689:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    689:689:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    690:690:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):374:374 -> a
    690:690:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    690:690:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    691:691:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):372:372 -> a
    691:691:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    691:691:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    692:692:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):370:370 -> a
    692:692:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    692:692:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    693:693:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):368:368 -> a
    693:693:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    693:693:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    694:694:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):366:366 -> a
    694:694:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    694:694:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    695:695:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):364:364 -> a
    695:695:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    695:695:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    696:696:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):362:362 -> a
    696:696:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    696:696:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    697:697:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):360:360 -> a
    697:697:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    697:697:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    698:698:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):358:358 -> a
    698:698:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    698:698:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    699:699:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):356:356 -> a
    699:699:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    699:699:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    700:700:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):354:354 -> a
    700:700:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    700:700:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    701:701:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):352:352 -> a
    701:701:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    701:701:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    702:702:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):350:350 -> a
    702:702:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    702:702:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    703:703:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):348:348 -> a
    703:703:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    703:703:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    704:704:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):346:346 -> a
    704:704:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    704:704:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    705:705:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):344:344 -> a
    705:705:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    705:705:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    706:706:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):342:342 -> a
    706:706:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    706:706:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    707:707:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):340:340 -> a
    707:707:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    707:707:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    708:708:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):338:338 -> a
    708:708:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    708:708:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    709:709:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):336:336 -> a
    709:709:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    709:709:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    710:710:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):334:334 -> a
    710:710:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    710:710:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    711:711:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):332:332 -> a
    711:711:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    711:711:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    712:712:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):330:330 -> a
    712:712:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    712:712:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    713:713:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):328:328 -> a
    713:713:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    713:713:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    714:714:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):326:326 -> a
    714:714:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    714:714:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    715:715:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):324:324 -> a
    715:715:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    715:715:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    716:716:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):322:322 -> a
    716:716:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    716:716:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    717:717:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):320:320 -> a
    717:717:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    717:717:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    718:718:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):318:318 -> a
    718:718:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    718:718:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    719:719:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):316:316 -> a
    719:719:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    719:719:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    720:720:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):314:314 -> a
    720:720:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    720:720:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    721:721:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):312:312 -> a
    721:721:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    721:721:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    722:722:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):310:310 -> a
    722:722:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    722:722:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    723:723:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):308:308 -> a
    723:723:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    723:723:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    724:724:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):306:306 -> a
    724:724:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    724:724:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    725:725:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):304:304 -> a
    725:725:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    725:725:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    726:726:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):302:302 -> a
    726:726:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    726:726:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    727:727:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):300:300 -> a
    727:727:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    727:727:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    728:728:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):298:298 -> a
    728:728:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    728:728:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    729:729:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):296:296 -> a
    729:729:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    729:729:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    730:730:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):294:294 -> a
    730:730:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    730:730:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    731:731:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):292:292 -> a
    731:731:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    731:731:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    732:732:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):290:290 -> a
    732:732:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    732:732:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    733:733:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):288:288 -> a
    733:733:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    733:733:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    734:734:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):286:286 -> a
    734:734:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    734:734:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    735:735:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):284:284 -> a
    735:735:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    735:735:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    736:736:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):282:282 -> a
    736:736:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    736:736:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    737:737:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):280:280 -> a
    737:737:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    737:737:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    738:738:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):278:278 -> a
    738:738:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    738:738:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    739:739:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):276:276 -> a
    739:739:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    739:739:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    740:740:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):274:274 -> a
    740:740:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    740:740:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    741:741:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):272:272 -> a
    741:741:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    741:741:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    742:742:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):270:270 -> a
    742:742:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    742:742:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    743:743:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):268:268 -> a
    743:743:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    743:743:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    744:744:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):266:266 -> a
    744:744:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    744:744:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    745:745:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):264:264 -> a
    745:745:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    745:745:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    746:746:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):262:262 -> a
    746:746:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    746:746:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    747:747:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):260:260 -> a
    747:747:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    747:747:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    748:748:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):258:258 -> a
    748:748:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    748:748:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    749:749:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):256:256 -> a
    749:749:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    749:749:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    750:750:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):254:254 -> a
    750:750:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    750:750:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    751:751:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):252:252 -> a
    751:751:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    751:751:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    752:752:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):250:250 -> a
    752:752:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    752:752:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    753:753:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):248:248 -> a
    753:753:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    753:753:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    754:754:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):246:246 -> a
    754:754:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    754:754:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    755:755:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):244:244 -> a
    755:755:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    755:755:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    756:974:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):242:460 -> a
    756:974:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    756:974:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    975:975:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):458:458 -> a
    975:975:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    975:975:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    976:976:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):456:456 -> a
    976:976:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    976:976:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    977:977:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):454:454 -> a
    977:977:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    977:977:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    978:978:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):452:452 -> a
    978:978:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    978:978:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    979:979:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):450:450 -> a
    979:979:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> a
    979:979:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> a
    980:982:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):27:29 -> a
com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream -> com.android.tools.r8.code.u1$a:
    boolean cacheContainsValidByte -> f
    boolean $assertionsDisabled -> g
    int offset -> d
    int nextByte -> e
    int startIndex -> b
    java.nio.ShortBuffer source -> c
    int length -> a
    1:1:void <clinit>():32:32 -> <clinit>
    1:1:void <init>(java.nio.ShortBuffer,int,int):42:42 -> <init>
    2:9:void <init>(java.nio.ShortBuffer,int,int):38:45 -> <init>
    1:1:int getOffset():77:77 -> a
    1:1:boolean hasMore():72:72 -> b
    1:7:int nextByte():59:65 -> c
    1:4:int nextShort():50:53 -> d
com.android.tools.r8.code.IntToByte -> com.android.tools.r8.code.v1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IntToChar -> com.android.tools.r8.code.w1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IntToDouble -> com.android.tools.r8.code.x1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IntToFloat -> com.android.tools.r8.code.y1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IntToLong -> com.android.tools.r8.code.z1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IntToShort -> com.android.tools.r8.code.A1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.InvokeCustom -> com.android.tools.r8.code.B1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.IndexedDexItem,int,int,int,int,int):23:23 -> <init>
    1:1:com.android.tools.r8.graph.DexCallSite getCallSite():48:48 -> a
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    3:19:void com.android.tools.r8.ir.conversion.IRBuilder.addInvokeCustomRegisters(com.android.tools.r8.graph.DexCallSite,int,int[]):1432:1448 -> a
    3:19:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53 -> a
    20:20:com.android.tools.r8.graph.DexCallSite getCallSite():48:48 -> a
    20:20:void registerUse(com.android.tools.r8.graph.UseRegistry):43 -> a
    21:21:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.InvokeCustomRange -> com.android.tools.r8.code.C1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexCallSite):22:22 -> <init>
    1:1:com.android.tools.r8.graph.DexCallSite getCallSite():42:42 -> a
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    3:3:com.android.tools.r8.graph.DexCallSite getCallSite():42:42 -> a
    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry):47 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):47:47 -> a
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.InvokeDirect -> com.android.tools.r8.code.D1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):20:20 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.IndexedDexItem,int,int,int,int,int):24:24 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):44:44 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:54 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexMethod getMethod():49:49 -> h
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.InvokeDirectRange -> com.android.tools.r8.code.E1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexMethod):23:23 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):48:48 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexMethod getMethod():43:43 -> h
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.InvokeInterface -> com.android.tools.r8.code.F1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):20:20 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.IndexedDexItem,int,int,int,int,int):24:24 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):44:44 -> a
    2:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:55 -> a
    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:54 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexMethod getMethod():49:49 -> h
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.InvokeInterfaceRange -> com.android.tools.r8.code.G1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexMethod):23:23 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> h
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.InvokePolymorphic -> com.android.tools.r8.code.H1:
    byte com.android.tools.r8.code.Format45cc.F -> j
    boolean com.android.tools.r8.code.Format45cc.$assertionsDisabled -> n
    byte com.android.tools.r8.code.Format45cc.E -> i
    byte com.android.tools.r8.code.Format45cc.G -> k
    com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format45cc.BBBB -> l
    byte com.android.tools.r8.code.Format45cc.A -> f
    byte com.android.tools.r8.code.Format45cc.D -> h
    com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format45cc.HHHH -> m
    byte com.android.tools.r8.code.Format45cc.C -> g
    1:1:void com.android.tools.r8.code.Format45cc.<clinit>():17:17 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):23:23 -> <init>
    2:12:void com.android.tools.r8.code.Format45cc.<init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.DexMethod[],com.android.tools.r8.graph.DexProto[]):29:39 -> <init>
    2:12:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):23 -> <init>
    13:27:void com.android.tools.r8.code.Format45cc.<init>(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,int,int,int,int,int):43:57 -> <init>
    13:27:void <init>(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,int,int,int,int,int):28 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):33:33 -> a
    2:2:com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format45cc.getMethod():0:0 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):34 -> a
    3:3:com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format45cc.getProto():156:156 -> a
    3:3:com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format45cc.getProto():0 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):34 -> a
    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):34:34 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):33:33 -> a
    6:7:void com.android.tools.r8.code.Format45cc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):92:93 -> a
    6:7:void com.android.tools.r8.code.Format45cc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0 -> a
    8:10:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):98:100 -> a
    8:10:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
    11:11:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    11:11:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):100 -> a
    11:11:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
    12:12:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):101:101 -> a
    12:12:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
    13:20:java.lang.String com.android.tools.r8.code.Format45cc.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):106:113 -> a
    13:20:java.lang.String com.android.tools.r8.code.Format45cc.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):0 -> a
    21:23:java.lang.String com.android.tools.r8.code.Format45cc.itemToString(com.android.tools.r8.graph.IndexedDexItem,com.android.tools.r8.naming.ClassNameMapper):130:132 -> a
    24:32:void com.android.tools.r8.code.Format45cc.appendRegisterArguments(java.lang.StringBuilder,java.lang.String):138:146 -> a
    1:7:java.lang.String com.android.tools.r8.code.Format45cc.toString(com.android.tools.r8.naming.ClassNameMapper):118:124 -> b
    1:7:java.lang.String com.android.tools.r8.code.Format45cc.toString(com.android.tools.r8.naming.ClassNameMapper):0 -> b
    1:12:boolean com.android.tools.r8.code.Format45cc.equals(java.lang.Object):75:86 -> equals
    1:12:boolean com.android.tools.r8.code.Format45cc.equals(java.lang.Object):0 -> equals
    boolean canThrow() -> f
    com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format45cc.getMethod() -> h
    1:9:int com.android.tools.r8.code.Format45cc.hashCode():62:70 -> hashCode
    1:9:int com.android.tools.r8.code.Format45cc.hashCode():0 -> hashCode
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format45cc.getMethod():151:151 -> z
com.android.tools.r8.code.InvokePolymorphicRange -> com.android.tools.r8.code.I1:
    char com.android.tools.r8.code.Format4rcc.CCCC -> g
    com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format4rcc.HHHH -> i
    short com.android.tools.r8.code.Format4rcc.AA -> f
    boolean com.android.tools.r8.code.Format4rcc.$assertionsDisabled -> j
    com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format4rcc.BBBB -> h
    1:1:void com.android.tools.r8.code.Format4rcc.<clinit>():17:17 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):21:21 -> <init>
    2:6:void com.android.tools.r8.code.Format4rcc.<init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.DexMethod[],com.android.tools.r8.graph.DexProto[]):26:30 -> <init>
    2:6:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):21 -> <init>
    7:13:void com.android.tools.r8.code.Format4rcc.<init>(int,int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto):33:39 -> <init>
    7:13:void <init>(int,int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto):26 -> <init>
    1:3:void com.android.tools.r8.code.Format4rcc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):44:46 -> a
    1:3:void com.android.tools.r8.code.Format4rcc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
    4:4:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    4:4:void com.android.tools.r8.code.Format4rcc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):46 -> a
    4:4:void com.android.tools.r8.code.Format4rcc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
    5:5:void com.android.tools.r8.code.Format4rcc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):47:47 -> a
    5:5:void com.android.tools.r8.code.Format4rcc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
    6:6:com.android.tools.r8.graph.DexMethod getMethod():46:46 -> a
    6:6:void registerUse(com.android.tools.r8.graph.UseRegistry):51 -> a
    7:7:void registerUse(com.android.tools.r8.graph.UseRegistry):51:51 -> a
    8:8:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):56:56 -> a
    9:9:com.android.tools.r8.graph.DexMethod getMethod():46:46 -> a
    9:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):56 -> a
    10:10:com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format4rcc.getProto():131:131 -> a
    10:10:com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format4rcc.getProto():0 -> a
    10:10:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):56 -> a
    11:11:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):56:56 -> a
    12:19:java.lang.String com.android.tools.r8.code.Format4rcc.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):85:92 -> a
    12:19:java.lang.String com.android.tools.r8.code.Format4rcc.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):0 -> a
    20:21:void com.android.tools.r8.code.Format4rcc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):98:99 -> a
    20:21:void com.android.tools.r8.code.Format4rcc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0 -> a
    22:28:void com.android.tools.r8.code.Format4rcc.appendRegisterRange(java.lang.StringBuilder):115:121 -> a
    1:14:java.lang.String com.android.tools.r8.code.Format4rcc.toString(com.android.tools.r8.naming.ClassNameMapper):67:80 -> b
    1:14:java.lang.String com.android.tools.r8.code.Format4rcc.toString(com.android.tools.r8.naming.ClassNameMapper):0 -> b
    1:5:boolean com.android.tools.r8.code.Format4rcc.equals(java.lang.Object):58:62 -> equals
    1:5:boolean com.android.tools.r8.code.Format4rcc.equals(java.lang.Object):0 -> equals
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexMethod getMethod():46:46 -> h
    1:2:int com.android.tools.r8.code.Format4rcc.hashCode():52:53 -> hashCode
    1:2:int com.android.tools.r8.code.Format4rcc.hashCode():0 -> hashCode
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.InvokeStatic -> com.android.tools.r8.code.J1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexMethod,int,int,int,int,int):23:23 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> h
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.InvokeStaticRange -> com.android.tools.r8.code.K1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexMethod):23:23 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> h
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.InvokeSuper -> com.android.tools.r8.code.L1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):20:20 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.IndexedDexItem,int,int,int,int,int):24:24 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):44:44 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:54 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexMethod getMethod():49:49 -> h
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.InvokeSuperRange -> com.android.tools.r8.code.M1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexMethod):23:23 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> h
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.InvokeVirtual -> com.android.tools.r8.code.N1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexMethod,int,int,int,int,int):23:23 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> h
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.InvokeVirtualRange -> com.android.tools.r8.code.O1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexMethod):23:23 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> h
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.Iput -> com.android.tools.r8.code.P1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IputBoolean -> com.android.tools.r8.code.Q1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IputByte -> com.android.tools.r8.code.R1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IputChar -> com.android.tools.r8.code.S1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IputObject -> com.android.tools.r8.code.T1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IputShort -> com.android.tools.r8.code.U1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.IputWide -> com.android.tools.r8.code.V1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.LongToDouble -> com.android.tools.r8.code.W1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.LongToFloat -> com.android.tools.r8.code.X1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.LongToInt -> com.android.tools.r8.code.Y1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MonitorEnter -> com.android.tools.r8.code.Z1:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MonitorExit -> com.android.tools.r8.code.a2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.Move -> com.android.tools.r8.code.c2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.Move16 -> com.android.tools.r8.code.b2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MoveException -> com.android.tools.r8.code.d2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MoveFrom16 -> com.android.tools.r8.code.e2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:3:void com.android.tools.r8.code.Format22x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):34:35 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    4:4:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    4:4:void com.android.tools.r8.code.Format22x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35 -> a
    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MoveObject -> com.android.tools.r8.code.g2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    4:4:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MoveObject16 -> com.android.tools.r8.code.f2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    4:4:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MoveObjectFrom16 -> com.android.tools.r8.code.h2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:3:void com.android.tools.r8.code.Format22x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):34:35 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    4:4:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    4:4:void com.android.tools.r8.code.Format22x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35 -> a
    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    6:6:void com.android.tools.r8.ir.conversion.IRBuilder.addMove(com.android.tools.r8.ir.code.ValueType,int,int):1202:1202 -> a
    6:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MoveResult -> com.android.tools.r8.code.i2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):14:14 -> <init>
    2:2:void <init>(int):18:18 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):7:7 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):7 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):38:38 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):7:7 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MoveResultObject -> com.android.tools.r8.code.j2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MoveResultWide -> com.android.tools.r8.code.k2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MoveWide -> com.android.tools.r8.code.m2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MoveWide16 -> com.android.tools.r8.code.l2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MoveWideFrom16 -> com.android.tools.r8.code.n2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:3:void com.android.tools.r8.code.Format22x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):34:35 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    4:4:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    4:4:void com.android.tools.r8.code.Format22x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35 -> a
    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MulDouble -> com.android.tools.r8.code.p2:
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:7:void <init>(int,int,int):20:25 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MulDouble2Addr -> com.android.tools.r8.code.o2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MulFloat -> com.android.tools.r8.code.r2:
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:7:void <init>(int,int,int):20:25 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MulFloat2Addr -> com.android.tools.r8.code.q2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MulInt -> com.android.tools.r8.code.t2:
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():8:8 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:7:void <init>(int,int,int):19:24 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MulInt2Addr -> com.android.tools.r8.code.s2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MulIntLit16 -> com.android.tools.r8.code.u2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MulIntLit8 -> com.android.tools.r8.code.v2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MulLong -> com.android.tools.r8.code.x2:
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:7:void <init>(int,int,int):20:25 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.MulLong2Addr -> com.android.tools.r8.code.w2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.NegDouble -> com.android.tools.r8.code.y2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.NegFloat -> com.android.tools.r8.code.z2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.NegInt -> com.android.tools.r8.code.A2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.NegLong -> com.android.tools.r8.code.B2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.NewArray -> com.android.tools.r8.code.C2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexType):22:22 -> <init>
    1:1:com.android.tools.r8.graph.DexType getType():46:46 -> a
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42 -> a
    2:2:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
    4:4:com.android.tools.r8.graph.DexType getType():46:46 -> a
    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.NewInstance -> com.android.tools.r8.code.D2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexType):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:com.android.tools.r8.graph.DexType getType():46:46 -> z
com.android.tools.r8.code.Nop -> com.android.tools.r8.code.E2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>():18:18 -> <init>
    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder) -> a
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:void com.android.tools.r8.code.Format10x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):25:25 -> a
    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    2:2:com.android.tools.r8.code.Nop create(int,com.android.tools.r8.code.BytecodeStream):30:30 -> a
    3:3:com.android.tools.r8.code.Nop create(int,com.android.tools.r8.code.BytecodeStream):28:28 -> a
    4:4:com.android.tools.r8.code.Nop create(int,com.android.tools.r8.code.BytecodeStream):26:26 -> a
    5:5:com.android.tools.r8.code.Nop create(int,com.android.tools.r8.code.BytecodeStream):24:24 -> a
    6:6:java.lang.String com.android.tools.r8.code.Format10x.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):45:45 -> a
    6:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
    1:1:java.lang.String com.android.tools.r8.code.Format10x.toString(com.android.tools.r8.naming.ClassNameMapper):40:40 -> b
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
    1:1:boolean equals(java.lang.Object):8:8 -> equals
    1:1:int com.android.tools.r8.code.Format10x.hashCode():30:30 -> hashCode
    1:1:int hashCode():36 -> hashCode
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.NotInt -> com.android.tools.r8.code.F2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.NotLong -> com.android.tools.r8.code.G2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.OrInt -> com.android.tools.r8.code.I2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.OrInt2Addr -> com.android.tools.r8.code.H2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.OrIntLit16 -> com.android.tools.r8.code.J2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.OrIntLit8 -> com.android.tools.r8.code.K2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.OrLong -> com.android.tools.r8.code.M2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.OrLong2Addr -> com.android.tools.r8.code.L2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.PackedSwitch -> com.android.tools.r8.code.N2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
    2:2:void <init>(int):21:21 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):46:46 -> a
    2:2:int com.android.tools.r8.code.Format31t.getPayloadOffset():45:45 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):47 -> a
    3:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):48:49 -> a
    5:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    boolean isIntSwitch() -> v
com.android.tools.r8.code.PackedSwitchPayload -> com.android.tools.r8.code.O2:
    int[] targets -> h
    boolean $assertionsDisabled -> i
    int size -> f
    int first_key -> g
    1:1:void <clinit>():12:12 -> <clinit>
    1:6:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:24 -> <init>
    7:11:void <init>(int,int[]):28:32 -> <init>
    1:1:int numberOfKeys():75:75 -> A
    1:1:int[] switchTargetOffsets():80:80 -> B
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):42:43 -> a
    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):43 -> a
    4:6:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):44:46 -> a
    7:16:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):95:104 -> a
    17:17:java.lang.String com.android.tools.r8.code.Instruction.formatOffset(int):191:191 -> a
    17:17:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):104 -> a
    18:18:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):106:106 -> a
    19:19:java.lang.String com.android.tools.r8.code.Instruction.formatDecimalOffset(int):195:195 -> a
    19:19:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):106 -> a
    20:22:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):108:110 -> a
    23:23:java.lang.String com.android.tools.r8.code.Format10x.toString(com.android.tools.r8.naming.ClassNameMapper):40:40 -> a
    23:23:java.lang.String com.android.tools.r8.code.Nop.toString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
    23:23:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):110 -> a
    24:24:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):110:110 -> a
    25:39:java.lang.String toSmaliString(com.android.tools.r8.code.Instruction):115:129 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):90:90 -> b
    1:5:boolean equals(java.lang.Object):52:56 -> equals
    1:4:int hashCode():61:64 -> hashCode
    1:1:int getSize():70:70 -> m
    boolean isPayload() -> w
    1:1:int[] keys():85:85 -> z
com.android.tools.r8.code.RemDouble -> com.android.tools.r8.code.Q2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.RemDouble2Addr -> com.android.tools.r8.code.P2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.RemFloat -> com.android.tools.r8.code.S2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.RemFloat2Addr -> com.android.tools.r8.code.R2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.RemInt -> com.android.tools.r8.code.U2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.RemInt2Addr -> com.android.tools.r8.code.T2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.RemIntLit16 -> com.android.tools.r8.code.V2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.RemIntLit8 -> com.android.tools.r8.code.W2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.RemLong -> com.android.tools.r8.code.Y2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.RemLong2Addr -> com.android.tools.r8.code.X2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.Return -> com.android.tools.r8.code.Z2:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:int[] getTargets():39:39 -> o
com.android.tools.r8.code.ReturnObject -> com.android.tools.r8.code.a3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:int[] getTargets():39:39 -> o
com.android.tools.r8.code.ReturnVoid -> com.android.tools.r8.code.b3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>():18:18 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:void com.android.tools.r8.code.Format10x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):25:25 -> a
    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):42:42 -> a
    3:3:java.lang.String com.android.tools.r8.code.Format10x.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):45:45 -> a
    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
    1:1:java.lang.String com.android.tools.r8.code.Format10x.toString(com.android.tools.r8.naming.ClassNameMapper):40:40 -> b
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
    1:1:boolean equals(java.lang.Object):8:8 -> equals
    1:1:int com.android.tools.r8.code.Format10x.hashCode():30:30 -> hashCode
    1:1:int hashCode():8 -> hashCode
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:int[] getTargets():37:37 -> o
com.android.tools.r8.code.ReturnWide -> com.android.tools.r8.code.c3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    1:1:int[] getTargets():39:39 -> o
com.android.tools.r8.code.RsubInt -> com.android.tools.r8.code.d3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.RsubIntLit8 -> com.android.tools.r8.code.e3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.Sget -> com.android.tools.r8.code.f3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SgetBoolean -> com.android.tools.r8.code.g3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SgetByte -> com.android.tools.r8.code.h3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SgetChar -> com.android.tools.r8.code.i3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SgetObject -> com.android.tools.r8.code.j3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SgetShort -> com.android.tools.r8.code.k3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SgetWide -> com.android.tools.r8.code.l3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ShlInt -> com.android.tools.r8.code.n3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ShlInt2Addr -> com.android.tools.r8.code.m3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ShlIntLit8 -> com.android.tools.r8.code.o3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ShlLong -> com.android.tools.r8.code.q3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ShlLong2Addr -> com.android.tools.r8.code.p3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ShrInt -> com.android.tools.r8.code.s3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ShrInt2Addr -> com.android.tools.r8.code.r3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ShrIntLit8 -> com.android.tools.r8.code.t3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ShrLong -> com.android.tools.r8.code.v3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.ShrLong2Addr -> com.android.tools.r8.code.u3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SparseSwitch -> com.android.tools.r8.code.w3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
    2:2:int com.android.tools.r8.code.Format31t.getPayloadOffset():45:45 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):46 -> a
    3:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):47:48 -> a
    5:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):53:53 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
    boolean isIntSwitch() -> v
com.android.tools.r8.code.SparseSwitchPayload -> com.android.tools.r8.code.x3:
    int[] keys -> g
    int[] targets -> h
    boolean $assertionsDisabled -> i
    int size -> f
    1:1:void <clinit>():12:12 -> <clinit>
    1:10:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:28 -> <init>
    11:15:void <init>(int[],int[]):32:36 -> <init>
    1:1:int numberOfKeys():82:82 -> A
    1:1:int[] switchTargetOffsets():92:92 -> B
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):46:47 -> a
    3:3:void com.android.tools.r8.code.Instruction.write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):47 -> a
    4:8:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):48:52 -> a
    9:24:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):102:117 -> a
    25:25:java.lang.String com.android.tools.r8.code.Format10x.toString(com.android.tools.r8.naming.ClassNameMapper):40:40 -> a
    25:25:java.lang.String com.android.tools.r8.code.Nop.toString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
    25:25:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):117 -> a
    26:26:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):117:117 -> a
    27:42:java.lang.String toSmaliString(com.android.tools.r8.code.Instruction):122:137 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):97:97 -> b
    1:6:boolean equals(java.lang.Object):58:63 -> equals
    1:4:int hashCode():68:71 -> hashCode
    1:1:int getSize():77:77 -> m
    boolean isPayload() -> w
    1:1:int[] keys():87:87 -> z
com.android.tools.r8.code.Sput -> com.android.tools.r8.code.y3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SputBoolean -> com.android.tools.r8.code.z3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SputByte -> com.android.tools.r8.code.A3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SputChar -> com.android.tools.r8.code.B3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SputObject -> com.android.tools.r8.code.C3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SputShort -> com.android.tools.r8.code.D3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SputWide -> com.android.tools.r8.code.E3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> f
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> g
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SubDouble -> com.android.tools.r8.code.G3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SubDouble2Addr -> com.android.tools.r8.code.F3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SubFloat -> com.android.tools.r8.code.I3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SubFloat2Addr -> com.android.tools.r8.code.H3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SubInt -> com.android.tools.r8.code.K3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SubInt2Addr -> com.android.tools.r8.code.J3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SubLong -> com.android.tools.r8.code.M3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SubLong2Addr -> com.android.tools.r8.code.L3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.SwitchPayload -> com.android.tools.r8.code.N3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):11:11 -> <init>
    2:2:void <init>():14:14 -> <init>
    int numberOfKeys() -> A
    int[] switchTargetOffsets() -> B
    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder) -> a
    boolean isSwitchPayload() -> y
    int[] keys() -> z
com.android.tools.r8.code.Throw -> com.android.tools.r8.code.O3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    boolean canThrow() -> f
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.UshrInt -> com.android.tools.r8.code.Q3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.UshrInt2Addr -> com.android.tools.r8.code.P3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.UshrIntLit8 -> com.android.tools.r8.code.R3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.UshrLong -> com.android.tools.r8.code.T3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.UshrLong2Addr -> com.android.tools.r8.code.S3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.XorInt -> com.android.tools.r8.code.V3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.XorInt2Addr -> com.android.tools.r8.code.U3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.XorIntLit16 -> com.android.tools.r8.code.W3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.XorIntLit8 -> com.android.tools.r8.code.X3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.XorLong -> com.android.tools.r8.code.Z3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.code.XorLong2Addr -> com.android.tools.r8.code.Y3:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> i
    int getOpcode() -> k
    java.lang.String getSmaliName() -> n
com.android.tools.r8.com.google.common.base.Absent -> com.android.tools.r8.r.a.a.a.a:
    com.android.tools.r8.com.google.common.base.Absent INSTANCE -> a
    1:1:void <clinit>():29:29 -> <clinit>
    1:1:void <init>():36:36 -> <init>
    1:1:java.lang.Object or(java.lang.Object):50:50 -> a
com.android.tools.r8.com.google.common.base.Ascii -> com.android.tools.r8.r.a.a.a.b:
    int com.android.tools.r8.com.google.common.primitives.Ints.saturatedCast(long) -> a
    1:19:com.android.tools.r8.com.google.gson.JsonElement com.android.tools.r8.com.google.gson.internal.Streams.parse(com.android.tools.r8.com.google.gson.stream.JsonReader):46:64 -> a
    20:20:com.android.tools.r8.com.google.gson.JsonElement com.android.tools.r8.com.google.gson.internal.Streams.parse(com.android.tools.r8.com.google.gson.stream.JsonReader):62:62 -> a
    21:21:com.android.tools.r8.com.google.gson.JsonElement com.android.tools.r8.com.google.gson.internal.Streams.parse(com.android.tools.r8.com.google.gson.stream.JsonReader):60:60 -> a
    22:25:com.android.tools.r8.com.google.gson.JsonElement com.android.tools.r8.com.google.gson.internal.Streams.parse(com.android.tools.r8.com.google.gson.stream.JsonReader):55:58 -> a
    26:26:boolean com.android.tools.r8.com.google.common.base.Objects.equal(java.lang.Object,java.lang.Object):52:52 -> a
    27:46:java.lang.String com.android.tools.r8.com.google.common.base.Strings.repeat(java.lang.String,int):146:165 -> a
    47:47:java.lang.String com.android.tools.r8.com.google.common.base.Strings.repeat(java.lang.String,int):155:155 -> a
    48:58:java.lang.String toLowerCase(java.lang.String):403:413 -> a
com.android.tools.r8.com.google.common.base.CharMatcher -> com.android.tools.r8.r.a.a.a.o:
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher whitespace():134:134 -> <clinit>
    1:1:void <clinit>():272 -> <clinit>
    2:2:com.android.tools.r8.com.google.common.base.CharMatcher ascii():154:154 -> <clinit>
    2:2:void <clinit>():294 -> <clinit>
    3:3:com.android.tools.r8.com.google.common.base.CharMatcher digit():165:165 -> <clinit>
    3:3:void <clinit>():306 -> <clinit>
    4:4:com.android.tools.r8.com.google.common.base.CharMatcher javaIsoControl():227:227 -> <clinit>
    4:4:void <clinit>():369 -> <clinit>
    5:5:com.android.tools.r8.com.google.common.base.CharMatcher invisible():238:238 -> <clinit>
    5:5:void <clinit>():380 -> <clinit>
    6:6:com.android.tools.r8.com.google.common.base.CharMatcher singleWidth():252:252 -> <clinit>
    6:6:void <clinit>():394 -> <clinit>
    7:7:com.android.tools.r8.com.google.common.base.CharMatcher any():108:108 -> <clinit>
    7:7:void <clinit>():403 -> <clinit>
    8:8:com.android.tools.r8.com.google.common.base.CharMatcher none():117:117 -> <clinit>
    8:8:void <clinit>():412 -> <clinit>
    1:1:void <init>():484:484 -> <init>
    boolean matches(char) -> a
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher ascii():154:154 -> a
    1:1:boolean apply(java.lang.Object):53:53 -> apply
    2:2:boolean apply(java.lang.Character):1018:1018 -> apply
    2:2:boolean apply(java.lang.Object):53 -> apply
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():497:497 -> b
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher none():117:117 -> c
    1:1:java.util.function.Predicate negate():53:53 -> negate
com.android.tools.r8.com.google.common.base.CharMatcher$Any -> com.android.tools.r8.r.a.a.a.c:
    com.android.tools.r8.com.google.common.base.CharMatcher$Any INSTANCE -> b
    1:1:void <clinit>():1119:1119 -> <clinit>
    1:1:void <init>():1122:1122 -> <init>
    boolean matches(char) -> a
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher.none():117:117 -> b
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1209 -> b
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher.none():117:117 -> negate
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1209 -> negate
    1:1:java.util.function.Predicate negate():1117 -> negate
com.android.tools.r8.com.google.common.base.CharMatcher$Ascii -> com.android.tools.r8.r.a.a.a.d:
    com.android.tools.r8.com.google.common.base.CharMatcher$Ascii INSTANCE -> b
    1:1:void <clinit>():1385:1385 -> <clinit>
    1:1:void <init>():1388:1388 -> <init>
    boolean matches(char) -> a
com.android.tools.r8.com.google.common.base.CharMatcher$Digit -> com.android.tools.r8.r.a.a.a.e:
    com.android.tools.r8.com.google.common.base.CharMatcher$Digit INSTANCE -> d
    1:1:void <clinit>():1455:1455 -> <clinit>
    1:1:void <init>():1458:1458 -> <init>
    1:3:char[] nines():1448:1450 -> d
    1:1:char[] zeroes():1444:1444 -> e
com.android.tools.r8.com.google.common.base.CharMatcher$Invisible -> com.android.tools.r8.r.a.a.a.f:
    com.android.tools.r8.com.google.common.base.CharMatcher$Invisible INSTANCE -> d
    1:1:void <clinit>():1567:1567 -> <clinit>
    1:1:void <init>():1570:1570 -> <init>
com.android.tools.r8.com.google.common.base.CharMatcher$JavaIsoControl -> com.android.tools.r8.r.a.a.a.g:
    com.android.tools.r8.com.google.common.base.CharMatcher$JavaIsoControl INSTANCE -> b
    1:1:void <clinit>():1545:1545 -> <clinit>
    1:1:void <init>():1548:1548 -> <init>
    boolean matches(char) -> a
com.android.tools.r8.com.google.common.base.CharMatcher$NamedFastMatcher -> com.android.tools.r8.r.a.a.a.h:
    java.lang.String description -> a
    1:1:void com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.<init>():1047:1047 -> <init>
    1:1:void <init>(java.lang.String):1065 -> <init>
    2:2:void <init>(java.lang.String):1066:1066 -> <init>
    1:1:boolean com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.apply(java.lang.Object):1047:1047 -> apply
    1:1:boolean com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.apply(java.lang.Object):0 -> apply
    2:2:boolean com.android.tools.r8.com.google.common.base.CharMatcher.apply(java.lang.Character):1018:1018 -> apply
    2:2:boolean com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.apply(java.lang.Object):1047 -> apply
    2:2:boolean com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.apply(java.lang.Object):0 -> apply
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.negate():1056:1056 -> b
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.negate():0 -> b
    1:1:java.util.function.Predicate com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.negate():1047:1047 -> negate
    1:1:java.util.function.Predicate com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.negate():0 -> negate
    1:1:java.lang.String toString():1071:1071 -> toString
com.android.tools.r8.com.google.common.base.CharMatcher$Negated -> com.android.tools.r8.r.a.a.a.i:
    com.android.tools.r8.com.google.common.base.CharMatcher original -> a
    1:2:void <init>(com.android.tools.r8.com.google.common.base.CharMatcher):1594:1595 -> <init>
    1:1:boolean matches(char):1600:1600 -> a
    1:1:boolean apply(java.lang.Object):1590:1590 -> apply
    2:2:boolean com.android.tools.r8.com.google.common.base.CharMatcher.apply(java.lang.Character):1018:1018 -> apply
    2:2:boolean apply(java.lang.Object):1590 -> apply
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1629:1629 -> b
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1629:1629 -> negate
    1:1:java.util.function.Predicate negate():1590 -> negate
    1:1:java.lang.String toString():1634:1634 -> toString
com.android.tools.r8.com.google.common.base.CharMatcher$NegatedFastMatcher -> com.android.tools.r8.r.a.a.a.j:
    1:1:void <init>(com.android.tools.r8.com.google.common.base.CharMatcher):1079:1079 -> <init>
com.android.tools.r8.com.google.common.base.CharMatcher$None -> com.android.tools.r8.r.a.a.a.k:
    com.android.tools.r8.com.google.common.base.CharMatcher$None INSTANCE -> b
    1:1:void <clinit>():1216:1216 -> <clinit>
    1:1:void <init>():1219:1219 -> <init>
    boolean matches(char) -> a
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher.any():108:108 -> b
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1312 -> b
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher.any():108:108 -> negate
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1312 -> negate
    1:1:java.util.function.Predicate negate():1214 -> negate
com.android.tools.r8.com.google.common.base.CharMatcher$RangesMatcher -> com.android.tools.r8.r.a.a.a.l:
    char[] rangeStarts -> b
    char[] rangeEnds -> c
    java.lang.String description -> a
    1:9:void <init>(java.lang.String,char[],char[]):1404:1412 -> <init>
    1:6:boolean matches(char):1419:1424 -> a
    1:1:boolean apply(java.lang.Object):1398:1398 -> apply
    2:2:boolean com.android.tools.r8.com.google.common.base.CharMatcher.apply(java.lang.Character):1018:1018 -> apply
    2:2:boolean apply(java.lang.Object):1398 -> apply
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher.negate():497:497 -> negate
    1:1:java.util.function.Predicate negate():1398 -> negate
    1:1:java.lang.String toString():1430:1430 -> toString
com.android.tools.r8.com.google.common.base.CharMatcher$SingleWidth -> com.android.tools.r8.r.a.a.a.m:
    com.android.tools.r8.com.google.common.base.CharMatcher$SingleWidth INSTANCE -> d
    1:1:void <clinit>():1577:1577 -> <clinit>
    1:2:void <init>():1582:1583 -> <init>
    3:3:void <init>():1580:1580 -> <init>
com.android.tools.r8.com.google.common.base.CharMatcher$Whitespace -> com.android.tools.r8.r.a.a.a.n:
    com.android.tools.r8.com.google.common.base.CharMatcher$Whitespace INSTANCE -> c
    int SHIFT -> b
    1:3:void <clinit>():1326:1328 -> <clinit>
    1:1:void <init>():1331:1331 -> <init>
    1:1:boolean matches(char):1336:1336 -> a
com.android.tools.r8.com.google.common.base.Charsets -> com.android.tools.r8.r.a.a.a.p:
    java.nio.charset.Charset UTF_8 -> a
    1:50:void <clinit>():45:94 -> <clinit>
com.android.tools.r8.com.google.common.base.CommonPattern -> com.android.tools.r8.r.a.a.a.q:
    1:1:void <init>():25:25 -> <init>
    com.android.tools.r8.com.google.common.base.CommonMatcher matcher(java.lang.CharSequence) -> a
com.android.tools.r8.com.google.common.base.Equivalence -> com.android.tools.r8.r.a.a.a.v:
    1:1:void <init>():41:41 -> <init>
    1:1:com.android.tools.r8.com.google.common.base.Equivalence equals():323:323 -> a
    1:1:com.android.tools.r8.com.google.common.base.Equivalence identity():336:336 -> b
    1:1:boolean equivalent(java.lang.Object,java.lang.Object):67:67 -> equivalent
    1:1:com.android.tools.r8.com.google.common.base.Predicate equivalentTo(java.lang.Object):269:269 -> equivalentTo
    1:1:int hash(java.lang.Object):113:113 -> hash
    1:1:com.android.tools.r8.com.google.common.base.Equivalence onResultOf(com.android.tools.r8.com.google.common.base.Function):151:151 -> onResultOf
    1:1:com.android.tools.r8.com.google.common.base.Equivalence pairwise():259:259 -> pairwise
    1:1:boolean test(java.lang.Object,java.lang.Object):78:78 -> test
    1:1:com.android.tools.r8.com.google.common.base.Equivalence$Wrapper wrap(java.lang.Object):162:162 -> wrap
com.android.tools.r8.com.google.common.base.Equivalence$1 -> com.android.tools.r8.r.a.a.a.r:
com.android.tools.r8.com.google.common.base.Equivalence$Equals -> com.android.tools.r8.r.a.a.a.s:
    com.android.tools.r8.com.google.common.base.Equivalence$Equals INSTANCE -> a
    1:1:void <clinit>():341:341 -> <clinit>
    1:1:void <init>():339:339 -> <init>
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):345:345 -> doEquivalent
    1:1:int doHash(java.lang.Object):350:350 -> doHash
com.android.tools.r8.com.google.common.base.Equivalence$EquivalentToPredicate -> com.android.tools.r8.r.a.a.a.t:
    com.android.tools.r8.com.google.common.base.Equivalence equivalence -> a
    java.lang.Object target -> b
    1:3:void <init>(com.android.tools.r8.com.google.common.base.Equivalence,java.lang.Object):277:279 -> <init>
    1:1:boolean apply(java.lang.Object):284:284 -> apply
    1:3:boolean equals(java.lang.Object):292:294 -> equals
    1:1:int hashCode():301:301 -> hashCode
    2:2:int com.android.tools.r8.com.google.common.base.Objects.hashCode(java.lang.Object[]):76:76 -> hashCode
    2:2:int hashCode():301 -> hashCode
    1:1:java.lang.String toString():306:306 -> toString
com.android.tools.r8.com.google.common.base.Equivalence$Identity -> com.android.tools.r8.r.a.a.a.u:
    com.android.tools.r8.com.google.common.base.Equivalence$Identity INSTANCE -> a
    1:1:void <clinit>():362:362 -> <clinit>
    1:1:void <init>():360:360 -> <init>
    1:1:int doHash(java.lang.Object):371:371 -> doHash
com.android.tools.r8.com.google.common.base.Equivalence$Wrapper -> com.android.tools.r8.r.a.a.a.v$a:
    com.android.tools.r8.com.google.common.base.Equivalence equivalence -> a
    java.lang.Object reference -> b
    1:1:void <init>(com.android.tools.r8.com.google.common.base.Equivalence,java.lang.Object,com.android.tools.r8.com.google.common.base.Equivalence$1):183:183 -> <init>
    2:4:void <init>(com.android.tools.r8.com.google.common.base.Equivalence,java.lang.Object):187:189 -> <init>
    1:1:java.lang.Object get():195:195 -> a
    1:11:boolean equals(java.lang.Object):208:218 -> equals
    1:1:int hashCode():229:229 -> hashCode
    1:1:java.lang.String toString():238:238 -> toString
com.android.tools.r8.com.google.common.base.Function -> com.android.tools.r8.r.a.a.a.w:
com.android.tools.r8.com.google.common.base.FunctionalEquivalence -> com.android.tools.r8.r.a.a.a.x:
    com.android.tools.r8.com.google.common.base.Function function -> a
    com.android.tools.r8.com.google.common.base.Equivalence resultEquivalence -> b
    1:3:void <init>(com.android.tools.r8.com.google.common.base.Function,com.android.tools.r8.com.google.common.base.Equivalence):39:41 -> <init>
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):46:46 -> doEquivalent
    1:1:int doHash(java.lang.Object):51:51 -> doHash
    1:3:boolean equals(java.lang.Object):59:61 -> equals
    1:1:int hashCode():68:68 -> hashCode
    2:2:int com.android.tools.r8.com.google.common.base.Objects.hashCode(java.lang.Object[]):76:76 -> hashCode
    2:2:int hashCode():68 -> hashCode
    1:1:java.lang.String toString():73:73 -> toString
com.android.tools.r8.com.google.common.base.JdkPattern -> com.android.tools.r8.r.a.a.a.z:
    java.util.regex.Pattern pattern -> a
    1:2:void <init>(java.util.regex.Pattern):29:30 -> <init>
    1:1:com.android.tools.r8.com.google.common.base.CommonMatcher matcher(java.lang.CharSequence):35:35 -> a
    1:4:boolean equals(java.lang.Object):60:63 -> equals
    1:1:int hashCode():55:55 -> hashCode
    1:1:java.lang.String toString():50:50 -> toString
com.android.tools.r8.com.google.common.base.JdkPattern$JdkMatcher -> com.android.tools.r8.r.a.a.a.y:
    java.util.regex.Matcher matcher -> a
    1:1:void com.android.tools.r8.com.google.common.base.CommonMatcher.<init>():25:25 -> <init>
    1:1:void <init>(java.util.regex.Matcher):69 -> <init>
    2:2:void <init>(java.util.regex.Matcher):70:70 -> <init>
com.android.tools.r8.com.google.common.base.MoreObjects -> com.android.tools.r8.r.a.a.a.D:
    1:1:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.alwaysFalse():62:62 -> a
    2:2:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.not(com.android.tools.r8.com.google.common.base.Predicate):88:88 -> a
    3:7:com.android.tools.r8.com.google.common.base.Supplier com.android.tools.r8.com.google.common.base.Suppliers.memoize(com.android.tools.r8.com.google.common.base.Supplier):97:101 -> a
    8:8:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean):121:121 -> a
    9:9:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.Object):135:135 -> a
    10:10:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.or(com.android.tools.r8.com.google.common.base.Predicate,com.android.tools.r8.com.google.common.base.Predicate):156:156 -> a
    11:11:java.util.List com.android.tools.r8.com.google.common.base.Predicates.asList(com.android.tools.r8.com.google.common.base.Predicate,com.android.tools.r8.com.google.common.base.Predicate):722:722 -> a
    11:11:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.or(com.android.tools.r8.com.google.common.base.Predicate,com.android.tools.r8.com.google.common.base.Predicate):156 -> a
    12:12:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.or(com.android.tools.r8.com.google.common.base.Predicate,com.android.tools.r8.com.google.common.base.Predicate):156:156 -> a
    13:13:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    13:13:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.or(com.android.tools.r8.com.google.common.base.Predicate,com.android.tools.r8.com.google.common.base.Predicate):156 -> a
    14:14:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    14:14:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.or(com.android.tools.r8.com.google.common.base.Predicate,com.android.tools.r8.com.google.common.base.Predicate):156 -> a
    15:15:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,char):170:170 -> a
    16:16:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,int):181:181 -> a
    17:17:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,long):192:192 -> a
    18:18:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,java.lang.Object):204:204 -> a
    19:19:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,int,int):276:276 -> a
    20:20:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,java.lang.Object,java.lang.Object):396:396 -> a
    21:21:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    22:22:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object,java.lang.Object):805:805 -> a
    23:23:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196:1196 -> a
    23:23:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
    24:24:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badElementIndex(int,int,java.lang.String):1207:1207 -> a
    24:24:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196 -> a
    24:24:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
    25:25:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badElementIndex(int,int,java.lang.String):1205:1205 -> a
    25:25:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196 -> a
    25:25:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
    26:26:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badElementIndex(int,int,java.lang.String):1203:1203 -> a
    26:26:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196 -> a
    26:26:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
    27:27:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196:1196 -> a
    27:27:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
    28:32:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndex(int,int,java.lang.String):1248:1252 -> a
    33:33:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndex(int,int,java.lang.String):1250:1250 -> a
    34:34:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271:1271 -> a
    35:35:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndexes(int,int,int):1283:1283 -> a
    35:35:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271 -> a
    36:36:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndexes(int,int,int):1280:1280 -> a
    36:36:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271 -> a
    37:37:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndexes(int,int,int):1277:1277 -> a
    37:37:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271 -> a
    38:38:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271:1271 -> a
    39:67:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.format(java.lang.String,java.lang.Object[]):1298:1326 -> a
    1:1:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.alwaysTrue():54:54 -> b
    2:2:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper toStringHelper(java.lang.Object):100:100 -> b
    3:3:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean):443:443 -> b
    4:4:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.String,int):509:509 -> b
    5:5:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.String,java.lang.Object):534:534 -> b
    6:6:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    6:6:java.lang.Object firstNonNull(java.lang.Object,java.lang.Object):56 -> b
    7:7:int com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndex(int,int,java.lang.String):1241:1241 -> b
    7:7:int com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndex(int,int):1223 -> b
com.android.tools.r8.com.google.common.base.MoreObjects$1 -> com.android.tools.r8.r.a.a.a.A:
com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper -> com.android.tools.r8.r.a.a.a.C:
    com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper$ValueHolder holderTail -> c
    com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper$ValueHolder holderHead -> b
    java.lang.String className -> a
    boolean omitNullValues -> d
    1:1:void <init>(java.lang.String,com.android.tools.r8.com.google.common.base.MoreObjects$1):135:135 -> <init>
    2:2:void <init>(java.lang.String):144:144 -> <init>
    3:11:void <init>(java.lang.String):137:145 -> <init>
    1:1:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper add(java.lang.String,java.lang.Object):168:168 -> a
    1:2:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper$ValueHolder addHolder():358:359 -> b
    1:2:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper addHolder(java.lang.String,java.lang.Object):370 -> b
    3:4:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper addHolder(java.lang.String,java.lang.Object):371:372 -> b
    5:5:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    5:5:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper addHolder(java.lang.String,java.lang.Object):372 -> b
    1:20:java.lang.String toString():331:350 -> toString
    21:39:java.lang.String toString():336:354 -> toString
com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper$ValueHolder -> com.android.tools.r8.r.a.a.a.B:
    com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper$ValueHolder next -> c
    java.lang.Object value -> b
    java.lang.String name -> a
    1:1:void <init>():376:376 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.base.MoreObjects$1):376:376 -> <init>
com.android.tools.r8.com.google.common.base.Optional -> com.android.tools.r8.r.a.a.a.E:
    1:1:void <init>():150:150 -> <init>
    java.lang.Object or(java.lang.Object) -> a
    1:1:com.android.tools.r8.com.google.common.base.Optional com.android.tools.r8.com.google.common.base.Absent.withType():33:33 -> a
    1:1:com.android.tools.r8.com.google.common.base.Optional absent():93 -> a
com.android.tools.r8.com.google.common.base.PairwiseEquivalence -> com.android.tools.r8.r.a.a.a.F:
    com.android.tools.r8.com.google.common.base.Equivalence elementEquivalence -> a
    1:2:void <init>(com.android.tools.r8.com.google.common.base.Equivalence):27:28 -> <init>
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):22:22 -> doEquivalent
    2:11:boolean doEquivalent(java.lang.Iterable,java.lang.Iterable):33:42 -> doEquivalent
    2:11:boolean doEquivalent(java.lang.Object,java.lang.Object):22 -> doEquivalent
    1:1:int doHash(java.lang.Object):22:22 -> doHash
    2:3:int doHash(java.lang.Iterable):48:49 -> doHash
    2:3:int doHash(java.lang.Object):22 -> doHash
    1:3:boolean equals(java.lang.Object):56:58 -> equals
    1:1:int hashCode():66:66 -> hashCode
    1:1:java.lang.String toString():71:71 -> toString
com.android.tools.r8.com.google.common.base.Platform -> com.android.tools.r8.r.a.a.a.I:
    com.android.tools.r8.com.google.common.base.PatternCompiler patternCompiler -> b
    java.util.logging.Logger logger -> a
    1:1:void <clinit>():35:35 -> <clinit>
    2:7:com.android.tools.r8.com.google.common.base.PatternCompiler loadPatternCompiler():74:79 -> <clinit>
    2:7:void <clinit>():36 -> <clinit>
    8:8:void logPatternCompilerError(java.util.ServiceConfigurationError):92:92 -> <clinit>
    8:8:com.android.tools.r8.com.google.common.base.PatternCompiler loadPatternCompiler():81 -> <clinit>
    8:8:void <clinit>():36 -> <clinit>
    9:9:void logPatternCompilerError(java.util.ServiceConfigurationError):92:92 -> <clinit>
    9:9:com.android.tools.r8.com.google.common.base.PatternCompiler loadPatternCompiler():85 -> <clinit>
    9:9:void <clinit>():36 -> <clinit>
    10:10:com.android.tools.r8.com.google.common.base.PatternCompiler loadPatternCompiler():88:88 -> <clinit>
    10:10:void <clinit>():36 -> <clinit>
    11:11:void <clinit>():36:36 -> <clinit>
    1:1:com.android.tools.r8.com.google.common.base.CommonPattern compilePattern(java.lang.String):66:66 -> a
    2:2:com.android.tools.r8.com.google.common.base.CommonPattern com.android.tools.r8.com.google.common.base.Platform$JdkPatternCompiler.compile(java.lang.String):98:98 -> a
    2:2:com.android.tools.r8.com.google.common.base.CommonPattern compilePattern(java.lang.String):66 -> a
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    3:3:com.android.tools.r8.com.google.common.base.CommonPattern compilePattern(java.lang.String):65 -> a
com.android.tools.r8.com.google.common.base.Platform$1 -> com.android.tools.r8.r.a.a.a.G:
com.android.tools.r8.com.google.common.base.Platform$JdkPatternCompiler -> com.android.tools.r8.r.a.a.a.H:
    1:1:void <init>():95:95 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.base.Platform$1):95:95 -> <init>
com.android.tools.r8.com.google.common.base.Predicate -> com.android.tools.r8.r.a.a.a.J:
    1:1:boolean test(java.lang.Object):80:80 -> test
com.android.tools.r8.com.google.common.base.Predicates$1 -> com.android.tools.r8.r.a.a.a.K:
com.android.tools.r8.com.google.common.base.Predicates$NotPredicate -> com.android.tools.r8.r.a.a.a.L:
    com.android.tools.r8.com.google.common.base.Predicate predicate -> a
    1:2:void <init>(com.android.tools.r8.com.google.common.base.Predicate):341:342 -> <init>
    1:1:boolean apply(java.lang.Object):347:347 -> apply
    1:3:boolean equals(java.lang.Object):357:359 -> equals
    1:1:int hashCode():352:352 -> hashCode
    1:1:java.lang.String toString():366:366 -> toString
com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate -> com.android.tools.r8.r.a.a.a.Q:
    com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate NOT_NULL -> d
    com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate ALWAYS_FALSE -> b
    com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate IS_NULL -> c
    com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate ALWAYS_TRUE -> a
    1:37:void <clinit>():283:319 -> <clinit>
    1:1:void <init>(java.lang.String,int):281:281 -> <init>
    2:2:void <init>(java.lang.String,int,com.android.tools.r8.com.google.common.base.Predicates$1):281:281 -> <init>
com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate$1 -> com.android.tools.r8.r.a.a.a.M:
    1:1:void <init>(java.lang.String,int):283:283 -> <init>
com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate$2 -> com.android.tools.r8.r.a.a.a.N:
    1:1:void <init>(java.lang.String,int):295:295 -> <init>
com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate$3 -> com.android.tools.r8.r.a.a.a.O:
    1:1:void <init>(java.lang.String,int):307:307 -> <init>
com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate$4 -> com.android.tools.r8.r.a.a.a.P:
    1:1:void <init>(java.lang.String,int):319:319 -> <init>
com.android.tools.r8.com.google.common.base.Predicates$OrPredicate -> com.android.tools.r8.r.a.a.a.S:
    java.util.List components -> a
    1:1:void <init>(java.util.List,com.android.tools.r8.com.google.common.base.Predicates$1):415:415 -> <init>
    2:3:void <init>(java.util.List):418:419 -> <init>
    1:2:boolean apply(java.lang.Object):425:426 -> apply
    1:3:boolean equals(java.lang.Object):441:443 -> equals
    1:1:int hashCode():436:436 -> hashCode
    1:1:java.lang.String toString():450:450 -> toString
    2:11:java.lang.String com.android.tools.r8.com.google.common.base.Predicates.toStringHelper(java.lang.String,java.lang.Iterable):457:466 -> toString
    2:11:java.lang.String com.android.tools.r8.com.google.common.base.Predicates.access$800(java.lang.String,java.lang.Iterable):43 -> toString
    2:11:java.lang.String toString():450 -> toString
com.android.tools.r8.com.google.common.base.Splitter -> com.android.tools.r8.r.a.a.a.U:
    1:1:void <init>(com.android.tools.r8.com.google.common.base.Splitter$Strategy,boolean,com.android.tools.r8.com.google.common.base.CharMatcher,int):103:103 -> <init>
    1:1:com.android.tools.r8.com.google.common.base.Splitter onPattern(java.lang.String):252:252 -> a
    2:2:com.android.tools.r8.com.google.common.base.Splitter on(com.android.tools.r8.com.google.common.base.CommonPattern):214:214 -> a
    2:2:com.android.tools.r8.com.google.common.base.Splitter onPattern(java.lang.String):252 -> a
    3:3:boolean com.android.tools.r8.com.google.common.base.JdkPattern$JdkMatcher.matches():75:75 -> a
    3:3:com.android.tools.r8.com.google.common.base.Splitter on(com.android.tools.r8.com.google.common.base.CommonPattern):214 -> a
    3:3:com.android.tools.r8.com.google.common.base.Splitter onPattern(java.lang.String):252 -> a
    4:9:com.android.tools.r8.com.google.common.base.Splitter on(com.android.tools.r8.com.google.common.base.CommonPattern):213:218 -> a
    4:9:com.android.tools.r8.com.google.common.base.Splitter onPattern(java.lang.String):252 -> a
    10:10:void <init>(com.android.tools.r8.com.google.common.base.Splitter$Strategy):100:100 -> a
    10:10:com.android.tools.r8.com.google.common.base.Splitter on(com.android.tools.r8.com.google.common.base.CommonPattern):218 -> a
    10:10:com.android.tools.r8.com.google.common.base.Splitter onPattern(java.lang.String):252 -> a
com.android.tools.r8.com.google.common.base.Splitter$3 -> com.android.tools.r8.r.a.a.a.T:
    1:1:void <init>(com.android.tools.r8.com.google.common.base.CommonPattern):219:219 -> <init>
com.android.tools.r8.com.google.common.base.Supplier -> com.android.tools.r8.r.a.a.a.V:
com.android.tools.r8.com.google.common.base.Suppliers$MemoizingSupplier -> com.android.tools.r8.r.a.a.a.W:
    com.android.tools.r8.com.google.common.base.Supplier delegate -> a
    java.lang.Object value -> c
    boolean initialized -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.base.Supplier):114:115 -> <init>
    1:11:java.lang.Object get():121:131 -> get
    1:1:java.lang.String toString():136:136 -> toString
com.android.tools.r8.com.google.common.base.Suppliers$NonSerializableMemoizingSupplier -> com.android.tools.r8.r.a.a.a.X:
    com.android.tools.r8.com.google.common.base.Supplier delegate -> a
    java.lang.Object value -> c
    boolean initialized -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.base.Supplier):150:151 -> <init>
    1:13:java.lang.Object get():157:169 -> get
    1:1:java.lang.String toString():174:174 -> toString
com.android.tools.r8.com.google.common.base.Throwables -> com.android.tools.r8.r.a.a.a.Y:
    java.lang.Object jla -> a
    1:3:java.lang.Object getJLA():482:484 -> <clinit>
    1:3:void <clinit>():452 -> <clinit>
    4:4:void <clinit>():452:452 -> <clinit>
    5:5:java.lang.reflect.Method getGetMethod():503:503 -> <clinit>
    5:5:void <clinit>():460 -> <clinit>
    6:6:java.lang.reflect.Method getJlaMethod(java.lang.String,java.lang.Class[]):520:520 -> <clinit>
    6:6:java.lang.reflect.Method getGetMethod():503 -> <clinit>
    6:6:void <clinit>():460 -> <clinit>
    7:7:void <clinit>():468:468 -> <clinit>
    8:8:java.lang.reflect.Method getSizeMethod():513:513 -> <clinit>
    8:8:void <clinit>():468 -> <clinit>
    9:11:java.lang.reflect.Method getJlaMethod(java.lang.String,java.lang.Class[]):520:522 -> <clinit>
    9:11:java.lang.reflect.Method getSizeMethod():513 -> <clinit>
    9:11:void <clinit>():468 -> <clinit>
    12:12:java.lang.reflect.Method getJlaMethod(java.lang.String,java.lang.Class[]):522:522 -> <clinit>
    12:12:java.lang.reflect.Method getGetMethod():503 -> <clinit>
    12:12:void <clinit>():460 -> <clinit>
    13:13:java.lang.Object getJLA():486:486 -> <clinit>
    13:13:void <clinit>():452 -> <clinit>
    1:2:void throwIfInstanceOf(java.lang.Throwable,java.lang.Class):75:76 -> a
    1:2:void propagateIfInstanceOf(java.lang.Throwable,java.lang.Class):104 -> a
    1:2:void propagateIfPossible(java.lang.Throwable,java.lang.Class):184 -> a
    3:7:void throwIfUnchecked(java.lang.Throwable):129:133 -> a
    3:7:void propagateIfPossible(java.lang.Throwable):159 -> a
    3:7:void propagateIfPossible(java.lang.Throwable,java.lang.Class):185 -> a
    8:8:void throwIfUnchecked(java.lang.Throwable):130:130 -> a
    8:8:void propagateIfPossible(java.lang.Throwable):159 -> a
    8:8:void propagateIfPossible(java.lang.Throwable,java.lang.Class):185 -> a
com.android.tools.r8.com.google.common.collect.AbstractIndexedListIterator -> com.android.tools.r8.r.a.a.b.a:
    int position -> b
    int size -> a
    1:1:void <init>(int):52:52 -> <init>
    2:5:void <init>(int,int):66:69 -> <init>
    java.lang.Object get(int) -> a
    1:1:boolean hasNext():74:74 -> hasNext
    1:1:boolean hasPrevious():92:92 -> hasPrevious
    1:4:java.lang.Object next():79:82 -> next
    5:5:java.lang.Object next():80:80 -> next
    1:1:int nextIndex():87:87 -> nextIndex
    1:4:java.lang.Object previous():97:100 -> previous
    5:5:java.lang.Object previous():98:98 -> previous
    1:1:int previousIndex():105:105 -> previousIndex
com.android.tools.r8.com.google.common.collect.AbstractIterator -> com.android.tools.r8.r.a.a.b.c:
    java.lang.Object next -> b
    com.android.tools.r8.com.google.common.collect.AbstractIterator$State state -> a
    1:1:void <init>():68:68 -> <init>
    2:2:void <init>():65:65 -> <init>
    java.lang.Object computeNext() -> c
    1:1:java.lang.Object endOfData():125:125 -> h
    1:2:boolean hasNext():132:133 -> hasNext
    3:6:boolean tryToComputeNext():144:147 -> hasNext
    3:6:boolean hasNext():140 -> hasNext
    1:6:java.lang.Object next():156:161 -> next
    7:7:java.lang.Object next():157:157 -> next
com.android.tools.r8.com.google.common.collect.AbstractIterator$State -> com.android.tools.r8.r.a.a.b.b:
    com.android.tools.r8.com.google.common.collect.AbstractIterator$State[] $VALUES -> e
    com.android.tools.r8.com.google.common.collect.AbstractIterator$State DONE -> c
    com.android.tools.r8.com.google.common.collect.AbstractIterator$State NOT_READY -> b
    com.android.tools.r8.com.google.common.collect.AbstractIterator$State FAILED -> d
    com.android.tools.r8.com.google.common.collect.AbstractIterator$State READY -> a
    1:10:void <clinit>():72:81 -> <clinit>
    11:11:void <clinit>():70:70 -> <clinit>
    1:1:void <init>(java.lang.String,int):70:70 -> <init>
com.android.tools.r8.com.google.common.collect.AbstractListMultimap -> com.android.tools.r8.r.a.a.b.d:
    1:1:void <init>(java.util.Map):45:45 -> <init>
    1:1:java.util.List get(java.lang.Object):67:67 -> a
    1:1:java.util.Map asMap():117:117 -> b
    1:1:boolean equals(java.lang.Object):129:129 -> equals
    1:1:java.util.Collection get(java.lang.Object):35:35 -> get
    1:1:boolean put(java.lang.Object,java.lang.Object):106:106 -> put
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap -> com.android.tools.r8.r.a.a.b.f:
    int totalSize -> f
    java.util.Map map -> e
    1:3:void <init>(java.util.Map):122:124 -> <init>
    1:1:java.util.Map access$000(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):91:91 -> a
    2:2:int access$202(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,int):91:91 -> a
    3:10:java.util.Collection wrapCollection(java.lang.Object,java.util.Collection):317:324 -> a
    11:11:java.util.List wrapList(java.lang.Object,java.util.List,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):331:331 -> a
    11:11:java.util.Collection wrapCollection(java.lang.Object,java.util.Collection):324 -> a
    12:12:java.util.Collection wrapCollection(java.lang.Object,java.util.Collection):326:326 -> a
    13:15:java.util.Iterator iteratorOrListIterator(java.util.Collection):613:615 -> a
    13:15:java.util.Iterator access$100(java.util.Collection):91 -> a
    16:16:void removeValuesForKey(java.lang.Object):1145:1145 -> a
    16:16:void access$400(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object):91 -> a
    17:17:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.safeRemove(java.util.Map,java.lang.Object):3736:3736 -> a
    17:17:void removeValuesForKey(java.lang.Object):1145 -> a
    17:17:void access$400(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object):91 -> a
    18:23:void removeValuesForKey(java.lang.Object):1145:1150 -> a
    18:23:void access$400(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object):91 -> a
    24:24:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    24:24:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.safeRemove(java.util.Map,java.lang.Object):3734 -> a
    24:24:void removeValuesForKey(java.lang.Object):1145 -> a
    24:24:void access$400(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object):91 -> a
    25:25:java.util.Collection entries():1240:1240 -> a
    26:29:java.util.Spliterator lambda$entrySpliterator$1(java.util.Map$Entry):1266:1269 -> a
    30:30:java.util.Spliterator lambda$entrySpliterator$1(java.util.Map$Entry):1268:1268 -> a
    1:1:int access$200(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):91:91 -> b
    2:2:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> b
    2:2:java.util.Map$Entry lambda$null$0(java.lang.Object,java.lang.Object):1269 -> b
    1:1:int access$208(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):91:91 -> c
    1:5:void clear():288:292 -> clear
    1:1:boolean containsKey(java.lang.Object):185:185 -> containsKey
    1:1:int access$210(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):91:91 -> d
    2:7:java.util.Map createAsMap():1284:1289 -> d
    1:6:java.util.Set createKeySet():932:937 -> f
    1:1:java.util.Collection get(java.lang.Object):304:304 -> get
    2:2:java.util.Collection createCollection(java.lang.Object):169:169 -> get
    2:2:java.util.Collection get(java.lang.Object):306 -> get
    3:3:java.util.Collection get(java.lang.Object):308:308 -> get
    1:1:java.util.Iterator entryIterator():1253:1253 -> h
    1:10:java.util.Spliterator entrySpliterator():1263:1272 -> i
    11:11:java.util.Spliterator entrySpliterator():1263:1263 -> i
    java.util.Collection createCollection() -> j
    1:1:boolean put(java.lang.Object,java.lang.Object):192:192 -> put
    2:2:java.util.Collection createCollection(java.lang.Object):169:169 -> put
    2:2:boolean put(java.lang.Object,java.lang.Object):194 -> put
    3:11:boolean put(java.lang.Object,java.lang.Object):195:203 -> put
    1:1:int size():180:180 -> size
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$2 -> com.android.tools.r8.r.a.a.b.e:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):1253:1253 -> <init>
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap -> com.android.tools.r8.r.a.a.b.f$a:
    java.util.Map submap -> c
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> d
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.Map):1301:1302 -> <init>
    1:2:java.util.Map$Entry wrapEntry(java.util.Map$Entry):1377:1378 -> a
    3:3:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> a
    3:3:java.util.Map$Entry wrapEntry(java.util.Map$Entry):1378 -> a
    1:4:void clear():1369:1372 -> clear
    5:5:boolean com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapIterator.hasNext():1423:1423 -> clear
    5:5:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1033 -> clear
    5:5:void clear():1372 -> clear
    6:7:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1034:1035 -> clear
    6:7:void clear():1372 -> clear
    1:1:boolean containsKey(java.lang.Object):1314:1314 -> containsKey
    2:2:boolean com.android.tools.r8.com.google.common.collect.Maps.safeContainsKey(java.util.Map,java.lang.Object):3721:3721 -> containsKey
    2:2:boolean containsKey(java.lang.Object):1314 -> containsKey
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> containsKey
    3:3:boolean com.android.tools.r8.com.google.common.collect.Maps.safeContainsKey(java.util.Map,java.lang.Object):3719 -> containsKey
    3:3:boolean containsKey(java.lang.Object):1314 -> containsKey
    1:1:boolean equals(java.lang.Object):1354:1354 -> equals
    1:7:java.util.Collection get(java.lang.Object):1319:1325 -> get
    1:7:java.lang.Object get(java.lang.Object):1293 -> get
    1:1:int hashCode():1359:1359 -> hashCode
    1:1:java.util.Set keySet():1330:1330 -> keySet
    1:9:java.util.Collection remove(java.lang.Object):1340:1348 -> remove
    1:9:java.lang.Object remove(java.lang.Object):1293 -> remove
    1:1:int size():1335:1335 -> size
    1:1:java.lang.String toString():1364:1364 -> toString
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapEntries -> com.android.tools.r8.r.a.a.b.f$a$a:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap this$1 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap):1382:1382 -> <init>
    1:1:java.util.Map map():1385:1385 -> a
    1:1:boolean contains(java.lang.Object):1402:1402 -> contains
    2:2:boolean com.android.tools.r8.com.google.common.collect.Collections2.safeContains(java.util.Collection,java.lang.Object):109:109 -> contains
    2:2:boolean contains(java.lang.Object):1402 -> contains
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> contains
    3:3:boolean com.android.tools.r8.com.google.common.collect.Collections2.safeContains(java.util.Collection,java.lang.Object):107 -> contains
    3:3:boolean contains(java.lang.Object):1402 -> contains
    1:1:java.util.Iterator iterator():1390:1390 -> iterator
    1:5:boolean remove(java.lang.Object):1407:1411 -> remove
    1:1:java.util.Spliterator spliterator():1395:1395 -> spliterator
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapIterator -> com.android.tools.r8.r.a.a.b.f$a$b:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap this$1 -> c
    java.util.Collection collection -> b
    java.util.Iterator delegateIterator -> a
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap):1417:1418 -> <init>
    1:1:boolean hasNext():1423:1423 -> hasNext
    1:3:java.util.Map$Entry next():1428:1430 -> next
    1:3:java.lang.Object next():1417 -> next
    1:3:void remove():1435:1437 -> remove
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$Itr -> com.android.tools.r8.r.a.a.b.f$b:
    java.util.Iterator valueIterator -> d
    java.util.Collection collection -> c
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> e
    java.util.Iterator keyIterator -> a
    java.lang.Object key -> b
    1:5:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):1160:1164 -> <init>
    1:1:boolean hasNext():1171:1171 -> hasNext
    1:7:java.lang.Object next():1176:1182 -> next
    8:8:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> next
    8:8:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$2.output(java.lang.Object,java.lang.Object):1256 -> next
    8:8:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$2.output(java.lang.Object,java.lang.Object):1253 -> next
    8:8:java.lang.Object next():1182 -> next
    1:5:void remove():1187:1191 -> remove
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet -> com.android.tools.r8.r.a.a.b.f$c:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.Map):943:944 -> <init>
    1:1:void clear():996:996 -> clear
    2:2:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1033:1033 -> clear
    2:2:void clear():996 -> clear
    3:3:boolean com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet$1.hasNext():955:955 -> clear
    3:3:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1033 -> clear
    3:3:void clear():996 -> clear
    4:5:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1034:1035 -> clear
    4:5:void clear():996 -> clear
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> containsAll
    1:1:boolean containsAll(java.util.Collection):1001 -> containsAll
    2:2:boolean containsAll(java.util.Collection):1001:1001 -> containsAll
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> equals
    1:1:boolean equals(java.lang.Object):1006 -> equals
    2:2:boolean equals(java.lang.Object):1006:1006 -> equals
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> hashCode
    1:1:int hashCode():1011 -> hashCode
    2:2:int hashCode():1011:1011 -> hashCode
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> iterator
    1:1:java.util.Iterator iterator():949 -> iterator
    2:3:java.util.Iterator iterator():949:950 -> iterator
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> remove
    1:1:boolean remove(java.lang.Object):985 -> remove
    2:6:boolean remove(java.lang.Object):985:989 -> remove
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> spliterator
    1:1:java.util.Spliterator spliterator():979 -> spliterator
    2:2:java.util.Spliterator spliterator():979:979 -> spliterator
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet$1 -> com.android.tools.r8.r.a.a.b.g:
    java.util.Map$Entry entry -> a
    java.util.Iterator val$entryIterator -> b
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet this$1 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet,java.util.Iterator):950:950 -> <init>
    1:1:boolean hasNext():955:955 -> hasNext
    1:2:java.lang.Object next():960:961 -> next
    1:5:void remove():966:970 -> remove
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$NavigableAsMap -> com.android.tools.r8.r.a.a.b.f$d:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> g
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.NavigableMap):1500:1501 -> <init>
    1:8:java.util.Map$Entry pollAsMapEntry(java.util.Iterator):1576:1583 -> a
    9:18:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap.unmodifiableCollectionSubclass(java.util.Collection):272:281 -> a
    9:18:java.util.Map$Entry pollAsMapEntry(java.util.Iterator):1583 -> a
    19:19:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> a
    19:19:java.util.Map$Entry pollAsMapEntry(java.util.Iterator):1583 -> a
    1:1:java.util.NavigableSet createKeySet():1598:1598 -> c
    1:1:java.util.SortedSet createKeySet():1498 -> c
    1:2:java.util.Map$Entry ceilingEntry(java.lang.Object):1533:1534 -> ceilingEntry
    1:1:java.lang.Object ceilingKey(java.lang.Object):1539:1539 -> ceilingKey
    1:1:java.util.NavigableSet descendingKeySet():1608:1608 -> descendingKeySet
    1:1:java.util.NavigableMap descendingMap():1588:1588 -> descendingMap
    1:2:java.util.Map$Entry firstEntry():1555:1556 -> firstEntry
    1:2:java.util.Map$Entry floorEntry(java.lang.Object):1522:1523 -> floorEntry
    1:1:java.lang.Object floorKey(java.lang.Object):1528:1528 -> floorKey
    1:1:java.util.SortedSet keySet():1498:1498 -> h
    1:1:java.util.NavigableMap headMap(java.lang.Object,boolean):1629:1629 -> headMap
    2:2:java.util.NavigableMap headMap(java.lang.Object,boolean):1629:1629 -> headMap
    2:2:java.util.NavigableMap headMap(java.lang.Object):1624 -> headMap
    2:2:java.util.SortedMap headMap(java.lang.Object):1498 -> headMap
    1:2:java.util.Map$Entry higherEntry(java.lang.Object):1544:1545 -> higherEntry
    1:1:java.lang.Object higherKey(java.lang.Object):1550:1550 -> higherKey
    1:1:java.util.SortedMap sortedMap():1498:1498 -> j
    1:2:java.util.SortedSet com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedAsMap.keySet():1488:1489 -> k
    1:2:java.util.NavigableSet keySet():1593 -> k
    3:3:java.util.NavigableSet keySet():1593:1593 -> k
    1:1:java.util.Set keySet():1498:1498 -> keySet
    1:1:java.util.SortedMap com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedAsMap.sortedMap():1449:1449 -> l
    1:1:java.util.NavigableMap sortedMap():1506 -> l
    2:2:java.util.NavigableMap sortedMap():1506:1506 -> l
    1:2:java.util.Map$Entry lastEntry():1561:1562 -> lastEntry
    1:2:java.util.Map$Entry lowerEntry(java.lang.Object):1511:1512 -> lowerEntry
    1:1:java.lang.Object lowerKey(java.lang.Object):1517:1517 -> lowerKey
    1:1:java.util.NavigableSet navigableKeySet():1603:1603 -> navigableKeySet
    1:1:java.util.Map$Entry pollFirstEntry():1567:1567 -> pollFirstEntry
    1:1:java.util.Map$Entry pollLastEntry():1572:1572 -> pollLastEntry
    1:1:java.util.NavigableMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):1619:1619 -> subMap
    2:2:java.util.NavigableMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):1619:1619 -> subMap
    2:2:java.util.NavigableMap subMap(java.lang.Object,java.lang.Object):1613 -> subMap
    2:2:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):1498 -> subMap
    1:1:java.util.NavigableMap tailMap(java.lang.Object,boolean):1639:1639 -> tailMap
    2:2:java.util.NavigableMap tailMap(java.lang.Object,boolean):1639:1639 -> tailMap
    2:2:java.util.NavigableMap tailMap(java.lang.Object):1634 -> tailMap
    2:2:java.util.SortedMap tailMap(java.lang.Object):1498 -> tailMap
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$NavigableKeySet -> com.android.tools.r8.r.a.a.b.f$e:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> d
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.NavigableMap):1059:1060 -> <init>
    1:1:java.util.SortedMap sortedMap():1057:1057 -> a
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> b
    1:1:java.util.SortedMap com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedKeySet.sortedMap():1023 -> b
    1:1:java.util.NavigableMap sortedMap():1065 -> b
    2:2:java.util.SortedMap com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedKeySet.sortedMap():1023:1023 -> b
    2:2:java.util.NavigableMap sortedMap():1065 -> b
    3:3:java.util.NavigableMap sortedMap():1065:1065 -> b
    1:1:java.lang.Object ceiling(java.lang.Object):1080:1080 -> ceiling
    1:1:java.util.Iterator descendingIterator():1105:1105 -> descendingIterator
    1:1:java.util.NavigableSet descendingSet():1100:1100 -> descendingSet
    1:1:java.lang.Object floor(java.lang.Object):1075:1075 -> floor
    1:1:java.util.NavigableSet headSet(java.lang.Object,boolean):1115:1115 -> headSet
    2:2:java.util.NavigableSet headSet(java.lang.Object,boolean):1115:1115 -> headSet
    2:2:java.util.NavigableSet headSet(java.lang.Object):1110 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):1057 -> headSet
    1:1:java.lang.Object higher(java.lang.Object):1085:1085 -> higher
    1:1:java.lang.Object lower(java.lang.Object):1070:1070 -> lower
    1:1:java.lang.Object pollFirst():1090:1090 -> pollFirst
    2:4:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.pollNext(java.util.Iterator):1017:1019 -> pollFirst
    2:4:java.lang.Object pollFirst():1090 -> pollFirst
    1:1:java.lang.Object pollLast():1095:1095 -> pollLast
    1:2:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):1126:1127 -> subSet
    3:4:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):1126:1127 -> subSet
    3:4:java.util.NavigableSet subSet(java.lang.Object,java.lang.Object):1120 -> subSet
    3:4:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1057 -> subSet
    1:1:java.util.NavigableSet tailSet(java.lang.Object,boolean):1137:1137 -> tailSet
    2:2:java.util.NavigableSet tailSet(java.lang.Object,boolean):1137:1137 -> tailSet
    2:2:java.util.NavigableSet tailSet(java.lang.Object):1132 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):1057 -> tailSet
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$RandomAccessWrappedList -> com.android.tools.r8.r.a.a.b.f$f:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.List,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):926:926 -> <init>
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedAsMap -> com.android.tools.r8.r.a.a.b.f$g:
    java.util.SortedSet sortedKeySet -> e
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> f
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.SortedMap):1444:1445 -> <init>
    1:1:java.util.SortedSet createKeySet():1494:1494 -> c
    1:1:java.util.Comparator comparator():1454:1454 -> comparator
    1:1:java.lang.Object firstKey():1459:1459 -> firstKey
    1:2:java.util.SortedSet keySet():1488:1489 -> h
    1:1:java.util.SortedMap headMap(java.lang.Object):1469:1469 -> headMap
    1:1:java.util.SortedMap sortedMap():1449:1449 -> j
    1:1:java.util.Set keySet():1442:1442 -> keySet
    1:1:java.lang.Object lastKey():1464:1464 -> lastKey
    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):1474:1474 -> subMap
    1:1:java.util.SortedMap tailMap(java.lang.Object):1479:1479 -> tailMap
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedKeySet -> com.android.tools.r8.r.a.a.b.f$h:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> c
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.SortedMap):1018:1019 -> <init>
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> a
    1:1:java.util.SortedMap sortedMap():1023 -> a
    2:2:java.util.SortedMap sortedMap():1023:1023 -> a
    1:1:java.util.Comparator comparator():1028:1028 -> comparator
    1:1:java.lang.Object first():1033:1033 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):1038:1038 -> headSet
    1:1:java.lang.Object last():1043:1043 -> last
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1048:1048 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1053:1053 -> tailSet
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection -> com.android.tools.r8.r.a.a.b.f$i:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection ancestor -> c
    java.util.Collection ancestorDelegate -> d
    java.util.Collection delegate -> b
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> e
    java.lang.Object key -> a
    1:5:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.Collection,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):361:365 -> <init>
    1:4:void addToMap():413:416 -> a
    1:7:boolean add(java.lang.Object):514:520 -> add
    1:10:boolean addAll(java.util.Collection):534:543 -> addAll
    1:1:java.util.Collection getDelegate():448:448 -> b
    1:7:void clear():563:569 -> clear
    1:2:boolean contains(java.lang.Object):551:552 -> contains
    1:2:boolean containsAll(java.util.Collection):557:558 -> containsAll
    1:3:void refreshIfEmpty():376:378 -> d
    4:4:java.util.Collection getDelegate():448:448 -> d
    4:4:void refreshIfEmpty():378 -> d
    5:11:void refreshIfEmpty():378:384 -> d
    1:4:void removeIfEmpty():394:397 -> e
    1:2:boolean equals(java.lang.Object):431:432 -> equals
    1:2:int hashCode():437:438 -> hashCode
    1:2:java.util.Iterator iterator():453:454 -> iterator
    1:5:boolean remove(java.lang.Object):574:578 -> remove
    1:9:boolean removeAll(java.util.Collection):585:593 -> removeAll
    1:6:boolean retainAll(java.util.Collection):601:606 -> retainAll
    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> retainAll
    7:7:boolean retainAll(java.util.Collection):600 -> retainAll
    1:2:int size():422:423 -> size
    1:2:java.util.Spliterator spliterator():459:460 -> spliterator
    1:2:java.lang.String toString():443:444 -> toString
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection$WrappedIterator -> com.android.tools.r8.r.a.a.b.f$i$a:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection this$1 -> c
    java.util.Collection originalDelegate -> b
    java.util.Iterator delegateIterator -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):468:468 -> <init>
    2:5:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):466:469 -> <init>
    6:6:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection,java.util.Iterator):472:472 -> <init>
    7:14:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection,java.util.Iterator):466:473 -> <init>
    1:3:void validateIterator():481:483 -> c
    1:2:boolean hasNext():489:490 -> hasNext
    1:2:java.lang.Object next():495:496 -> next
    1:3:void remove():501:503 -> remove
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedList -> com.android.tools.r8.r.a.a.b.f$j:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> f
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.List,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):780:781 -> <init>
    1:1:void add(int,java.lang.Object):819:819 -> add
    2:2:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> add
    2:2:void add(int,java.lang.Object):820 -> add
    3:3:void add(int,java.lang.Object):820:820 -> add
    4:4:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> add
    4:4:java.util.List getListDelegate():785 -> add
    4:4:void add(int,java.lang.Object):821 -> add
    5:5:java.util.List getListDelegate():785:785 -> add
    5:5:void add(int,java.lang.Object):821 -> add
    6:9:void add(int,java.lang.Object):821:824 -> add
    1:4:boolean addAll(int,java.util.Collection):790:793 -> addAll
    5:5:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> addAll
    5:5:java.util.List getListDelegate():785 -> addAll
    5:5:boolean addAll(int,java.util.Collection):794 -> addAll
    6:6:java.util.List getListDelegate():785:785 -> addAll
    6:6:boolean addAll(int,java.util.Collection):794 -> addAll
    7:7:boolean addAll(int,java.util.Collection):794:794 -> addAll
    8:8:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> addAll
    8:8:boolean addAll(int,java.util.Collection):796 -> addAll
    9:12:boolean addAll(int,java.util.Collection):796:799 -> addAll
    1:1:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> f
    1:1:java.util.List getListDelegate():785 -> f
    2:2:java.util.List getListDelegate():785:785 -> f
    1:1:java.lang.Object get(int):807:807 -> get
    2:2:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> get
    2:2:java.util.List getListDelegate():785 -> get
    2:2:java.lang.Object get(int):808 -> get
    3:3:java.util.List getListDelegate():785:785 -> get
    3:3:java.lang.Object get(int):808 -> get
    4:4:java.lang.Object get(int):808:808 -> get
    1:1:int indexOf(java.lang.Object):839:839 -> indexOf
    2:2:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> indexOf
    2:2:java.util.List getListDelegate():785 -> indexOf
    2:2:int indexOf(java.lang.Object):840 -> indexOf
    3:3:java.util.List getListDelegate():785:785 -> indexOf
    3:3:int indexOf(java.lang.Object):840 -> indexOf
    4:4:int indexOf(java.lang.Object):840:840 -> indexOf
    1:1:int lastIndexOf(java.lang.Object):845:845 -> lastIndexOf
    2:2:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> lastIndexOf
    2:2:java.util.List getListDelegate():785 -> lastIndexOf
    2:2:int lastIndexOf(java.lang.Object):846 -> lastIndexOf
    3:3:java.util.List getListDelegate():785:785 -> lastIndexOf
    3:3:int lastIndexOf(java.lang.Object):846 -> lastIndexOf
    4:4:int lastIndexOf(java.lang.Object):846:846 -> lastIndexOf
    1:2:java.util.ListIterator listIterator():851:852 -> listIterator
    3:4:java.util.ListIterator listIterator(int):857:858 -> listIterator
    1:1:java.lang.Object remove(int):830:830 -> remove
    2:2:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> remove
    2:2:java.util.List getListDelegate():785 -> remove
    2:2:java.lang.Object remove(int):831 -> remove
    3:3:java.util.List getListDelegate():785:785 -> remove
    3:3:java.lang.Object remove(int):831 -> remove
    4:6:java.lang.Object remove(int):831:833 -> remove
    1:1:java.lang.Object set(int,java.lang.Object):813:813 -> set
    2:2:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> set
    2:2:java.util.List getListDelegate():785 -> set
    2:2:java.lang.Object set(int,java.lang.Object):814 -> set
    3:3:java.util.List getListDelegate():785:785 -> set
    3:3:java.lang.Object set(int,java.lang.Object):814 -> set
    4:4:java.lang.Object set(int,java.lang.Object):814:814 -> set
    1:2:java.util.List subList(int,int):863:864 -> subList
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getKey():402:402 -> subList
    3:3:java.util.List subList(int,int):865 -> subList
    4:4:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> subList
    4:4:java.util.List getListDelegate():785 -> subList
    4:4:java.util.List subList(int,int):866 -> subList
    5:5:java.util.List getListDelegate():785:785 -> subList
    5:5:java.util.List subList(int,int):866 -> subList
    6:6:java.util.List subList(int,int):866:866 -> subList
    7:7:com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getAncestor():527:527 -> subList
    7:7:java.util.List subList(int,int):867 -> subList
    8:8:java.util.List com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap.wrapList(java.lang.Object,java.util.List,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):331:331 -> subList
    8:8:java.util.List com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap.access$300(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.List,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):91 -> subList
    8:8:java.util.List subList(int,int):864 -> subList
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedList$WrappedListIterator -> com.android.tools.r8.r.a.a.b.f$j$a:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedList this$1 -> d
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedList):872:872 -> <init>
    2:3:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedList,int):874:875 -> <init>
    1:5:void add(java.lang.Object):909:913 -> add
    1:2:java.util.Iterator com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection$WrappedIterator.getDelegateIterator():507:508 -> h
    1:2:java.util.ListIterator getDelegateListIterator():879 -> h
    3:3:java.util.ListIterator getDelegateListIterator():879:879 -> h
    1:1:boolean hasPrevious():884:884 -> hasPrevious
    1:1:int nextIndex():894:894 -> nextIndex
    1:1:java.lang.Object previous():889:889 -> previous
    1:1:int previousIndex():899:899 -> previousIndex
    1:1:void set(java.lang.Object):904:904 -> set
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedNavigableSet -> com.android.tools.r8.r.a.a.b.f$k:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> g
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.NavigableSet,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):706:707 -> <init>
    1:1:java.util.NavigableSet wrap(java.util.NavigableSet):746:746 -> a
    2:2:com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getAncestor():527:527 -> a
    2:2:java.util.NavigableSet wrap(java.util.NavigableSet):746 -> a
    3:3:java.util.NavigableSet wrap(java.util.NavigableSet):746:746 -> a
    1:1:java.lang.Object ceiling(java.lang.Object):727:727 -> ceiling
    1:1:java.util.Iterator descendingIterator():756:756 -> descendingIterator
    1:1:java.util.NavigableSet descendingSet():751:751 -> descendingSet
    1:1:java.util.SortedSet getSortedSetDelegate():703:703 -> f
    1:1:java.lang.Object floor(java.lang.Object):722:722 -> floor
    1:1:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> g
    1:1:java.util.SortedSet com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedSortedSet.getSortedSetDelegate():655 -> g
    1:1:java.util.NavigableSet getSortedSetDelegate():712 -> g
    2:2:java.util.SortedSet com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedSortedSet.getSortedSetDelegate():655:655 -> g
    2:2:java.util.NavigableSet getSortedSetDelegate():712 -> g
    3:3:java.util.NavigableSet getSortedSetDelegate():712:712 -> g
    1:1:java.util.NavigableSet headSet(java.lang.Object,boolean):768:768 -> headSet
    1:1:java.lang.Object higher(java.lang.Object):732:732 -> higher
    1:1:java.lang.Object lower(java.lang.Object):717:717 -> lower
    1:1:java.lang.Object pollFirst():737:737 -> pollFirst
    2:4:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.pollNext(java.util.Iterator):1017:1019 -> pollFirst
    2:4:java.lang.Object pollFirst():737 -> pollFirst
    1:1:java.lang.Object pollLast():742:742 -> pollLast
    2:4:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.pollNext(java.util.Iterator):1017:1019 -> pollLast
    2:4:java.lang.Object pollLast():742 -> pollLast
    1:1:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):763:763 -> subSet
    2:2:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):762:762 -> subSet
    1:1:java.util.NavigableSet tailSet(java.lang.Object,boolean):773:773 -> tailSet
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedSet -> com.android.tools.r8.r.a.a.b.f$l:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> f
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.Set):621:622 -> <init>
    1:13:boolean removeAll(java.util.Collection):627:639 -> removeAll
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedSortedSet -> com.android.tools.r8.r.a.a.b.f$m:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> f
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.SortedSet,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):650:651 -> <init>
    1:1:java.util.Comparator comparator():660:660 -> comparator
    1:1:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> f
    1:1:java.util.SortedSet getSortedSetDelegate():655 -> f
    2:2:java.util.SortedSet getSortedSetDelegate():655:655 -> f
    1:2:java.lang.Object first():665:666 -> first
    1:2:java.util.SortedSet headSet(java.lang.Object):677:678 -> headSet
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getKey():402:402 -> headSet
    3:3:java.util.SortedSet headSet(java.lang.Object):679 -> headSet
    4:4:java.util.SortedSet headSet(java.lang.Object):680:680 -> headSet
    5:5:com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getAncestor():527:527 -> headSet
    5:5:java.util.SortedSet headSet(java.lang.Object):681 -> headSet
    6:6:java.util.SortedSet headSet(java.lang.Object):681:681 -> headSet
    1:2:java.lang.Object last():671:672 -> last
    1:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):686:687 -> subSet
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getKey():402:402 -> subSet
    3:3:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):688 -> subSet
    4:4:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):689:689 -> subSet
    5:5:com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getAncestor():527:527 -> subSet
    5:5:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):690 -> subSet
    6:6:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):690:690 -> subSet
    1:2:java.util.SortedSet tailSet(java.lang.Object):695:696 -> tailSet
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getKey():402:402 -> tailSet
    3:3:java.util.SortedSet tailSet(java.lang.Object):697 -> tailSet
    4:4:java.util.SortedSet tailSet(java.lang.Object):698:698 -> tailSet
    5:5:com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getAncestor():527:527 -> tailSet
    5:5:java.util.SortedSet tailSet(java.lang.Object):699 -> tailSet
    6:6:java.util.SortedSet tailSet(java.lang.Object):699:699 -> tailSet
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset -> com.android.tools.r8.r.a.a.b.j:
    java.util.Map backingMap -> c
    long size -> d
    1:3:void <init>(java.util.Map):60:62 -> <init>
    1:1:java.util.Map access$000(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset):48:48 -> a
    2:2:long access$102(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset,long):48:48 -> a
    3:22:int remove(java.lang.Object,int):247:266 -> a
    1:1:long access$100(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset):48:48 -> b
    2:2:int distinctElements():145:145 -> b
    3:4:int count(java.lang.Object):208:209 -> b
    5:19:int add(java.lang.Object,int):225:239 -> b
    1:1:long access$110(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset):48:48 -> c
    2:7:int setCount(java.lang.Object,int):274:279 -> c
    8:8:int getAndSet(com.android.tools.r8.com.google.common.collect.Count,int):299:299 -> c
    8:8:int setCount(java.lang.Object,int):280 -> c
    9:9:int setCount(java.lang.Object,int):282:282 -> c
    10:10:int getAndSet(com.android.tools.r8.com.google.common.collect.Count,int):299:299 -> c
    10:10:int setCount(java.lang.Object,int):283 -> c
    11:15:int setCount(java.lang.Object,int):286:290 -> c
    1:5:void clear():136:140 -> clear
    1:2:java.util.Iterator entryIterator():86:87 -> d
    1:1:java.util.Set entrySet():81:81 -> entrySet
    1:1:int size():152:152 -> size
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset$1 -> com.android.tools.r8.r.a.a.b.i:
    java.util.Map$Entry toRemove -> a
    java.util.Iterator val$backingEntries -> b
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset this$0 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset,java.util.Iterator):87:87 -> <init>
    1:1:boolean hasNext():92:92 -> hasNext
    1:3:com.android.tools.r8.com.google.common.collect.Multiset$Entry next():97:99 -> next
    1:3:java.lang.Object next():87 -> next
    1:4:void remove():121:124 -> remove
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset$1$1 -> com.android.tools.r8.r.a.a.b.h:
    java.util.Map$Entry val$mapEntry -> a
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset$1 this$1 -> b
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset$1,java.util.Map$Entry):99:99 -> <init>
    1:3:int getCount():107:109 -> a
    4:4:java.lang.Object getElement():102:102 -> a
    4:4:int getCount():109 -> a
    5:10:int getCount():109:114 -> a
    1:1:java.lang.Object getElement():102:102 -> b
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset$MapBasedMultisetIterator -> com.android.tools.r8.r.a.a.b.j$a:
    java.util.Map$Entry currentEntry -> b
    java.util.Iterator entryIterator -> a
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset this$0 -> e
    int occurrencesLeft -> c
    boolean canRemove -> d
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset):171:172 -> <init>
    1:1:boolean hasNext():177:177 -> hasNext
    1:7:java.lang.Object next():182:188 -> next
    1:10:void remove():193:202 -> remove
    11:11:void remove():196:196 -> remove
com.android.tools.r8.com.google.common.collect.AbstractMapEntry -> com.android.tools.r8.r.a.a.b.k:
    1:1:void <init>():31:31 -> <init>
    1:4:boolean equals(java.lang.Object):46:49 -> equals
    1:3:int hashCode():56:58 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):41:41 -> setValue
    1:1:java.lang.String toString():66:66 -> toString
com.android.tools.r8.com.google.common.collect.AbstractMultimap -> com.android.tools.r8.r.a.a.b.m:
    java.util.Map asMap -> d
    java.util.Collection entries -> a
    java.util.Set keySet -> b
    com.android.tools.r8.com.google.common.collect.Multiset keys -> c
    1:1:void <init>():40:40 -> <init>
    1:2:boolean containsEntry(java.lang.Object,java.lang.Object):59:60 -> a
    3:4:java.util.Collection entries():114:115 -> a
    1:2:java.util.Map asMap():240:241 -> b
    1:2:com.android.tools.r8.com.google.common.collect.Multiset keys():180:181 -> c
    java.util.Map createAsMap() -> d
    1:1:java.util.Collection createEntries():122:122 -> e
    1:3:boolean com.android.tools.r8.com.google.common.collect.Multimaps.equalsImpl(com.android.tools.r8.com.google.common.collect.Multimap,java.lang.Object):2220:2222 -> equals
    1:3:boolean equals(java.lang.Object):250 -> equals
    1:1:java.util.Set createKeySet():173:173 -> f
    1:1:com.android.tools.r8.com.google.common.collect.Multiset createKeys():185:185 -> g
    java.util.Iterator entryIterator() -> h
    1:1:int hashCode():263:263 -> hashCode
    java.util.Spliterator entrySpliterator() -> i
    1:1:boolean isEmpty():43:43 -> isEmpty
    1:2:java.util.Set keySet():168:169 -> keySet
    1:2:boolean remove(java.lang.Object,java.lang.Object):66:67 -> remove
    1:1:java.lang.String toString():274:274 -> toString
com.android.tools.r8.com.google.common.collect.AbstractMultimap$1 -> com.android.tools.r8.r.a.a.b.l:
com.android.tools.r8.com.google.common.collect.AbstractMultimap$Entries -> com.android.tools.r8.r.a.a.b.m$a:
    com.android.tools.r8.com.google.common.collect.AbstractMultimap this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMultimap):127:127 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMultimap,com.android.tools.r8.com.google.common.collect.AbstractMultimap$1):127:127 -> <init>
    1:1:java.util.Iterator iterator():135:135 -> iterator
    1:1:java.util.Spliterator spliterator():140:140 -> spliterator
com.android.tools.r8.com.google.common.collect.AbstractMultiset -> com.android.tools.r8.r.a.a.b.n:
    java.util.Set elementSet -> a
    java.util.Set entrySet -> b
    1:1:void <init>():47:47 -> <init>
    int remove(java.lang.Object,int) -> a
    1:1:java.util.Set createEntrySet():212:212 -> a
    2:6:boolean com.android.tools.r8.com.google.common.collect.Multisets.setCountImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.lang.Object,int,int):966:970 -> a
    2:6:boolean setCount(java.lang.Object,int,int):115 -> a
    1:1:boolean add(java.lang.Object):84:84 -> add
    1:4:boolean com.android.tools.r8.com.google.common.collect.Multisets.addAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):905:908 -> addAll
    1:4:boolean addAll(java.util.Collection):129 -> addAll
    5:5:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.Multisets.cast(java.lang.Iterable):1148:1148 -> addAll
    5:5:boolean com.android.tools.r8.com.google.common.collect.Multisets.addAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):909 -> addAll
    5:5:boolean addAll(java.util.Collection):129 -> addAll
    6:10:boolean com.android.tools.r8.com.google.common.collect.Multisets.addAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):910:914 -> addAll
    6:10:boolean addAll(java.util.Collection):129 -> addAll
    int count(java.lang.Object) -> b
    int distinctElements() -> b
    1:1:int add(java.lang.Object,int):91:91 -> b
    1:9:int com.android.tools.r8.com.google.common.collect.Multisets.setCountImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.lang.Object,int):948:956 -> c
    1:9:int setCount(java.lang.Object,int):109 -> c
    java.util.Iterator entryIterator() -> d
    1:3:java.util.Set entrySet():186:188 -> entrySet
    1:1:boolean equals(java.lang.Object):226:226 -> equals
    1:1:java.util.Set elementSet():155:155 -> h
    2:2:java.util.Set createElementSet():167:167 -> h
    2:2:java.util.Set elementSet():157 -> h
    3:3:java.util.Set elementSet():157:157 -> h
    1:1:int hashCode():237:237 -> hashCode
    1:1:boolean isEmpty():57:57 -> isEmpty
    1:1:boolean remove(java.lang.Object):97:97 -> remove
    1:6:boolean com.android.tools.r8.com.google.common.collect.Multisets.removeAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):923:928 -> removeAll
    1:6:boolean removeAll(java.util.Collection):135 -> removeAll
    1:6:boolean com.android.tools.r8.com.google.common.collect.Multisets.retainAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):936:941 -> retainAll
    1:6:boolean retainAll(java.util.Collection):141 -> retainAll
    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> retainAll
    7:7:boolean com.android.tools.r8.com.google.common.collect.Multisets.retainAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):935 -> retainAll
    7:7:boolean retainAll(java.util.Collection):141 -> retainAll
    1:4:int com.android.tools.r8.com.google.common.collect.Multisets.sizeImpl(com.android.tools.r8.com.google.common.collect.Multiset):1138:1141 -> size
    1:4:int size():52 -> size
    1:1:java.lang.String toString():248:248 -> toString
com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet -> com.android.tools.r8.r.a.a.b.n$a:
    com.android.tools.r8.com.google.common.collect.AbstractMultiset this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMultiset):171:171 -> <init>
com.android.tools.r8.com.google.common.collect.AbstractMultiset$EntrySet -> com.android.tools.r8.r.a.a.b.n$b:
    com.android.tools.r8.com.google.common.collect.AbstractMultiset this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMultiset):194:194 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.Multiset multiset():197:197 -> a
    1:1:java.util.Iterator iterator():202:202 -> iterator
    1:1:int size():207:207 -> size
com.android.tools.r8.com.google.common.collect.ArrayListMultimap -> com.android.tools.r8.r.a.a.b.o:
    int expectedValuesPerKey -> g
    1:1:void <init>():112:112 -> <init>
    2:2:void com.android.tools.r8.com.google.common.collect.ArrayListMultimapGwtSerializationDependencies.<init>(java.util.Map):36:36 -> <init>
    2:2:void <init>():112 -> <init>
    3:3:void <init>():113:113 -> <init>
    1:1:boolean containsEntry(java.lang.Object,java.lang.Object):65:65 -> a
    2:2:java.util.Collection entries():65:65 -> a
    3:3:java.util.List get(java.lang.Object):65:65 -> a
    1:1:java.util.Map asMap():65:65 -> b
    1:1:com.android.tools.r8.com.google.common.collect.Multiset keys():65:65 -> c
    1:1:void clear():65:65 -> clear
    1:1:boolean containsKey(java.lang.Object):65:65 -> containsKey
    1:1:boolean equals(java.lang.Object):65:65 -> equals
    1:1:int com.android.tools.r8.com.google.common.collect.AbstractMultimap.hashCode():263:263 -> hashCode
    1:1:int hashCode():65 -> hashCode
    1:1:boolean isEmpty():65:65 -> isEmpty
    1:1:java.util.List createCollection():137:137 -> j
    1:1:java.util.Collection createCollection():65 -> j
    1:1:com.android.tools.r8.com.google.common.collect.ArrayListMultimap create():80:80 -> k
    1:1:java.util.Set keySet():65:65 -> keySet
    1:1:boolean put(java.lang.Object,java.lang.Object):65:65 -> put
    1:2:boolean com.android.tools.r8.com.google.common.collect.AbstractMultimap.remove(java.lang.Object,java.lang.Object):66:67 -> remove
    1:2:boolean remove(java.lang.Object,java.lang.Object):65 -> remove
    1:1:int size():65:65 -> size
    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.AbstractMultimap.toString():274:274 -> toString
    1:1:java.lang.String toString():65 -> toString
com.android.tools.r8.com.google.common.collect.BiMap -> com.android.tools.r8.r.a.a.b.p:
    java.lang.Object forcePut(java.lang.Object,java.lang.Object) -> a
    com.android.tools.r8.com.google.common.collect.BiMap inverse() -> f
com.android.tools.r8.com.google.common.collect.CollectCollectors -> com.android.tools.r8.r.a.a.b.q:
    java.util.stream.Collector TO_IMMUTABLE_SET -> a
    1:25:void <clinit>():44:68 -> <clinit>
    1:1:java.util.stream.Collector toImmutableMap(java.util.function.Function,java.util.function.Function):60:60 -> a
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    2:2:java.util.stream.Collector toImmutableMap(java.util.function.Function,java.util.function.Function):59 -> a
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    3:3:java.util.stream.Collector toImmutableMap(java.util.function.Function,java.util.function.Function):58 -> a
    4:4:void lambda$toImmutableMap$1(java.util.function.Function,java.util.function.Function,com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder,java.lang.Object):62:62 -> a
    5:5:java.util.stream.Collector toImmutableSet():75:75 -> a
com.android.tools.r8.com.google.common.collect.CollectSpliterators$1 -> com.android.tools.r8.r.a.a.b.r:
    java.util.Spliterator val$fromSpliterator -> a
    java.util.function.Function val$function -> b
    1:1:void <init>(java.util.Spliterator,java.util.function.Function):105:105 -> <init>
    1:1:void lambda$forEachRemaining$1(java.util.function.Consumer,java.util.function.Function,java.lang.Object):115:115 -> a
    1:1:void lambda$tryAdvance$0(java.util.function.Consumer,java.util.function.Function,java.lang.Object):110:110 -> b
    1:1:int characteristics():131:131 -> characteristics
    1:1:long estimateSize():126:126 -> estimateSize
    1:1:void forEachRemaining(java.util.function.Consumer):115:115 -> forEachRemaining
    1:1:boolean tryAdvance(java.util.function.Consumer):109:109 -> tryAdvance
    1:2:java.util.Spliterator trySplit():120:121 -> trySplit
com.android.tools.r8.com.google.common.collect.CollectSpliterators$1FlatMapSpliterator -> com.android.tools.r8.r.a.a.b.s:
    long estimatedSize -> d
    java.util.function.Function val$function -> e
    java.util.Spliterator from -> b
    java.util.Spliterator prefix -> a
    int characteristics -> c
    1:5:void <init>(java.util.Spliterator,java.util.Spliterator,int,long,java.util.function.Function):216:220 -> <init>
    1:1:void lambda$tryAdvance$0(java.util.function.Function,java.lang.Object):234:234 -> a
    2:2:void lambda$forEachRemaining$1(java.util.function.Function,java.util.function.Consumer,java.lang.Object):246:246 -> a
    1:1:int characteristics():284:284 -> characteristics
    1:4:long estimateSize():276:279 -> estimateSize
    1:6:void forEachRemaining(java.util.function.Consumer):242:247 -> forEachRemaining
    1:9:boolean tryAdvance(java.util.function.Consumer):226:234 -> tryAdvance
    1:16:java.util.Spliterator trySplit():252:267 -> trySplit
com.android.tools.r8.com.google.common.collect.CollectSpliterators$1Splitr -> com.android.tools.r8.r.a.a.b.t:
    java.util.function.Predicate val$predicate -> c
    java.lang.Object holder -> a
    java.util.Spliterator val$fromSpliterator -> b
    1:2:void <init>(java.util.Spliterator,java.util.function.Predicate):141:142 -> <init>
    1:1:void accept(java.lang.Object):146:146 -> accept
    1:1:int characteristics():182:182 -> characteristics
    1:1:long estimateSize():172:172 -> estimateSize
    1:1:java.util.Comparator getComparator():177:177 -> getComparator
    1:8:boolean tryAdvance(java.util.function.Consumer):151:158 -> tryAdvance
    1:2:java.util.Spliterator trySplit():166:167 -> trySplit
    3:3:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.filter(java.util.Spliterator,java.util.function.Predicate):189:189 -> trySplit
    3:3:java.util.Spliterator trySplit():167 -> trySplit
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> trySplit
    4:4:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.filter(java.util.Spliterator,java.util.function.Predicate):140 -> trySplit
    4:4:java.util.Spliterator trySplit():167 -> trySplit
com.android.tools.r8.com.google.common.collect.CollectSpliterators$1WithCharacteristics -> com.android.tools.r8.r.a.a.b.u:
    java.util.Comparator val$comparator -> c
    java.util.Spliterator delegate -> a
    int val$extraCharacteristics -> b
    1:2:void <init>(java.util.Spliterator,int,java.util.Comparator):54:55 -> <init>
    1:1:int characteristics():82:82 -> characteristics
    1:1:long estimateSize():77:77 -> estimateSize
    1:1:void forEachRemaining(java.util.function.Consumer):65:65 -> forEachRemaining
    1:4:java.util.Comparator getComparator():87:90 -> getComparator
    1:1:boolean tryAdvance(java.util.function.Consumer):60:60 -> tryAdvance
    1:2:java.util.Spliterator trySplit():71:72 -> trySplit
com.android.tools.r8.com.google.common.collect.Collections2 -> com.android.tools.r8.r.a.a.b.v:
    java.util.Spliterator com.android.tools.r8.com.google.common.collect.Streams.lambda$concat$0(java.util.Spliterator) -> a
    1:1:void com.android.tools.r8.com.google.common.collect.CollectPreconditions.checkEntryNotNull(java.lang.Object,java.lang.Object):34:34 -> a
    2:2:void com.android.tools.r8.com.google.common.collect.CollectPreconditions.checkEntryNotNull(java.lang.Object,java.lang.Object):32:32 -> a
    3:4:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):40:41 -> a
    5:5:java.util.Comparator com.android.tools.r8.com.google.common.collect.SortedIterables.comparator(java.util.SortedSet):53:53 -> a
    5:5:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):41 -> a
    6:6:com.android.tools.r8.com.google.common.collect.Ordering com.android.tools.r8.com.google.common.collect.Ordering.natural():161:161 -> a
    6:6:java.util.Comparator com.android.tools.r8.com.google.common.collect.SortedIterables.comparator(java.util.SortedSet):55 -> a
    6:6:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):41 -> a
    7:12:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):42:47 -> a
    13:13:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    13:13:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):38 -> a
    14:14:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    14:14:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):37 -> a
    15:15:int com.android.tools.r8.com.google.common.collect.CollectPreconditions.checkNonnegative(int,java.lang.String):41:41 -> a
    16:61:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.indexed(int,int,java.util.function.IntFunction,java.util.Comparator):49:94 -> a
    62:63:int com.android.tools.r8.com.google.common.collect.Hashing.closedTableSize(int,double) -> a
    64:64:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList():88:88 -> a
    64:64:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.util.Iterator):164 -> a
    65:65:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.util.Iterator):165:165 -> a
    66:66:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.Iterators.emptyListIterator():90:90 -> a
    66:66:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.emptyIterator():78 -> a
    67:67:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.map(java.util.Spliterator,java.util.function.Function):105:105 -> a
    68:68:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    68:68:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.map(java.util.Spliterator,java.util.function.Function):104 -> a
    69:69:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    69:69:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.map(java.util.Spliterator,java.util.function.Function):103 -> a
    70:81:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.concat(java.util.stream.Stream[]):148:159 -> a
    82:82:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.concat(java.util.stream.Stream[]):158:158 -> a
    83:83:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.concat(java.util.stream.Stream[]):157:157 -> a
    84:170:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.flatMap(java.util.Spliterator,java.util.function.Function,int,long):201:287 -> a
    171:171:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    171:171:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.flatMap(java.util.Spliterator,java.util.function.Function,int,long):208 -> a
    172:172:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    172:172:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.flatMap(java.util.Spliterator,java.util.function.Function,int,long):207 -> a
    173:175:boolean com.android.tools.r8.com.google.common.collect.Iterators.removeAll(java.util.Iterator,java.util.Collection):208:210 -> a
    176:176:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    176:176:boolean com.android.tools.r8.com.google.common.collect.Iterators.removeAll(java.util.Iterator,java.util.Collection):206 -> a
    177:177:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219:219 -> a
    178:178:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[],int):225:225 -> a
    178:178:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219 -> a
    179:179:java.lang.Object com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementNotNull(java.lang.Object,int):235:235 -> a
    180:180:int com.android.tools.r8.com.google.common.collect.Maps.capacity(int):309:309 -> a
    181:181:boolean com.android.tools.r8.com.google.common.collect.Iterables.addAll(java.util.Collection,java.lang.Iterable):331:331 -> a
    182:182:java.util.Collection cast(java.lang.Iterable):377:377 -> a
    182:182:boolean com.android.tools.r8.com.google.common.collect.Iterables.addAll(java.util.Collection,java.lang.Iterable):332 -> a
    183:185:boolean com.android.tools.r8.com.google.common.collect.Iterables.addAll(java.util.Collection,java.lang.Iterable):333:335 -> a
    186:186:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    186:186:boolean com.android.tools.r8.com.google.common.collect.Iterables.addAll(java.util.Collection,java.lang.Iterable):335 -> a
    187:195:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.mapWithIndex(java.util.stream.Stream,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):344:352 -> a
    196:243:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.mapWithIndex(java.util.stream.Stream,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):349:396 -> a
    244:244:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    244:244:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.mapWithIndex(java.util.stream.Stream,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):343 -> a
    245:245:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    245:245:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.mapWithIndex(java.util.stream.Stream,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):342 -> a
    246:247:boolean com.android.tools.r8.com.google.common.collect.Iterators.addAll(java.util.Collection,java.util.Iterator):372:373 -> a
    248:248:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    248:248:boolean com.android.tools.r8.com.google.common.collect.Iterators.addAll(java.util.Collection,java.util.Iterator):370 -> a
    249:249:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    249:249:boolean com.android.tools.r8.com.google.common.collect.Iterators.addAll(java.util.Collection,java.util.Iterator):369 -> a
    250:250:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.cycle(java.lang.Iterable):411:411 -> a
    251:251:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    251:251:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.cycle(java.lang.Iterable):410 -> a
    252:252:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
    253:253:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.Object):459:459 -> a
    253:253:void com.android.tools.r8.com.google.common.collect.CollectPreconditions.checkRemove(boolean):65 -> a
    254:254:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator,java.util.Iterator):503:503 -> a
    255:255:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.consumingForArray(java.lang.Object[]):471:471 -> a
    255:255:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator,java.util.Iterator):503 -> a
    256:256:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator):578:578 -> a
    256:256:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator,java.util.Iterator):503 -> a
    257:257:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    257:257:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator,java.util.Iterator):502 -> a
    258:258:boolean com.android.tools.r8.com.google.common.collect.Iterables.any(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):627:627 -> a
    259:262:int com.android.tools.r8.com.google.common.collect.Iterators.indexOf(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):796:799 -> a
    259:262:boolean com.android.tools.r8.com.google.common.collect.Iterators.any(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):688 -> a
    259:262:boolean com.android.tools.r8.com.google.common.collect.Iterables.any(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):627 -> a
    263:263:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.find(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):669:669 -> a
    264:266:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.find(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):745:747 -> a
    264:266:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.find(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):669 -> a
    267:267:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    267:267:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.find(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):744 -> a
    267:267:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.find(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):669 -> a
    268:268:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    268:268:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.find(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):743 -> a
    268:268:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.find(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):669 -> a
    269:276:java.util.List com.android.tools.r8.com.google.common.collect.Lists.reverse(java.util.List):840:847 -> a
    277:289:boolean com.android.tools.r8.com.google.common.collect.Multisets.equalsImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.lang.Object):880:892 -> a
    290:293:com.android.tools.r8.com.google.common.collect.Sets$SetView com.android.tools.r8.com.google.common.collect.Sets.difference(java.util.Set,java.util.Set):911:914 -> a
    294:295:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.limit(java.util.Iterator,int):951:952 -> a
    296:296:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    296:296:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.limit(java.util.Iterator,int):950 -> a
    297:314:boolean com.android.tools.r8.com.google.common.collect.Lists.equalsImpl(java.util.List,java.lang.Object):1017:1034 -> a
    315:325:boolean com.android.tools.r8.com.google.common.collect.Iterators.elementsEqual(java.util.Iterator,java.util.Iterator):274:284 -> a
    315:325:boolean com.android.tools.r8.com.google.common.collect.Lists.equalsImpl(java.util.List,java.lang.Object):1034 -> a
    326:331:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.Iterators.forArray(java.lang.Object[],int,int,int):1085:1090 -> a
    332:332:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.Iterators.emptyListIterator():90:90 -> a
    332:332:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.Iterators.forArray(java.lang.Object[],int,int,int):1092 -> a
    333:333:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.Iterators.forArray(java.lang.Object[],int,int,int):1094:1094 -> a
    334:334:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.singletonIterator(java.lang.Object):1104:1104 -> a
    335:335:java.util.Spliterator com.android.tools.r8.com.google.common.collect.Multisets.lambda$spliteratorImpl$2(com.android.tools.r8.com.google.common.collect.Multiset$Entry):1126:1126 -> a
    336:338:com.android.tools.r8.com.google.common.collect.ImmutableMultiset com.android.tools.r8.com.google.common.collect.Multisets.copyHighestCountFirst(com.android.tools.r8.com.google.common.collect.Multiset):1159:1161 -> a
    339:340:int com.android.tools.r8.com.google.common.collect.Sets.hashCodeImpl(java.util.Set):1770:1771 -> a
    341:345:boolean com.android.tools.r8.com.google.common.collect.Sets.equalsImpl(java.util.Set,java.lang.Object):1786:1790 -> a
    346:349:java.util.NavigableSet com.android.tools.r8.com.google.common.collect.Sets.unmodifiableNavigableSet(java.util.NavigableSet):1817:1820 -> a
    350:351:boolean com.android.tools.r8.com.google.common.collect.Sets.removeAllImpl(java.util.Set,java.util.Iterator):1980:1981 -> a
    352:365:boolean com.android.tools.r8.com.google.common.collect.Sets.removeAllImpl(java.util.Set,java.util.Collection):1988:2001 -> a
    366:366:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    366:366:boolean com.android.tools.r8.com.google.common.collect.Sets.removeAllImpl(java.util.Set,java.util.Collection):1987 -> a
    367:367:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.safeGet(java.util.Map,java.lang.Object):3706:3706 -> a
    368:368:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    368:368:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.safeGet(java.util.Map,java.lang.Object):3704 -> a
    369:369:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.keyOrNull(java.util.Map$Entry):3891:3891 -> a
    370:375:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.com.google.common.collect.Maps.indexMap(java.util.Collection):4375:4380 -> a
    370:375:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.combinations(java.util.Set,int):1668 -> a
    376:379:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.combinations(java.util.Set,int):1669:1672 -> a
    380:380:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableSet.of(java.lang.Object):83:83 -> a
    380:380:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.combinations(java.util.Set,int):1672 -> a
    381:384:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.combinations(java.util.Set,int):1673:1676 -> a
    1:1:int com.android.tools.r8.com.google.common.collect.Hashing.smearedHash(java.lang.Object):54:54 -> b
    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getOnlyElement(java.lang.Iterable):266:266 -> b
    3:17:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.getOnlyElement(java.util.Iterator):314:328 -> b
    3:17:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getOnlyElement(java.lang.Iterable):266 -> b
    18:18:java.util.HashMap com.android.tools.r8.com.google.common.collect.Maps.newHashMapWithExpectedSize(int):300:300 -> b
    19:19:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.newConcurrentHashSet():310:310 -> b
    20:20:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.filter(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):575:575 -> b
    21:21:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    21:21:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.filter(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):574 -> b
    22:22:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    22:22:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.filter(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):573 -> b
    23:26:com.android.tools.r8.com.google.common.collect.Sets$SetView com.android.tools.r8.com.google.common.collect.Sets.intersection(java.util.Set,java.util.Set):839:842 -> b
    27:29:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.pollNext(java.util.Iterator):1017:1019 -> b
    30:30:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.forArray(java.lang.Object[]):1054:1054 -> b
    31:38:java.util.Spliterator com.android.tools.r8.com.google.common.collect.Multisets.spliteratorImpl(com.android.tools.r8.com.google.common.collect.Multiset):1123:1130 -> b
    39:39:java.util.Spliterator com.android.tools.r8.com.google.common.collect.Multisets.spliteratorImpl(com.android.tools.r8.com.google.common.collect.Multiset):1124:1124 -> b
    1:1:int com.android.tools.r8.com.google.common.collect.Hashing.smear(int):50:50 -> c
    2:2:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.stream(java.util.Iterator):82:82 -> c
    3:3:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Object[]):114:114 -> c
    4:7:int com.android.tools.r8.com.google.common.collect.Lists.computeArrayListCapacity(int):122:125 -> c
    4:7:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Object[]):114 -> c
    8:9:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Object[]):115:116 -> c
    10:10:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> c
    10:10:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Object[]):112 -> c
    11:11:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Iterable):148:148 -> c
    12:12:java.util.Collection cast(java.lang.Iterable):377:377 -> c
    12:12:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Iterable):149 -> c
    13:14:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Iterable):149:150 -> c
    15:15:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> c
    15:15:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Iterable):146 -> c
    16:16:java.util.HashMap com.android.tools.r8.com.google.common.collect.Maps.newHashMap():283:283 -> c
    17:20:com.android.tools.r8.com.google.common.collect.Sets$SetView com.android.tools.r8.com.google.common.collect.Sets.union(java.util.Set,java.util.Set):741:744 -> c
    1:6:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.unmodifiableIterator(java.util.Iterator):132:137 -> d
    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> d
    7:7:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.unmodifiableIterator(java.util.Iterator):131 -> d
    8:8:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet():218:218 -> d
    9:9:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Object[]):235:235 -> d
    10:10:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSetWithExpectedSize(int):253:253 -> d
    10:10:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Object[]):235 -> d
    11:11:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Object[]):236:236 -> d
    12:12:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):275:275 -> d
    13:13:java.util.Collection cast(java.lang.Iterable):377:377 -> d
    13:13:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):276 -> d
    14:15:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):276:277 -> d
    16:16:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet():218:218 -> d
    16:16:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.util.Iterator):293 -> d
    16:16:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):277 -> d
    17:17:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.util.Iterator):294:294 -> d
    17:17:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):277 -> d
    1:3:int com.android.tools.r8.com.google.common.collect.Iterables.size(java.lang.Iterable):126:128 -> e
    4:8:int com.android.tools.r8.com.google.common.collect.Iterators.size(java.util.Iterator):168:172 -> e
    4:8:int com.android.tools.r8.com.google.common.collect.Iterables.size(java.lang.Iterable):128 -> e
    9:9:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> e
    1:3:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.stream(java.lang.Iterable):62:64 -> f
    4:4:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> f
    4:4:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.newIdentityHashSet():466 -> f
    5:5:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.newIdentityHashSet():466:466 -> f
    1:1:java.util.LinkedHashSet com.android.tools.r8.com.google.common.collect.Sets.newLinkedHashSet():347:347 -> g
com.android.tools.r8.com.google.common.collect.ComparatorOrdering -> com.android.tools.r8.r.a.a.b.w:
    java.util.Comparator comparator -> a
    1:2:void <init>(java.util.Comparator):31:32 -> <init>
    1:1:int compare(java.lang.Object,java.lang.Object):37:37 -> compare
    1:3:boolean equals(java.lang.Object):45:47 -> equals
    1:1:int hashCode():54:54 -> hashCode
    1:1:java.lang.String toString():59:59 -> toString
com.android.tools.r8.com.google.common.collect.Count -> com.android.tools.r8.r.a.a.b.x:
    int value -> a
    1:2:void <init>(int):30:31 -> <init>
    1:1:int get():35:35 -> a
    2:2:void add(int):39:39 -> a
    1:1:int addAndGet(int):43:43 -> b
    1:2:int getAndSet(int):51:52 -> c
    1:1:void set(int):47:47 -> d
    1:1:boolean equals(java.lang.Object):63:63 -> equals
    1:1:int hashCode():58:58 -> hashCode
    1:1:java.lang.String toString():68:68 -> toString
com.android.tools.r8.com.google.common.collect.EmptyImmutableListMultimap -> com.android.tools.r8.r.a.a.b.y:
    com.android.tools.r8.com.google.common.collect.EmptyImmutableListMultimap INSTANCE -> g
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>():31:31 -> <init>
com.android.tools.r8.com.google.common.collect.FluentIterable -> com.android.tools.r8.r.a.a.b.B:
    com.android.tools.r8.com.google.common.base.Optional iterableDelegate -> a
    1:2:void <init>():117:118 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.FluentIterable concat(java.lang.Iterable,java.lang.Iterable):190:190 -> a
    2:2:com.android.tools.r8.com.google.common.collect.FluentIterable concat(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable):209:209 -> a
    3:3:com.android.tools.r8.com.google.common.collect.FluentIterable concat(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable,java.lang.Iterable):232:232 -> a
    4:4:com.android.tools.r8.com.google.common.collect.FluentIterable concat(java.lang.Iterable[]):252:252 -> a
    1:4:com.android.tools.r8.com.google.common.collect.FluentIterable concatNoDefensiveCopy(java.lang.Iterable[]):258:261 -> b
    1:1:java.lang.Iterable getDelegate():127:127 -> toString
    1:1:java.lang.String toString():336 -> toString
    2:2:java.lang.String com.android.tools.r8.com.google.common.collect.Iterables.toString(java.lang.Iterable):253:253 -> toString
    2:2:java.lang.String toString():336 -> toString
    3:12:java.lang.String com.android.tools.r8.com.google.common.collect.Iterators.toString(java.util.Iterator):293:302 -> toString
    3:12:java.lang.String com.android.tools.r8.com.google.common.collect.Iterables.toString(java.lang.Iterable):253 -> toString
    3:12:java.lang.String toString():336 -> toString
com.android.tools.r8.com.google.common.collect.FluentIterable$2 -> com.android.tools.r8.r.a.a.b.A:
    java.lang.Iterable[] val$inputs -> b
    1:1:void <init>(java.lang.Iterable[]):261:261 -> <init>
    1:1:java.util.Iterator iterator():264:264 -> iterator
    2:2:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator):578:578 -> iterator
    2:2:java.util.Iterator iterator():264 -> iterator
com.android.tools.r8.com.google.common.collect.FluentIterable$2$1 -> com.android.tools.r8.r.a.a.b.z:
    com.android.tools.r8.com.google.common.collect.FluentIterable$2 this$0 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.FluentIterable$2,int):266:266 -> <init>
    1:1:java.util.Iterator get(int):269:269 -> a
    1:1:java.lang.Object get(int):266 -> a
com.android.tools.r8.com.google.common.collect.ForwardingCollection -> com.android.tools.r8.r.a.a.b.C:
    1:1:void com.android.tools.r8.com.google.common.collect.ForwardingObject.<init>():55:55 -> <init>
    1:1:void <init>():55 -> <init>
    java.lang.Object com.android.tools.r8.com.google.common.collect.ForwardingObject.delegate() -> a
    1:1:boolean add(java.lang.Object):89:89 -> add
    1:1:boolean addAll(java.util.Collection):106:106 -> addAll
    java.util.Collection delegate() -> b
    1:1:void clear():117:117 -> clear
    1:1:boolean contains(java.lang.Object):83:83 -> contains
    1:1:boolean containsAll(java.util.Collection):100:100 -> containsAll
    1:1:boolean isEmpty():78:78 -> isEmpty
    1:1:java.util.Iterator iterator():62:62 -> iterator
    1:1:boolean remove(java.lang.Object):95:95 -> remove
    1:1:boolean removeAll(java.util.Collection):73:73 -> removeAll
    1:1:boolean retainAll(java.util.Collection):112:112 -> retainAll
    1:1:int size():67:67 -> size
    1:1:java.lang.Object[] toArray():122:122 -> toArray
    2:2:java.lang.Object[] toArray(java.lang.Object[]):128:128 -> toArray
    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.ForwardingObject.toString():72:72 -> toString
    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.ForwardingObject.toString():0 -> toString
com.android.tools.r8.com.google.common.collect.ForwardingSortedSet -> com.android.tools.r8.r.a.a.b.D:
    1:1:void com.android.tools.r8.com.google.common.collect.ForwardingSet.<init>():55:55 -> <init>
    1:1:void <init>():62 -> <init>
    1:1:java.util.Comparator comparator():69:69 -> comparator
    java.util.Set com.android.tools.r8.com.google.common.collect.ForwardingSet.delegate() -> d
    java.util.SortedSet delegate() -> e
    1:1:boolean com.android.tools.r8.com.google.common.collect.ForwardingSet.equals(java.lang.Object):62:62 -> equals
    1:1:boolean com.android.tools.r8.com.google.common.collect.ForwardingSet.equals(java.lang.Object):0 -> equals
    1:1:java.lang.Object first():74:74 -> first
    1:1:int com.android.tools.r8.com.google.common.collect.ForwardingSet.hashCode():67:67 -> hashCode
    1:1:int com.android.tools.r8.com.google.common.collect.ForwardingSet.hashCode():0 -> hashCode
    1:1:java.util.SortedSet headSet(java.lang.Object):79:79 -> headSet
    1:1:java.lang.Object last():84:84 -> last
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):89:89 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):94:94 -> tailSet
com.android.tools.r8.com.google.common.collect.HashBiMap -> com.android.tools.r8.r.a.a.b.I:
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry firstInKeyInsertionOrder -> c
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry lastInKeyInsertionOrder -> d
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] hashTableVToK -> b
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] hashTableKToV -> a
    int mask -> f
    int modCount -> g
    com.android.tools.r8.com.google.common.collect.BiMap inverse -> h
    int size -> e
    1:2:void <init>(int):115:116 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry access$000(com.android.tools.r8.com.google.common.collect.HashBiMap):58:58 -> a
    2:2:void access$200(com.android.tools.r8.com.google.common.collect.HashBiMap,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):58:58 -> a
    3:3:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry access$300(com.android.tools.r8.com.google.common.collect.HashBiMap,java.lang.Object,int):58:58 -> a
    4:4:void access$500(com.android.tools.r8.com.google.common.collect.HashBiMap,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):58:58 -> a
    5:5:com.android.tools.r8.com.google.common.collect.HashBiMap create(java.util.Map):83:83 -> a
    6:6:com.android.tools.r8.com.google.common.collect.HashBiMap create(int):75:75 -> a
    6:6:com.android.tools.r8.com.google.common.collect.HashBiMap create(java.util.Map):83 -> a
    7:7:com.android.tools.r8.com.google.common.collect.HashBiMap create(java.util.Map):84:84 -> a
    8:9:void init(int):120:121 -> a
    10:10:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] createTable(int):361:361 -> a
    10:10:void init(int):122 -> a
    11:11:void init(int):122:122 -> a
    12:12:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] createTable(int):361:361 -> a
    12:12:void init(int):123 -> a
    13:18:void init(int):123:128 -> a
    19:64:void delete(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):136:181 -> a
    65:65:void delete(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):156:156 -> a
    66:66:void delete(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):140:140 -> a
    67:100:void insert(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):185:218 -> a
    101:104:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry seekByKey(java.lang.Object,int):222:225 -> a
    105:105:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry seekByKey(java.lang.Object,int):224:224 -> a
    106:106:java.lang.Object forcePut(java.lang.Object,java.lang.Object):268:268 -> a
    107:136:java.lang.Object put(java.lang.Object,java.lang.Object,boolean):272:301 -> a
    137:166:java.lang.Object putInverse(java.lang.Object,java.lang.Object,boolean):308:337 -> a
    137:166:java.lang.Object access$800(com.android.tools.r8.com.google.common.collect.HashBiMap,java.lang.Object,java.lang.Object,boolean):58 -> a
    167:167:java.lang.Object putInverse(java.lang.Object,java.lang.Object,boolean):308:308 -> a
    167:167:java.lang.Object access$800(com.android.tools.r8.com.google.common.collect.HashBiMap,java.lang.Object,java.lang.Object,boolean):58 -> a
    1:1:int access$100(com.android.tools.r8.com.google.common.collect.HashBiMap):58:58 -> b
    2:2:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry access$400(com.android.tools.r8.com.google.common.collect.HashBiMap,java.lang.Object,int):58:58 -> b
    3:6:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry seekByValue(java.lang.Object,int):233:236 -> b
    7:7:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry seekByValue(java.lang.Object,int):235:235 -> b
    1:1:int access$700(com.android.tools.r8.com.google.common.collect.HashBiMap):58:58 -> c
    2:2:java.util.Iterator entryIterator():474:474 -> c
    1:6:void clear():380:385 -> clear
    1:1:boolean containsKey(java.lang.Object):245:245 -> containsKey
    1:1:boolean containsValue(java.lang.Object):250:250 -> containsValue
    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap.entrySet():3666:3666 -> entrySet
    1:1:java.util.Set entrySet():57 -> entrySet
    1:1:com.android.tools.r8.com.google.common.collect.BiMap inverse():547:547 -> f
    1:4:void forEach(java.util.function.BiConsumer):525:528 -> forEach
    5:5:void forEach(java.util.function.BiConsumer):527:527 -> forEach
    6:6:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    6:6:void forEach(java.util.function.BiConsumer):524 -> forEach
    1:1:java.lang.Object get(java.lang.Object):256:256 -> get
    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.valueOrNull(java.util.Map$Entry):3896:3896 -> get
    2:2:java.lang.Object get(java.lang.Object):256 -> get
    1:1:com.android.tools.r8.com.google.common.collect.HashBiMap create(int):75:75 -> h
    1:1:com.android.tools.r8.com.google.common.collect.HashBiMap create():65 -> h
    1:3:void rehashIfNecessary():341:343 -> j
    4:4:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] createTable(int):361:361 -> j
    4:4:void rehashIfNecessary():345 -> j
    5:5:void rehashIfNecessary():345:345 -> j
    6:6:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] createTable(int):361:361 -> j
    6:6:void rehashIfNecessary():346 -> j
    7:14:void rehashIfNecessary():346:353 -> j
    15:18:void rehashIfNecessary():352:355 -> j
    1:1:java.util.Set keySet():434:434 -> keySet
    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):262:262 -> put
    1:8:java.lang.Object remove(java.lang.Object):367:374 -> remove
    1:4:void replaceAll(java.util.function.BiFunction):535:538 -> replaceAll
    5:5:java.lang.Object put(java.lang.Object,java.lang.Object):262:262 -> replaceAll
    5:5:void replaceAll(java.util.function.BiFunction):538 -> replaceAll
    6:6:void replaceAll(java.util.function.BiFunction):537:537 -> replaceAll
    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replaceAll
    7:7:void replaceAll(java.util.function.BiFunction):534 -> replaceAll
    1:1:int size():390:390 -> size
    1:1:java.util.Set values():469:469 -> values
    1:1:java.util.Collection values():57 -> values
    2:2:java.util.Set values():469:469 -> values
com.android.tools.r8.com.google.common.collect.HashBiMap$1 -> com.android.tools.r8.r.a.a.b.E:
    com.android.tools.r8.com.google.common.collect.HashBiMap this$0 -> e
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap):474:474 -> <init>
    1:1:java.util.Map$Entry output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):477:477 -> a
    1:1:java.lang.Object output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):474 -> a
com.android.tools.r8.com.google.common.collect.HashBiMap$1$MapEntry -> com.android.tools.r8.r.a.a.b.E$a:
    com.android.tools.r8.com.google.common.collect.HashBiMap$1 this$1 -> b
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry delegate -> a
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$1,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):483:484 -> <init>
    1:1:java.lang.Object getKey():489:489 -> getKey
    1:1:java.lang.Object getValue():494:494 -> getValue
    1:17:java.lang.Object setValue(java.lang.Object):499:515 -> setValue
com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry -> com.android.tools.r8.r.a.a.b.F:
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry nextInKToVBucket -> e
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry nextInVToKBucket -> f
    int valueHash -> d
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder -> g
    int keyHash -> c
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder -> h
    1:3:void <init>(java.lang.Object,int,java.lang.Object,int):99:101 -> <init>
com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse -> com.android.tools.r8.r.a.a.b.I$a:
    com.android.tools.r8.com.google.common.collect.HashBiMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap):550:550 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap,com.android.tools.r8.com.google.common.collect.HashBiMap$1):550:550 -> <init>
    1:1:java.lang.Object forcePut(java.lang.Object,java.lang.Object):584:584 -> a
    2:2:void lambda$forEach$0(java.util.function.BiConsumer,java.lang.Object,java.lang.Object):693:693 -> a
    1:1:java.util.Iterator entryIterator():645:645 -> c
    1:1:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> clear
    1:1:void clear():563 -> clear
    2:2:void clear():563:563 -> clear
    1:1:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> containsKey
    1:1:boolean containsKey(java.lang.Object):568 -> containsKey
    2:2:boolean containsKey(java.lang.Object):568:568 -> containsKey
    1:1:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> f
    1:1:com.android.tools.r8.com.google.common.collect.BiMap inverse():602 -> f
    1:1:void forEach(java.util.function.BiConsumer):693:693 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.BiConsumer):692 -> forEach
    1:1:java.lang.Object get(java.lang.Object):573:573 -> get
    1:1:java.util.Set keySet():607:607 -> keySet
    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):579:579 -> put
    1:8:java.lang.Object remove(java.lang.Object):589:596 -> remove
    1:1:void replaceAll(java.util.function.BiFunction):699:699 -> replaceAll
    2:2:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> replaceAll
    2:2:void clear():563 -> replaceAll
    2:2:void replaceAll(java.util.function.BiFunction):700 -> replaceAll
    3:3:void clear():563:563 -> replaceAll
    3:3:void replaceAll(java.util.function.BiFunction):700 -> replaceAll
    4:4:void replaceAll(java.util.function.BiFunction):702:702 -> replaceAll
    5:5:void replaceAll(java.util.function.BiFunction):701:701 -> replaceAll
    6:6:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replaceAll
    6:6:void replaceAll(java.util.function.BiFunction):698 -> replaceAll
    1:1:int size():558:558 -> size
    1:1:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> values
    1:1:java.util.Set values():640 -> values
    1:1:java.util.Collection values():550 -> values
    2:2:java.util.Set values():640:640 -> values
    2:2:java.util.Collection values():550 -> values
    3:3:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> values
    3:3:java.util.Set values():640 -> values
    4:4:java.util.Set values():640:640 -> values
com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$1 -> com.android.tools.r8.r.a.a.b.G:
    com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse this$1 -> e
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse):645:645 -> <init>
    1:1:java.util.Map$Entry output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):648:648 -> a
    1:1:java.lang.Object output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):645 -> a
com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$1$InverseEntry -> com.android.tools.r8.r.a.a.b.G$a:
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry delegate -> a
    com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$1 this$2 -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$1,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):654:655 -> <init>
    1:1:java.lang.Object getKey():660:660 -> getKey
    1:1:java.lang.Object getValue():665:665 -> getValue
    1:12:java.lang.Object setValue(java.lang.Object):670:681 -> setValue
com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$InverseKeySet -> com.android.tools.r8.r.a.a.b.I$a$a:
    com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse this$1 -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse):612:613 -> <init>
    1:1:java.util.Iterator iterator():629:629 -> iterator
    1:5:boolean remove(java.lang.Object):618:622 -> remove
com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$InverseKeySet$1 -> com.android.tools.r8.r.a.a.b.H:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$InverseKeySet):629:629 -> <init>
    1:1:java.lang.Object output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):632:632 -> a
com.android.tools.r8.com.google.common.collect.HashBiMap$Itr -> com.android.tools.r8.r.a.a.b.I$b:
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry next -> a
    com.android.tools.r8.com.google.common.collect.HashBiMap this$0 -> d
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry toRemove -> b
    int expectedModCount -> c
    1:4:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap):393:396 -> <init>
    java.lang.Object output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry) -> a
    1:4:boolean hasNext():400:403 -> hasNext
    5:5:boolean hasNext():401:401 -> hasNext
    1:8:java.lang.Object next():408:415 -> next
    9:9:java.lang.Object next():409:409 -> next
    1:7:void remove():420:426 -> remove
    8:8:void remove():421:421 -> remove
com.android.tools.r8.com.google.common.collect.HashBiMap$KeySet -> com.android.tools.r8.r.a.a.b.I$c:
    com.android.tools.r8.com.google.common.collect.HashBiMap this$0 -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap):439:440 -> <init>
    1:1:java.util.Iterator iterator():445:445 -> iterator
    1:7:boolean remove(java.lang.Object):455:461 -> remove
com.android.tools.r8.com.google.common.collect.HashBiMap$KeySet$1 -> com.android.tools.r8.r.a.a.b.J:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$KeySet):445:445 -> <init>
    1:1:java.lang.Object output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):448:448 -> a
com.android.tools.r8.com.google.common.collect.HashMultiset -> com.android.tools.r8.r.a.a.b.K:
    1:1:void <init>():70:70 -> <init>
    1:1:int remove(java.lang.Object,int):33:33 -> a
    2:2:boolean setCount(java.lang.Object,int,int):33:33 -> a
    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.add(java.lang.Object):84:84 -> add
    1:1:boolean add(java.lang.Object):33 -> add
    1:1:boolean addAll(java.util.Collection):33:33 -> addAll
    1:1:int add(java.lang.Object,int):33:33 -> b
    2:2:int count(java.lang.Object):33:33 -> b
    1:1:int setCount(java.lang.Object,int):33:33 -> c
    1:1:void clear():33:33 -> clear
    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.contains(java.lang.Object):62:62 -> contains
    1:1:boolean contains(java.lang.Object):33 -> contains
    1:1:com.android.tools.r8.com.google.common.collect.HashMultiset create():41:41 -> e
    1:1:java.util.Set entrySet():33:33 -> entrySet
    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.equals(java.lang.Object):226:226 -> equals
    1:1:boolean equals(java.lang.Object):33 -> equals
    1:1:java.util.Set elementSet():33:33 -> h
    1:1:int com.android.tools.r8.com.google.common.collect.AbstractMultiset.hashCode():237:237 -> hashCode
    1:1:int hashCode():33 -> hashCode
    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.isEmpty():57:57 -> isEmpty
    1:1:boolean isEmpty():33 -> isEmpty
    1:1:java.util.Iterator com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset.iterator():157:157 -> iterator
    1:1:java.util.Iterator iterator():33 -> iterator
    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.remove(java.lang.Object):97:97 -> remove
    1:1:boolean remove(java.lang.Object):33 -> remove
    1:1:boolean removeAll(java.util.Collection):33:33 -> removeAll
    1:1:boolean retainAll(java.util.Collection):33:33 -> retainAll
    1:1:int size():33:33 -> size
    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.AbstractMultiset.toString():248:248 -> toString
    1:1:java.lang.String toString():33 -> toString
com.android.tools.r8.com.google.common.collect.ImmutableAsList -> com.android.tools.r8.r.a.a.b.L:
    1:1:void <init>():34:34 -> <init>
    1:1:boolean isPartialView():56:56 -> b
    1:1:boolean contains(java.lang.Object):41:41 -> contains
    com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection() -> i
    1:1:boolean isEmpty():51:51 -> isEmpty
    1:1:int size():46:46 -> size
com.android.tools.r8.com.google.common.collect.ImmutableBiMap -> com.android.tools.r8.r.a.a.b.M:
    1:1:void <init>():341:341 -> <init>
    1:1:java.lang.Object forcePut(java.lang.Object,java.lang.Object):376:376 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createValues():363:363 -> k
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection createValues():36 -> k
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet values():358:358 -> s
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection values():36 -> s
    com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse() -> t
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap of():66:66 -> u
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet values():358:358 -> values
    1:1:java.util.Collection values():36 -> values
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet values():358:358 -> values
    2:2:java.util.Set values():36 -> values
com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder -> com.android.tools.r8.r.a.a.b.M$a:
    1:1:void <init>():159:159 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap build():153:153 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder put(java.lang.Object,java.lang.Object):172:172 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder put(java.lang.Object,java.lang.Object):153 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):240:240 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):153 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder put(java.lang.Object,java.lang.Object):172:172 -> b
    2:26:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():253:277 -> b
    27:27:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():257:257 -> b
    28:28:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of(java.lang.Object,java.lang.Object):73:73 -> b
    28:28:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():257 -> b
    29:29:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of():66:66 -> b
    29:29:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():255 -> b
com.android.tools.r8.com.google.common.collect.ImmutableBiMapFauxverideShim -> com.android.tools.r8.r.a.a.b.N:
    1:1:void <init>():32:32 -> <init>
com.android.tools.r8.com.google.common.collect.ImmutableCollection -> com.android.tools.r8.r.a.a.b.Q:
    java.lang.Object[] EMPTY_ARRAY -> a
    1:1:void <clinit>():181:181 -> <clinit>
    1:1:void <init>():168:168 -> <init>
    1:7:com.android.tools.r8.com.google.common.collect.ImmutableList asList():311:317 -> a
    8:8:void com.android.tools.r8.com.google.common.collect.RegularImmutableAsList.<init>(com.android.tools.r8.com.google.common.collect.ImmutableCollection,java.lang.Object[]):41:41 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableList asList():317 -> a
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableList asList():315:315 -> a
    10:10:com.android.tools.r8.com.google.common.collect.ImmutableList asList():313:313 -> a
    11:12:int copyIntoArray(java.lang.Object[],int):335:336 -> a
    1:1:boolean add(java.lang.Object):221:221 -> add
    1:1:boolean addAll(java.util.Collection):247:247 -> addAll
    boolean isPartialView() -> b
    1:1:void clear():297:297 -> clear
    com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator() -> d
    1:1:boolean remove(java.lang.Object):234:234 -> remove
    1:1:boolean removeAll(java.util.Collection):260:260 -> removeAll
    1:1:boolean removeIf(java.util.function.Predicate):273:273 -> removeIf
    1:1:boolean retainAll(java.util.Collection):285:285 -> retainAll
    1:1:java.util.Spliterator spliterator():178:178 -> spliterator
    1:6:java.lang.Object[] toArray():185:190 -> toArray
    7:8:java.lang.Object[] toArray(java.lang.Object[]):198:199 -> toArray
    9:14:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Platform.newArray(java.lang.Object[],int):37:42 -> toArray
    9:14:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.newArray(java.lang.Object[],int):60 -> toArray
    9:14:java.lang.Object[] toArray(java.lang.Object[]):200 -> toArray
    15:18:java.lang.Object[] toArray(java.lang.Object[]):201:204 -> toArray
    19:19:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> toArray
    19:19:java.lang.Object[] toArray(java.lang.Object[]):197 -> toArray
com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder -> com.android.tools.r8.r.a.a.b.O:
    java.lang.Object[] contents -> a
    int size -> b
    1:4:void <init>(int):459:462 -> <init>
    1:4:void ensureCapacity(int):470:473 -> a
    5:5:void ensureCapacity(int):472:472 -> a
    6:9:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object[]):489:492 -> a
    10:12:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder addAll(java.lang.Iterable):499:501 -> a
    13:14:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder.addAll(java.lang.Iterable):419:420 -> a
    13:14:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder addAll(java.lang.Iterable):503 -> a
    15:17:com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):510:512 -> a
    18:18:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    18:18:com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):509 -> a
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder add(java.lang.Object):481:482 -> b
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder add(java.lang.Object):480 -> b
com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder -> com.android.tools.r8.r.a.a.b.P:
    1:1:void <init>():370:370 -> <init>
    com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object) -> a
    1:1:int expandedCapacity(int,int):361:361 -> a
    2:2:int expandedCapacity(int,int):356:356 -> a
com.android.tools.r8.com.google.common.collect.ImmutableEntry -> com.android.tools.r8.r.a.a.b.S:
    java.lang.Object value -> b
    java.lang.Object key -> a
    1:3:void <init>(java.lang.Object,java.lang.Object):31:33 -> <init>
    1:1:java.lang.Object getKey():39:39 -> getKey
    1:1:java.lang.Object getValue():45:45 -> getValue
    1:1:java.lang.Object setValue(java.lang.Object):50:50 -> setValue
com.android.tools.r8.com.google.common.collect.ImmutableEnumMap -> com.android.tools.r8.r.a.a.b.T:
    java.util.EnumMap delegate -> e
    1:1:void com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.<init>():445:445 -> <init>
    1:1:void <init>(java.util.EnumMap):51 -> <init>
    2:3:void <init>(java.util.EnumMap):52:53 -> <init>
    1:8:com.android.tools.r8.com.google.common.collect.ImmutableMap asImmutable(java.util.EnumMap):38:45 -> a
    9:10:com.android.tools.r8.com.google.common.collect.ImmutableMap asImmutable(java.util.EnumMap):42:43 -> a
    11:11:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of(java.lang.Object,java.lang.Object):73:73 -> a
    11:11:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.com.google.common.collect.ImmutableMap.of(java.lang.Object,java.lang.Object):123 -> a
    11:11:com.android.tools.r8.com.google.common.collect.ImmutableMap asImmutable(java.util.EnumMap):43 -> a
    12:12:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.com.google.common.collect.ImmutableMap.of():113:113 -> a
    12:12:com.android.tools.r8.com.google.common.collect.ImmutableMap asImmutable(java.util.EnumMap):40 -> a
    1:1:boolean containsKey(java.lang.Object):73:73 -> containsKey
    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.entrySet():445:445 -> entrySet
    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.entrySet():0 -> entrySet
    1:4:boolean equals(java.lang.Object):86:89 -> equals
    1:1:void forEach(java.util.function.BiConsumer):103:103 -> forEach
    1:1:java.lang.Object get(java.lang.Object):78:78 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createEntrySet():474:474 -> h
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createEntrySet():0 -> h
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createKeySet():457:457 -> j
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createKeySet():0 -> j
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createValues():479:479 -> k
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createValues():0 -> k
    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.keySet():445:445 -> keySet
    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.keySet():0 -> keySet
    boolean isPartialView() -> n
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator keyIterator():58:58 -> o
    1:1:java.util.Spliterator keySpliterator():63:63 -> q
    1:1:int size():68:68 -> size
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator entryIterator():94:94 -> t
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Maps.unmodifiableEntryIterator(java.util.Iterator):1462:1462 -> t
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator entryIterator():94 -> t
    1:1:java.util.Collection com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.values():445:445 -> values
    1:1:java.util.Collection com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.values():0 -> values
com.android.tools.r8.com.google.common.collect.ImmutableEnumSet -> com.android.tools.r8.r.a.a.b.U:
    java.util.EnumSet delegate -> c
    int hashCode -> d
    1:2:void <init>(java.util.EnumSet):58:59 -> <init>
    1:7:com.android.tools.r8.com.google.common.collect.ImmutableSet asImmutable(java.util.EnumSet):38:44 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSet asImmutable(java.util.EnumSet):42:42 -> a
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableSet.of(java.lang.Object):83:83 -> a
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableSet asImmutable(java.util.EnumSet):42 -> a
    10:10:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableSet.of():74:74 -> a
    10:10:com.android.tools.r8.com.google.common.collect.ImmutableSet asImmutable(java.util.EnumSet):40 -> a
    boolean isPartialView() -> b
    1:1:boolean contains(java.lang.Object):89:89 -> contains
    1:4:boolean containsAll(java.util.Collection):94:97 -> containsAll
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():69:69 -> d
    1:4:boolean equals(java.lang.Object):110:113 -> equals
    1:1:void forEach(java.util.function.Consumer):79:79 -> forEach
    boolean isHashCodeFast() -> g
    1:2:int hashCode():126:127 -> hashCode
    1:1:boolean isEmpty():102:102 -> isEmpty
    1:1:java.util.Iterator iterator():33:33 -> iterator
    1:1:int size():84:84 -> size
    1:1:java.util.Spliterator spliterator():74:74 -> spliterator
    1:1:java.lang.String toString():132:132 -> toString
com.android.tools.r8.com.google.common.collect.ImmutableList -> com.android.tools.r8.r.a.a.b.W:
    1:1:void <init>():377:377 -> <init>
    com.android.tools.r8.com.google.common.collect.ImmutableList asList() -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object):93:93 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object):102:102 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object):111:111 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):120:120 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):129:129 -> a
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):138:138 -> a
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):147:147 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):156:156 -> a
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):165:165 -> a
    10:10:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):175:175 -> a
    11:11:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):185:185 -> a
    12:26:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object[]):200:214 -> a
    27:30:com.android.tools.r8.com.google.common.collect.ImmutableList copyOf(java.util.Collection):252:255 -> a
    31:31:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[]):356:356 -> a
    31:31:com.android.tools.r8.com.google.common.collect.ImmutableList copyOf(java.util.Collection):255 -> a
    32:32:com.android.tools.r8.com.google.common.collect.ImmutableList copyOf(java.util.Collection):257:257 -> a
    33:33:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[]):356:356 -> a
    34:36:int copyIntoArray(java.lang.Object[],int):582:584 -> a
    1:1:void add(int,java.lang.Object):524:524 -> add
    1:1:boolean addAll(int,java.util.Collection):499:499 -> addAll
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347:347 -> b
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[]):356:356 -> b
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347 -> b
    3:6:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[],int):370:373 -> b
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[],int):368:368 -> b
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object):93:93 -> b
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[],int):368 -> b
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableList of():81:81 -> b
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[],int):366 -> b
    10:12:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):435:437 -> b
    13:13:com.android.tools.r8.com.google.common.collect.ImmutableList of():81:81 -> b
    13:13:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):440 -> b
    14:14:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):442:442 -> b
    15:15:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object):93:93 -> b
    15:15:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):442 -> b
    16:16:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):444:444 -> b
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):393:393 -> c
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList subListUnchecked(int,int):454:454 -> c
    1:1:boolean contains(java.lang.Object):422:422 -> contains
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator():388:388 -> d
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():383 -> d
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder builder():711:711 -> e
    2:2:void com.android.tools.r8.com.google.common.collect.ImmutableList$Builder.<init>():739:739 -> e
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder builder():711 -> e
    1:1:boolean equals(java.lang.Object):663:663 -> equals
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList of():81:81 -> f
    1:3:void forEach(java.util.function.Consumer):404:406 -> forEach
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    4:4:void forEach(java.util.function.Consumer):403 -> forEach
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList reverse():598:598 -> g
    1:3:int hashCode():669:671 -> hashCode
    1:10:int com.android.tools.r8.com.google.common.collect.Lists.indexOfRandomAccess(java.util.List,java.lang.Object):1069:1078 -> indexOf
    1:10:int com.android.tools.r8.com.google.common.collect.Lists.indexOfImpl(java.util.List,java.lang.Object):1056 -> indexOf
    1:10:int indexOf(java.lang.Object):412 -> indexOf
    1:1:java.util.Iterator iterator():57:57 -> iterator
    1:2:int com.android.tools.r8.com.google.common.collect.Lists.lastIndexOfRandomAccess(java.util.List,java.lang.Object):1111:1112 -> lastIndexOf
    1:2:int com.android.tools.r8.com.google.common.collect.Lists.lastIndexOfImpl(java.util.List,java.lang.Object):1091 -> lastIndexOf
    1:2:int lastIndexOf(java.lang.Object):417 -> lastIndexOf
    1:1:java.util.ListIterator listIterator(int):57:57 -> listIterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator():388:388 -> listIterator
    2:2:java.util.ListIterator listIterator():57 -> listIterator
    1:1:java.lang.Object remove(int):537:537 -> remove
    1:1:void replaceAll(java.util.function.UnaryOperator):549:549 -> replaceAll
    1:1:java.lang.Object set(int,java.lang.Object):512:512 -> set
    1:1:void sort(java.util.Comparator):561:561 -> sort
    1:1:java.util.Spliterator spliterator():576:576 -> spliterator
    2:2:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.indexed(int,int,java.util.function.IntFunction):40:40 -> spliterator
    2:2:java.util.Spliterator spliterator():576 -> spliterator
    1:1:java.util.List subList(int,int):57:57 -> subList
com.android.tools.r8.com.google.common.collect.ImmutableList$1 -> com.android.tools.r8.r.a.a.b.V:
    com.android.tools.r8.com.google.common.collect.ImmutableList this$0 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,int,int):393:393 -> <init>
    1:1:java.lang.Object get(int):396:396 -> a
com.android.tools.r8.com.google.common.collect.ImmutableList$Builder -> com.android.tools.r8.r.a.a.b.W$a:
    1:1:void <init>():739:739 -> <init>
    2:2:void <init>(int):744:744 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder add(java.lang.Object):757:757 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object):733 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList build():819:819 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder addAll(java.lang.Iterable):772:772 -> b
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder add(java.lang.Object[]):787:787 -> b
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):809:809 -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder add(java.lang.Object):757:757 -> c
com.android.tools.r8.com.google.common.collect.ImmutableList$ReverseImmutableList -> com.android.tools.r8.r.a.a.b.X:
    com.android.tools.r8.com.google.common.collect.ImmutableList forwardList -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):604:605 -> <init>
    1:1:int size():652:652 -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):640 -> b
    2:3:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):640:641 -> b
    4:4:int size():652:652 -> b
    4:4:int reversePosition(int):613 -> b
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):641 -> b
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):641:641 -> b
    6:6:boolean isPartialView():657:657 -> b
    1:1:boolean contains(java.lang.Object):623:623 -> contains
    1:1:int size():652:652 -> d
    1:1:int reverseIndex(int):609 -> d
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList reverse():618:618 -> g
    1:1:int size():652:652 -> get
    1:1:java.lang.Object get(int):646 -> get
    2:3:java.lang.Object get(int):646:647 -> get
    4:4:int size():652:652 -> get
    4:4:int reverseIndex(int):609 -> get
    4:4:java.lang.Object get(int):647 -> get
    5:5:java.lang.Object get(int):647:647 -> get
    1:2:int indexOf(java.lang.Object):628:629 -> indexOf
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.ImmutableList.listIterator():388:388 -> iterator
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.ImmutableList.iterator():383 -> iterator
    1:1:java.util.Iterator iterator():601 -> iterator
    1:2:int lastIndexOf(java.lang.Object):634:635 -> lastIndexOf
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.ImmutableList.listIterator():388:388 -> listIterator
    1:1:java.util.ListIterator listIterator():601 -> listIterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.ImmutableList.listIterator(int):393:393 -> listIterator
    2:2:java.util.ListIterator listIterator(int):601 -> listIterator
    1:1:int size():652:652 -> size
    1:1:java.util.List subList(int,int):601:601 -> subList
com.android.tools.r8.com.google.common.collect.ImmutableList$SubList -> com.android.tools.r8.r.a.a.b.W$b:
    int offset -> b
    int length -> c
    com.android.tools.r8.com.google.common.collect.ImmutableList this$0 -> d
    1:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,int,int):461:463 -> <init>
    boolean isPartialView() -> b
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):479:480 -> b
    1:2:java.lang.Object get(int):473:474 -> get
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.ImmutableList.listIterator():388:388 -> iterator
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.ImmutableList.iterator():383 -> iterator
    1:1:java.util.Iterator iterator():457 -> iterator
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.ImmutableList.listIterator():388:388 -> listIterator
    1:1:java.util.ListIterator listIterator():457 -> listIterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.ImmutableList.listIterator(int):393:393 -> listIterator
    2:2:java.util.ListIterator listIterator(int):457 -> listIterator
    1:1:int size():468:468 -> size
    1:1:java.util.List subList(int,int):457:457 -> subList
com.android.tools.r8.com.google.common.collect.ImmutableListMultimap -> com.android.tools.r8.r.a.a.b.Z:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap,int):391:391 -> <init>
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableList get(java.lang.Object):405:406 -> get
    1:2:java.util.Collection get(java.lang.Object):52 -> get
com.android.tools.r8.com.google.common.collect.ImmutableListMultimap$Builder -> com.android.tools.r8.r.a.a.b.Y:
    1:1:void <init>():237:237 -> <init>
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.put(java.lang.Object,java.lang.Object):168:169 -> a
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap$Builder put(java.lang.Object,java.lang.Object):242 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296:296 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
    4:6:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):313:315 -> a
    4:6:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
    4:6:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
    7:7:boolean com.android.tools.r8.com.google.common.collect.ImmutableMultimap.isPartialView():476:476 -> a
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):316 -> a
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):346:346 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):320 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.of():144:144 -> a
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):347 -> a
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):320 -> a
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
    10:12:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):351:353 -> a
    10:12:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):320 -> a
    10:12:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
    10:12:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
    13:13:boolean com.android.tools.r8.com.google.common.collect.ImmutableMultimap.isPartialView():476:476 -> a
    13:13:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):354 -> a
    13:13:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):320 -> a
    13:13:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
    13:13:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
    14:27:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):359:372 -> a
    14:27:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):320 -> a
    14:27:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
    14:27:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
    28:28:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328:328 -> a
com.android.tools.r8.com.google.common.collect.ImmutableMap -> com.android.tools.r8.r.a.a.b.b0:
    com.android.tools.r8.com.google.common.collect.ImmutableCollection values -> c
    java.util.Map$Entry[] EMPTY_ENTRY_ARRAY -> d
    com.android.tools.r8.com.google.common.collect.ImmutableSet keySet -> b
    com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet -> a
    1:1:void <clinit>():443:443 -> <clinit>
    1:1:void <init>():483:483 -> <init>
    1:1:java.util.stream.Collector toImmutableMap(java.util.function.Function,java.util.function.Function):80:80 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMap of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):132:132 -> a
    3:3:void checkNoConflict(boolean,java.lang.String,java.util.Map$Entry,java.util.Map$Entry):190:190 -> a
    4:12:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):392:400 -> a
    13:17:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOfEnumMap(java.util.EnumMap):436:440 -> a
    13:17:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):400 -> a
    18:18:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403:403 -> a
    19:19:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):418:418 -> a
    19:19:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
    20:22:java.util.Collection com.android.tools.r8.com.google.common.collect.Iterables.castOrCopyToCollection(java.lang.Iterable):318:320 -> a
    20:22:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Iterables.toArray(java.lang.Iterable,java.lang.Object[]):297 -> a
    20:22:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):418 -> a
    20:22:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
    23:23:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Iterables.toArray(java.lang.Iterable,java.lang.Object[]):298:298 -> a
    23:23:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):418 -> a
    23:23:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
    24:36:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):418:430 -> a
    24:36:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
    37:38:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):423:424 -> a
    37:38:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
    39:39:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of(java.lang.Object,java.lang.Object):73:73 -> a
    39:39:com.android.tools.r8.com.google.common.collect.ImmutableMap of(java.lang.Object,java.lang.Object):123 -> a
    39:39:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):424 -> a
    39:39:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
    40:40:com.android.tools.r8.com.google.common.collect.ImmutableMap of():113:113 -> a
    40:40:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):421 -> a
    40:40:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
    1:2:java.util.Map$Entry entryOf(java.lang.Object,java.lang.Object):175:176 -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of(java.lang.Object,java.lang.Object):73:73 -> c
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap of(java.lang.Object,java.lang.Object):123 -> c
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder builder():184:184 -> c
    3:3:void com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder.<init>():234:234 -> c
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder builder():184 -> c
    1:1:void clear():642:642 -> clear
    1:1:java.lang.Object compute(java.lang.Object,java.util.function.BiFunction):569:569 -> compute
    1:1:java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function):544:544 -> computeIfAbsent
    1:1:java.lang.Object computeIfPresent(java.lang.Object,java.util.function.BiFunction):557:557 -> computeIfPresent
    1:1:boolean containsKey(java.lang.Object):652:652 -> containsKey
    1:1:boolean containsValue(java.lang.Object):657:657 -> containsValue
    1:1:java.util.Set entrySet():60:60 -> entrySet
    1:3:boolean com.android.tools.r8.com.google.common.collect.Maps.equalsImpl(java.util.Map,java.lang.Object):3804:3806 -> equals
    1:3:boolean equals(java.lang.Object):835 -> equals
    1:1:java.lang.Object getOrDefault(java.lang.Object,java.lang.Object):666:666 -> getOrDefault
    com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet() -> h
    1:1:int hashCode():842:842 -> hashCode
    1:1:boolean isEmpty():647:647 -> isEmpty
    com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet() -> j
    com.android.tools.r8.com.google.common.collect.ImmutableCollection createValues() -> k
    1:1:java.util.Set keySet():60:60 -> keySet
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():679:680 -> l
    boolean isHashCodeFast() -> m
    1:1:java.lang.Object merge(java.lang.Object,java.lang.Object,java.util.function.BiFunction):582:582 -> merge
    boolean isPartialView() -> n
    1:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator keyIterator():706:707 -> o
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableSet keySet():694:695 -> p
    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):495:495 -> put
    1:1:void putAll(java.util.Map):594:594 -> putAll
    1:1:java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object):508:508 -> putIfAbsent
    1:1:java.util.Spliterator keySpliterator():721:721 -> q
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap of():113:113 -> r
    1:1:java.lang.Object remove(java.lang.Object):618:618 -> remove
    2:2:boolean remove(java.lang.Object,java.lang.Object):630:630 -> remove
    1:1:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):520:520 -> replace
    2:2:java.lang.Object replace(java.lang.Object,java.lang.Object):532:532 -> replace
    1:1:void replaceAll(java.util.function.BiFunction):606:606 -> replaceAll
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableCollection values():733:734 -> s
    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.Maps.toStringImpl(java.util.Map):3815:3815 -> toString
    1:1:java.lang.String toString():851 -> toString
    2:3:java.lang.StringBuilder com.android.tools.r8.com.google.common.collect.Collections2.newStringBuilderForCollection(int):369:370 -> toString
    2:3:java.lang.String com.android.tools.r8.com.google.common.collect.Maps.toStringImpl(java.util.Map):3815 -> toString
    2:3:java.lang.String toString():851 -> toString
    4:13:java.lang.String com.android.tools.r8.com.google.common.collect.Maps.toStringImpl(java.util.Map):3815:3824 -> toString
    4:13:java.lang.String toString():851 -> toString
    1:1:java.util.Collection values():60:60 -> values
com.android.tools.r8.com.google.common.collect.ImmutableMap$1 -> com.android.tools.r8.r.a.a.b.a0:
    com.android.tools.r8.com.google.common.collect.UnmodifiableIterator val$entryIterator -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap,com.android.tools.r8.com.google.common.collect.UnmodifiableIterator):707:707 -> <init>
    1:1:boolean hasNext():710:710 -> hasNext
    1:1:java.lang.Object next():715:715 -> next
com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder -> com.android.tools.r8.r.a.a.b.b0$a:
    java.util.Map$Entry[] entries -> a
    int size -> b
    boolean entriesUsed -> c
    1:1:void <init>():234:234 -> <init>
    2:5:void <init>(int):238:241 -> <init>
    1:4:void ensureCapacity(int):245:248 -> a
    5:7:void ensureCapacity(int):247:249 -> a
    8:11:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder put(java.lang.Object,java.lang.Object):259:262 -> a
    12:14:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):330:332 -> a
    15:15:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    15:15:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):329 -> a
    16:23:com.android.tools.r8.com.google.common.collect.ImmutableMap build():366:373 -> a
    24:24:com.android.tools.r8.com.google.common.collect.ImmutableMap build():371:371 -> a
    25:25:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of(java.lang.Object,java.lang.Object):73:73 -> a
    25:25:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.com.google.common.collect.ImmutableMap.of(java.lang.Object,java.lang.Object):123 -> a
    25:25:com.android.tools.r8.com.google.common.collect.ImmutableMap build():371 -> a
    26:26:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.com.google.common.collect.ImmutableMap.of():113:113 -> a
    26:26:com.android.tools.r8.com.google.common.collect.ImmutableMap build():369 -> a
com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap$1EntrySetImpl -> com.android.tools.r8.r.a.a.b.c0:
    com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap this$0 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap):463:463 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():471:471 -> d
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():471:471 -> iterator
    1:1:java.util.Iterator iterator():462 -> iterator
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap map():466:466 -> k
com.android.tools.r8.com.google.common.collect.ImmutableMapEntry -> com.android.tools.r8.r.a.a.b.f0:
    1:2:void <init>(java.lang.Object,java.lang.Object):48:49 -> <init>
    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry getNextInKeyBucket() -> d
    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry getNextInValueBucket() -> e
    boolean isReusable() -> f
com.android.tools.r8.com.google.common.collect.ImmutableMapEntry$NonTerminalImmutableBiMapEntry -> com.android.tools.r8.r.a.a.b.d0:
    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry nextInValueBucket -> d
    1:2:void <init>(java.lang.Object,java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):104:105 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry getNextInValueBucket():111:111 -> e
com.android.tools.r8.com.google.common.collect.ImmutableMapEntry$NonTerminalImmutableMapEntry -> com.android.tools.r8.r.a.a.b.e0:
    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry nextInKeyBucket -> c
    1:2:void <init>(java.lang.Object,java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):79:80 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry getNextInKeyBucket():86:86 -> d
    boolean isReusable() -> f
com.android.tools.r8.com.google.common.collect.ImmutableMapEntrySet -> com.android.tools.r8.r.a.a.b.h0:
    1:1:void <init>():77:77 -> <init>
    1:1:boolean isPartialView():98:98 -> b
    1:4:boolean contains(java.lang.Object):88:91 -> contains
    1:1:boolean isHashCodeFast():104:104 -> g
    1:1:int hashCode():109:109 -> hashCode
    com.android.tools.r8.com.google.common.collect.ImmutableMap map() -> k
    1:1:int size():83:83 -> size
com.android.tools.r8.com.google.common.collect.ImmutableMapEntrySet$RegularEntrySet -> com.android.tools.r8.r.a.a.b.g0:
    com.android.tools.r8.com.google.common.collect.ImmutableMap map -> c
    java.util.Map$Entry[] entries -> d
    1:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap,java.util.Map$Entry[]):43:45 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():55:55 -> d
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():73:73 -> f
    2:2:void com.android.tools.r8.com.google.common.collect.RegularImmutableAsList.<init>(com.android.tools.r8.com.google.common.collect.ImmutableCollection,java.lang.Object[]):41:41 -> f
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():73 -> f
    1:2:void forEach(java.util.function.Consumer):66:67 -> forEach
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    3:3:void forEach(java.util.function.Consumer):65 -> forEach
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():55:55 -> iterator
    1:1:java.util.Iterator iterator():39 -> iterator
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap map():50:50 -> k
    1:1:java.util.Spliterator spliterator():60:60 -> spliterator
com.android.tools.r8.com.google.common.collect.ImmutableMapKeySet -> com.android.tools.r8.r.a.a.b.i0:
    com.android.tools.r8.com.google.common.collect.ImmutableMap map -> c
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap):39:40 -> <init>
    1:1:void lambda$forEach$0(java.util.function.Consumer,java.lang.Object,java.lang.Object):71:71 -> a
    boolean isPartialView() -> b
    1:1:boolean contains(java.lang.Object):60:60 -> contains
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():50:50 -> d
    1:1:void forEach(java.util.function.Consumer):71:71 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.Consumer):70 -> forEach
    1:1:java.lang.Object get(int):65:65 -> get
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():50:50 -> iterator
    1:1:java.util.Iterator iterator():35 -> iterator
    1:1:int size():45:45 -> size
    1:1:java.util.Spliterator spliterator():55:55 -> spliterator
com.android.tools.r8.com.google.common.collect.ImmutableMapValues -> com.android.tools.r8.r.a.a.b.l0:
    com.android.tools.r8.com.google.common.collect.ImmutableMap map -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap):40:41 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap access$000(com.android.tools.r8.com.google.common.collect.ImmutableMapValues):37:37 -> a
    2:3:com.android.tools.r8.com.google.common.collect.ImmutableList asList():82:83 -> a
    4:4:void lambda$forEach$0(java.util.function.Consumer,java.lang.Object,java.lang.Object):100:100 -> a
    boolean isPartialView() -> b
    1:1:void com.android.tools.r8.com.google.common.collect.ImmutableMapValues$1.<init>(com.android.tools.r8.com.google.common.collect.ImmutableMapValues):52:52 -> contains
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():51 -> contains
    1:1:boolean contains(java.lang.Object):72 -> contains
    2:2:boolean com.android.tools.r8.com.google.common.collect.ImmutableMapValues$1.hasNext():56:56 -> contains
    2:2:boolean com.android.tools.r8.com.google.common.collect.Iterators.contains(java.util.Iterator,java.lang.Object):186 -> contains
    2:2:boolean contains(java.lang.Object):72 -> contains
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableMapValues$1.next():61:61 -> contains
    3:3:boolean com.android.tools.r8.com.google.common.collect.Iterators.contains(java.util.Iterator,java.lang.Object):187 -> contains
    3:3:boolean contains(java.lang.Object):72 -> contains
    4:4:boolean com.android.tools.r8.com.google.common.collect.Iterators.contains(java.util.Iterator,java.lang.Object):187:187 -> contains
    4:4:boolean contains(java.lang.Object):72 -> contains
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():51:51 -> d
    1:1:void forEach(java.util.function.Consumer):100:100 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.Consumer):99 -> forEach
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():51:51 -> iterator
    1:1:java.util.Iterator iterator():36 -> iterator
    1:1:int size():46:46 -> size
    1:1:java.util.Spliterator spliterator():67:67 -> spliterator
com.android.tools.r8.com.google.common.collect.ImmutableMapValues$1 -> com.android.tools.r8.r.a.a.b.j0:
    com.android.tools.r8.com.google.common.collect.UnmodifiableIterator entryItr -> a
    com.android.tools.r8.com.google.common.collect.ImmutableMapValues this$0 -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMapValues):51:52 -> <init>
    1:1:boolean hasNext():56:56 -> hasNext
    1:1:java.lang.Object next():61:61 -> next
com.android.tools.r8.com.google.common.collect.ImmutableMapValues$2 -> com.android.tools.r8.r.a.a.b.k0:
    com.android.tools.r8.com.google.common.collect.ImmutableMapValues this$0 -> c
    com.android.tools.r8.com.google.common.collect.ImmutableList val$entryList -> b
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMapValues,com.android.tools.r8.com.google.common.collect.ImmutableList):83:83 -> <init>
    1:1:java.lang.Object get(int):86:86 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():91:91 -> i
com.android.tools.r8.com.google.common.collect.ImmutableMultimap -> com.android.tools.r8.r.a.a.b.p0:
    com.android.tools.r8.com.google.common.collect.ImmutableMap map -> e
    int size -> f
    1:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap,int):354:356 -> <init>
    1:1:boolean containsEntry(java.lang.Object,java.lang.Object):67:67 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableCollection entries():528:528 -> a
    2:2:java.util.Collection entries():67 -> a
    3:6:java.util.Spliterator lambda$entrySpliterator$1(java.util.Map$Entry):608:611 -> a
    7:7:java.util.Spliterator lambda$entrySpliterator$1(java.util.Map$Entry):610:610 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap asMap():515:515 -> b
    1:1:java.util.Map asMap():67 -> b
    2:2:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> b
    2:2:java.util.Map$Entry lambda$null$0(java.lang.Object,java.lang.Object):611 -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMultiset keys():632:632 -> c
    1:1:com.android.tools.r8.com.google.common.collect.Multiset keys():67 -> c
    1:1:void clear():396:396 -> clear
    1:1:boolean containsKey(java.lang.Object):483:483 -> containsKey
    1:1:java.util.Map createAsMap():520:520 -> d
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection createEntries():533:533 -> e
    1:1:java.util.Collection createEntries():67 -> e
    1:1:boolean equals(java.lang.Object):67:67 -> equals
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMultiset createKeys():637:637 -> g
    1:1:com.android.tools.r8.com.google.common.collect.Multiset createKeys():67 -> g
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator entryIterator():595:595 -> h
    1:1:java.util.Iterator entryIterator():67 -> h
    1:1:int com.android.tools.r8.com.google.common.collect.AbstractMultimap.hashCode():263:263 -> hashCode
    1:1:int hashCode():67 -> hashCode
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap asMap():515:515 -> i
    1:1:java.util.Spliterator entrySpliterator():606 -> i
    2:2:java.util.Spliterator entrySpliterator():606:606 -> i
    3:3:int size():493:493 -> i
    3:3:java.util.Spliterator entrySpliterator():614 -> i
    4:4:java.util.Spliterator entrySpliterator():605:605 -> i
    1:1:boolean isEmpty():67:67 -> isEmpty
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap asMap():515:515 -> j
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet keySet():504:504 -> keySet
    1:1:java.util.Set keySet():67 -> keySet
    1:1:boolean put(java.lang.Object,java.lang.Object):427:427 -> put
    1:1:boolean remove(java.lang.Object,java.lang.Object):466:466 -> remove
    1:1:int size():493:493 -> size
    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.AbstractMultimap.toString():274:274 -> toString
    1:1:java.lang.String toString():67 -> toString
com.android.tools.r8.com.google.common.collect.ImmutableMultimap$1 -> com.android.tools.r8.r.a.a.b.m0:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap):595:595 -> <init>
com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder -> com.android.tools.r8.r.a.a.b.n0:
    com.android.tools.r8.com.google.common.collect.Multimap builderMultimap -> a
    1:1:void <init>():156:156 -> <init>
    2:3:void <init>(com.android.tools.r8.com.google.common.collect.Multimap):159:160 -> <init>
com.android.tools.r8.com.google.common.collect.ImmutableMultimap$EntryCollection -> com.android.tools.r8.r.a.a.b.o0:
    com.android.tools.r8.com.google.common.collect.ImmutableMultimap multimap -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap):539:540 -> <init>
    1:1:boolean isPartialView():550:550 -> b
    2:2:boolean com.android.tools.r8.com.google.common.collect.ImmutableMultimap.isPartialView():476:476 -> b
    2:2:boolean isPartialView():550 -> b
    1:3:boolean contains(java.lang.Object):560:562 -> contains
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():545:545 -> d
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.ImmutableMultimap.entryIterator():595:595 -> d
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():545 -> d
    1:1:java.util.Iterator iterator():536:536 -> iterator
    1:1:int size():555:555 -> size
    2:2:int com.android.tools.r8.com.google.common.collect.ImmutableMultimap.size():493:493 -> size
    2:2:int size():555 -> size
com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Itr -> com.android.tools.r8.r.a.a.b.p0$a:
    java.util.Iterator valueIterator -> c
    java.util.Iterator mapIterator -> a
    java.lang.Object key -> b
    com.android.tools.r8.com.google.common.collect.ImmutableMultimap this$0 -> d
    1:4:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap):570:573 -> <init>
    5:5:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap,com.android.tools.r8.com.google.common.collect.ImmutableMultimap$1):570:570 -> <init>
    1:1:boolean hasNext():579:579 -> hasNext
    1:6:java.lang.Object next():584:589 -> next
    7:7:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> next
    7:7:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.ImmutableMultimap$1.output(java.lang.Object,java.lang.Object):598 -> next
    7:7:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableMultimap$1.output(java.lang.Object,java.lang.Object):595 -> next
    7:7:java.lang.Object next():589 -> next
com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Keys -> com.android.tools.r8.r.a.a.b.p0$b:
    com.android.tools.r8.com.google.common.collect.ImmutableMultimap this$0 -> d
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap):642:642 -> <init>
    boolean isPartialView() -> b
    1:2:int count(java.lang.Object):650:651 -> b
    1:2:com.android.tools.r8.com.google.common.collect.Multiset$Entry getEntry(int):666:667 -> c
    3:3:com.android.tools.r8.com.google.common.collect.Multiset$Entry com.android.tools.r8.com.google.common.collect.Multisets.immutableEntry(java.lang.Object,int):251:251 -> c
    3:3:com.android.tools.r8.com.google.common.collect.Multiset$Entry getEntry(int):667 -> c
    1:1:boolean contains(java.lang.Object):645:645 -> contains
    2:2:boolean com.android.tools.r8.com.google.common.collect.ImmutableMultimap.containsKey(java.lang.Object):483:483 -> contains
    2:2:boolean contains(java.lang.Object):645 -> contains
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():656:656 -> e
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMultimap.keySet():504:504 -> e
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():656 -> e
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():656:656 -> h
    1:1:java.util.Set elementSet():640 -> h
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMultimap.keySet():504:504 -> h
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():656 -> h
    2:2:java.util.Set elementSet():640 -> h
    1:1:int size():661:661 -> size
    2:2:int com.android.tools.r8.com.google.common.collect.ImmutableMultimap.size():493:493 -> size
    2:2:int size():661 -> size
com.android.tools.r8.com.google.common.collect.ImmutableMultiset -> com.android.tools.r8.r.a.a.b.r0:
    com.android.tools.r8.com.google.common.collect.ImmutableList asList -> b
    com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet -> c
    1:1:void <init>():235:235 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMultiset copyFromEntries(java.util.Collection):216:216 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMultiset of():101:101 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMultiset copyFromEntries(java.util.Collection):217 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableMultiset copyFromEntries(java.util.Collection):219:219 -> a
    4:5:com.android.tools.r8.com.google.common.collect.ImmutableList asList():267:268 -> a
    6:6:int remove(java.lang.Object,int):299:299 -> a
    7:7:boolean setCount(java.lang.Object,int,int):325:325 -> a
    8:10:int copyIntoArray(java.lang.Object[],int):331:333 -> a
    1:1:int add(java.lang.Object,int):286:286 -> b
    com.android.tools.r8.com.google.common.collect.Multiset$Entry getEntry(int) -> c
    1:1:int setCount(java.lang.Object,int):312:312 -> c
    1:1:boolean contains(java.lang.Object):273:273 -> contains
    1:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():239:240 -> d
    com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet() -> e
    1:1:java.util.Set entrySet():53:53 -> entrySet
    1:1:boolean equals(java.lang.Object):340:340 -> equals
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():362:362 -> f
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():367:367 -> f
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():363 -> f
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():363:363 -> f
    1:1:int hashCode():345:345 -> hashCode
    1:1:java.util.Iterator iterator():53:53 -> iterator
    1:1:java.lang.String toString():350:350 -> toString
com.android.tools.r8.com.google.common.collect.ImmutableMultiset$1 -> com.android.tools.r8.r.a.a.b.q0:
    java.util.Iterator val$entryIterator -> c
    java.lang.Object element -> b
    int remaining -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultiset,java.util.Iterator):240:240 -> <init>
    1:1:boolean hasNext():246:246 -> hasNext
    1:7:java.lang.Object next():251:257 -> next
com.android.tools.r8.com.google.common.collect.ImmutableMultiset$EntrySet -> com.android.tools.r8.r.a.a.b.r0$a:
    com.android.tools.r8.com.google.common.collect.ImmutableMultiset this$0 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultiset):373:373 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultiset,com.android.tools.r8.com.google.common.collect.ImmutableMultiset$1):373:373 -> <init>
    1:1:boolean isPartialView():376:376 -> b
    1:7:boolean contains(java.lang.Object):391:397 -> contains
    1:1:com.android.tools.r8.com.google.common.collect.Multiset$Entry get(int):381:381 -> get
    1:1:java.lang.Object get(int):372 -> get
    1:1:int hashCode():404:404 -> hashCode
    1:1:int size():386:386 -> size
com.android.tools.r8.com.google.common.collect.ImmutableMultisetGwtSerializationDependencies -> com.android.tools.r8.r.a.a.b.s0:
    1:1:void <init>():40:40 -> <init>
com.android.tools.r8.com.google.common.collect.ImmutableSet -> com.android.tools.r8.r.a.a.b.t0:
    com.android.tools.r8.com.google.common.collect.ImmutableList asList -> b
    1:1:void <init>():332:332 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet access$000(int,java.lang.Object[]):51:51 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object):83:83 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object,java.lang.Object):92:92 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object,java.lang.Object,java.lang.Object):101:101 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):110:110 -> a
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):119:119 -> a
    7:15:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object[]):132:140 -> a
    16:23:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOf(java.util.Collection):259:266 -> a
    24:24:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOfEnumSet(java.util.EnumSet):329:329 -> a
    24:24:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOf(java.util.Collection):266 -> a
    25:26:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOf(java.util.Collection):268:269 -> a
    27:28:com.android.tools.r8.com.google.common.collect.ImmutableList asList():368:369 -> a
    1:36:com.android.tools.r8.com.google.common.collect.ImmutableSet construct(int,java.lang.Object[]):169:204 -> b
    37:37:com.android.tools.r8.com.google.common.collect.ImmutableSet construct(int,java.lang.Object[]):164:164 -> b
    38:38:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object):83:83 -> b
    38:38:com.android.tools.r8.com.google.common.collect.ImmutableSet construct(int,java.lang.Object[]):165 -> b
    39:39:com.android.tools.r8.com.google.common.collect.ImmutableSet of():74:74 -> b
    39:39:com.android.tools.r8.com.google.common.collect.ImmutableSet construct(int,java.lang.Object[]):161 -> b
    1:9:int chooseTableSize(int):229:237 -> c
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder builder():445:445 -> e
    2:2:void com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder.<init>():471:471 -> e
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder builder():445 -> e
    1:7:boolean equals(java.lang.Object):343:349 -> equals
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():373:373 -> f
    2:2:void com.android.tools.r8.com.google.common.collect.RegularImmutableAsList.<init>(com.android.tools.r8.com.google.common.collect.ImmutableCollection,java.lang.Object[]):41:41 -> f
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():373 -> f
    boolean isHashCodeFast() -> g
    1:1:int hashCode():354:354 -> hashCode
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet of():74:74 -> i
    1:1:java.util.stream.Collector toImmutableSet():65:65 -> j
com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder -> com.android.tools.r8.r.a.a.b.t0$a:
    1:1:void <init>():471:471 -> <init>
    2:2:void <init>(int):475:475 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object):464:464 -> a
    2:5:com.android.tools.r8.com.google.common.collect.ImmutableSet build():555:558 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder add(java.lang.Object[]):506:506 -> b
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder addAll(java.lang.Iterable):522:522 -> b
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):545:545 -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder add(java.lang.Object):490:490 -> c
com.android.tools.r8.com.google.common.collect.ImmutableSet$Indexed -> com.android.tools.r8.r.a.a.b.v0:
    1:1:void <init>():376:376 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():381:381 -> d
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():400:400 -> f
    1:3:void forEach(java.util.function.Consumer):392:394 -> forEach
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    4:4:void forEach(java.util.function.Consumer):391 -> forEach
    1:1:java.util.Iterator iterator():376:376 -> iterator
    1:1:java.util.Spliterator spliterator():386:386 -> spliterator
    2:2:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.indexed(int,int,java.util.function.IntFunction):40:40 -> spliterator
    2:2:java.util.Spliterator spliterator():386 -> spliterator
com.android.tools.r8.com.google.common.collect.ImmutableSet$Indexed$1 -> com.android.tools.r8.r.a.a.b.u0:
    com.android.tools.r8.com.google.common.collect.ImmutableSet$Indexed this$0 -> b
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableSet$Indexed):400:400 -> <init>
    1:1:java.lang.Object get(int):403:403 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet$Indexed delegateCollection():408:408 -> i
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():400 -> i
com.android.tools.r8.com.google.common.collect.ImmutableSortedAsList -> com.android.tools.r8.r.a.a.b.w0:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableSortedSet,com.android.tools.r8.com.google.common.collect.ImmutableList):34:34 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.subListUnchecked(int,int):454:454 -> c
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList subListUnchecked(int,int):83 -> c
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList subListUnchecked(int,int):84:84 -> c
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet delegateCollection():39:39 -> comparator
    1:1:java.util.Comparator comparator():44 -> comparator
    2:2:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> comparator
    2:2:java.util.Comparator comparator():44 -> comparator
    1:1:boolean contains(java.lang.Object):72:72 -> contains
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet delegateCollection():39:39 -> i
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():29 -> i
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet delegateCollection():39:39 -> indexOf
    1:1:int indexOf(java.lang.Object):53 -> indexOf
    2:9:int indexOf(java.lang.Object):53:60 -> indexOf
    1:1:int lastIndexOf(java.lang.Object):66:66 -> lastIndexOf
    1:1:int com.android.tools.r8.com.google.common.collect.ImmutableAsList.size():46:46 -> spliterator
    1:1:java.util.Spliterator spliterator():90 -> spliterator
    2:3:java.util.Spliterator spliterator():92:93 -> spliterator
    4:4:java.util.Spliterator spliterator():89:89 -> spliterator
com.android.tools.r8.com.google.common.collect.ImmutableSortedMap -> com.android.tools.r8.r.a.a.b.A0:
    com.android.tools.r8.com.google.common.collect.ImmutableList valueList -> f
    com.android.tools.r8.com.google.common.collect.ImmutableSortedMap descendingMap -> g
    com.android.tools.r8.com.google.common.collect.ImmutableSortedMap NATURAL_EMPTY_MAP -> h
    com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet keySet -> e
    1:1:com.android.tools.r8.com.google.common.collect.Ordering com.android.tools.r8.com.google.common.collect.Ordering.natural():161:161 -> <clinit>
    1:1:void <clinit>():116 -> <clinit>
    2:4:void <clinit>():118:120 -> <clinit>
    5:5:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet,com.android.tools.r8.com.google.common.collect.ImmutableList):580:580 -> <clinit>
    5:5:void <clinit>():120 -> <clinit>
    6:6:void <clinit>():120:120 -> <clinit>
    1:4:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableSortedMap):586:589 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap access$000(java.util.Comparator,java.lang.Object,java.lang.Object):63:63 -> a
    2:2:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet access$200(com.android.tools.r8.com.google.common.collect.ImmutableSortedMap):63:63 -> a
    3:3:com.android.tools.r8.com.google.common.collect.Ordering com.android.tools.r8.com.google.common.collect.Ordering.natural():161:161 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap emptyMap(java.util.Comparator):123 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap emptyMap(java.util.Comparator):123:123 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap of():138:138 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap emptyMap(java.util.Comparator):124 -> a
    6:7:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap emptyMap(java.util.Comparator):126:127 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.of():81:81 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap emptyMap(java.util.Comparator):127 -> a
    9:9:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet,com.android.tools.r8.com.google.common.collect.ImmutableList):580:580 -> a
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap emptyMap(java.util.Comparator):127 -> a
    10:41:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap fromEntries(java.util.Comparator,boolean,java.util.Map$Entry[],int):377:408 -> a
    10:41:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap access$100(java.util.Comparator,boolean,java.util.Map$Entry[],int):63 -> a
    42:47:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap fromEntries(java.util.Comparator,boolean,java.util.Map$Entry[],int):407:412 -> a
    42:47:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap access$100(java.util.Comparator,boolean,java.util.Map$Entry[],int):63 -> a
    48:48:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet,com.android.tools.r8.com.google.common.collect.ImmutableList):580:580 -> a
    48:48:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap fromEntries(java.util.Comparator,boolean,java.util.Map$Entry[],int):412 -> a
    48:48:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap access$100(java.util.Comparator,boolean,java.util.Map$Entry[],int):63 -> a
    49:50:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap fromEntries(java.util.Comparator,boolean,java.util.Map$Entry[],int):374:375 -> a
    49:50:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap access$100(java.util.Comparator,boolean,java.util.Map$Entry[],int):63 -> a
    51:51:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap fromEntries(java.util.Comparator,boolean,java.util.Map$Entry[],int):374:374 -> a
    51:51:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap access$100(java.util.Comparator,boolean,java.util.Map$Entry[],int):63 -> a
    52:52:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap fromEntries(java.util.Comparator,boolean,java.util.Map$Entry[],int):372:372 -> a
    52:52:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap access$100(java.util.Comparator,boolean,java.util.Map$Entry[],int):63 -> a
    53:53:int size():594:594 -> a
    53:53:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap getSubMap(int,int):724 -> a
    54:54:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> a
    54:54:java.util.Comparator comparator():710 -> a
    54:54:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap getSubMap(int,int):727 -> a
    55:55:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> a
    55:55:java.util.Comparator comparator():710 -> a
    55:55:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap getSubMap(int,int):727 -> a
    56:59:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap getSubMap(int,int):727:730 -> a
    60:60:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet,com.android.tools.r8.com.google.common.collect.ImmutableList):580:580 -> a
    60:60:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap getSubMap(int,int):730 -> a
    61:61:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> a
    61:61:java.util.Comparator comparator():710 -> a
    61:61:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):805 -> a
    62:62:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> a
    62:62:java.util.Comparator comparator():710 -> a
    62:62:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):805 -> a
    63:63:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):805:805 -> a
    64:64:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):804:804 -> a
    65:65:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap headMap(java.lang.Object,boolean):763:763 -> a
    65:65:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):809 -> a
    66:66:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> a
    66:66:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):809 -> a
    67:67:int size():594:594 -> a
    67:67:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842 -> a
    67:67:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):809 -> a
    68:68:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> a
    68:68:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):809 -> a
    69:69:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    69:69:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):803 -> a
    70:70:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    70:70:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):802 -> a
    71:71:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap headMap(java.lang.Object,boolean):763:763 -> a
    72:72:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    72:72:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap headMap(java.lang.Object,boolean):763 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$300(com.android.tools.r8.com.google.common.collect.ImmutableSortedMap):63:63 -> b
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap of(java.util.Comparator,java.lang.Object,java.lang.Object):152:152 -> b
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.of(java.lang.Object):93:93 -> b
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap of(java.util.Comparator,java.lang.Object,java.lang.Object):153 -> b
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap of(java.util.Comparator,java.lang.Object,java.lang.Object):153:153 -> b
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.of(java.lang.Object):93:93 -> b
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap of(java.util.Comparator,java.lang.Object,java.lang.Object):154 -> b
    6:6:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet,com.android.tools.r8.com.google.common.collect.ImmutableList):580:580 -> b
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap of(java.util.Comparator,java.lang.Object,java.lang.Object):154 -> b
    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap of(java.util.Comparator,java.lang.Object,java.lang.Object):153 -> b
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> b
    9:9:int size():594:594 -> b
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842 -> b
    10:10:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> b
    11:11:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    11:11:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842 -> b
    1:1:java.util.Map$Entry ceilingEntry(java.lang.Object):867:867 -> ceilingEntry
    1:1:java.util.Map$Entry ceilingEntry(java.lang.Object):867:867 -> ceilingKey
    1:1:java.lang.Object ceilingKey(java.lang.Object):872 -> ceilingKey
    2:2:java.lang.Object ceilingKey(java.lang.Object):872:872 -> ceilingKey
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> comparator
    1:1:java.util.Comparator comparator():710 -> comparator
    2:2:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> comparator
    2:2:java.util.Comparator comparator():710 -> comparator
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet descendingKeySet():945:945 -> descendingKeySet
    1:1:java.util.NavigableSet descendingKeySet():62 -> descendingKeySet
    1:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap descendingMap():925:927 -> descendingMap
    1:3:java.util.NavigableMap descendingMap():62 -> descendingMap
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> descendingMap
    4:4:java.util.Comparator comparator():710 -> descendingMap
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap descendingMap():928 -> descendingMap
    4:4:java.util.NavigableMap descendingMap():62 -> descendingMap
    5:5:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> descendingMap
    5:5:java.util.Comparator comparator():710 -> descendingMap
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap descendingMap():928 -> descendingMap
    5:5:java.util.NavigableMap descendingMap():62 -> descendingMap
    6:10:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap descendingMap():928:932 -> descendingMap
    6:10:java.util.NavigableMap descendingMap():62 -> descendingMap
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():623:623 -> entrySet
    1:1:java.util.Set entrySet():62 -> entrySet
    1:1:java.util.Map$Entry firstEntry():887:887 -> firstEntry
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():623:623 -> firstEntry
    2:2:java.util.Map$Entry firstEntry():887 -> firstEntry
    3:3:java.util.Map$Entry firstEntry():887:887 -> firstEntry
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> firstKey
    1:1:java.lang.Object firstKey():715 -> firstKey
    2:2:java.lang.Object firstKey():715:715 -> firstKey
    1:1:java.util.Map$Entry floorEntry(java.lang.Object):857:857 -> floorEntry
    1:1:java.util.Map$Entry floorEntry(java.lang.Object):857:857 -> floorKey
    1:1:java.lang.Object floorKey(java.lang.Object):862 -> floorKey
    2:2:java.lang.Object floorKey(java.lang.Object):862:862 -> floorKey
    1:1:void forEach(java.util.function.BiConsumer):600:600 -> forEach
    2:2:int size():594:594 -> forEach
    2:2:void forEach(java.util.function.BiConsumer):601 -> forEach
    3:3:void forEach(java.util.function.BiConsumer):602:602 -> forEach
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    4:4:void forEach(java.util.function.BiConsumer):599 -> forEach
    1:2:java.lang.Object get(java.lang.Object):608:609 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():672:672 -> h
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap headMap(java.lang.Object):746:746 -> headMap
    1:1:java.util.SortedMap headMap(java.lang.Object):62 -> headMap
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap headMap(java.lang.Object,boolean):763:763 -> headMap
    2:2:java.util.NavigableMap headMap(java.lang.Object,boolean):62 -> headMap
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> headMap
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap headMap(java.lang.Object,boolean):763 -> headMap
    3:3:java.util.NavigableMap headMap(java.lang.Object,boolean):62 -> headMap
    1:1:java.util.Map$Entry higherEntry(java.lang.Object):877:877 -> higherEntry
    1:1:java.util.Map$Entry higherEntry(java.lang.Object):877:877 -> higherKey
    1:1:java.lang.Object higherKey(java.lang.Object):882 -> higherKey
    2:2:java.lang.Object higherKey(java.lang.Object):882:882 -> higherKey
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():685:685 -> j
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection createValues():699:699 -> k
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> keySet
    1:1:java.util.Set keySet():62 -> keySet
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():623:623 -> l
    1:1:java.util.Map$Entry lastEntry():892:892 -> lastEntry
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():623:623 -> lastEntry
    2:2:java.util.Map$Entry lastEntry():892 -> lastEntry
    3:3:java.util.Map$Entry lastEntry():892:892 -> lastEntry
    4:4:int size():594:594 -> lastEntry
    4:4:java.util.Map$Entry lastEntry():892 -> lastEntry
    5:5:java.util.Map$Entry lastEntry():892:892 -> lastEntry
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> lastKey
    1:1:java.lang.Object lastKey():720 -> lastKey
    2:2:java.lang.Object lastKey():720:720 -> lastKey
    1:1:java.util.Map$Entry lowerEntry(java.lang.Object):847:847 -> lowerEntry
    1:1:java.util.Map$Entry lowerEntry(java.lang.Object):847:847 -> lowerKey
    1:1:java.lang.Object lowerKey(java.lang.Object):852 -> lowerKey
    2:2:java.lang.Object lowerKey(java.lang.Object):852:852 -> lowerKey
    1:1:boolean isPartialView():614:614 -> n
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet navigableKeySet():940:940 -> navigableKeySet
    1:1:java.util.NavigableSet navigableKeySet():62 -> navigableKeySet
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet keySet():680:680 -> p
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet keySet():62 -> p
    1:1:java.util.Map$Entry pollFirstEntry():905:905 -> pollFirstEntry
    1:1:java.util.Map$Entry pollLastEntry():918:918 -> pollLastEntry
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection values():694:694 -> s
    1:1:int size():594:594 -> size
    1:1:java.util.NavigableMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):62:62 -> subMap
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap subMap(java.lang.Object,java.lang.Object):781:781 -> subMap
    2:2:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):62 -> subMap
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object):824:824 -> tailMap
    1:1:java.util.SortedMap tailMap(java.lang.Object):62 -> tailMap
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> tailMap
    2:2:java.util.NavigableMap tailMap(java.lang.Object,boolean):62 -> tailMap
    3:3:int size():594:594 -> tailMap
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842 -> tailMap
    3:3:java.util.NavigableMap tailMap(java.lang.Object,boolean):62 -> tailMap
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842:842 -> tailMap
    4:4:java.util.NavigableMap tailMap(java.lang.Object,boolean):62 -> tailMap
    5:5:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> tailMap
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap tailMap(java.lang.Object,boolean):842 -> tailMap
    5:5:java.util.NavigableMap tailMap(java.lang.Object,boolean):62 -> tailMap
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection values():694:694 -> values
    1:1:java.util.Collection values():62 -> values
com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$1 -> com.android.tools.r8.r.a.a.b.x0:
    java.util.Comparator val$comparator -> a
    1:1:void <init>(java.util.Comparator):392:392 -> <init>
    1:1:int compare(java.lang.Object,java.lang.Object):392:392 -> compare
    2:2:int compare(java.util.Map$Entry,java.util.Map$Entry):395:395 -> compare
    2:2:int compare(java.lang.Object,java.lang.Object):392 -> compare
com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$1EntrySet -> com.android.tools.r8.r.a.a.b.z0:
    com.android.tools.r8.com.google.common.collect.ImmutableSortedMap this$0 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableSortedMap):629:629 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():632:632 -> d
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():647:647 -> f
    1:1:void forEach(java.util.function.Consumer):642:642 -> forEach
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():632:632 -> iterator
    1:1:java.util.Iterator iterator():628 -> iterator
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap map():669:669 -> k
    1:1:java.util.Spliterator spliterator():637:637 -> spliterator
com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$1EntrySet$1 -> com.android.tools.r8.r.a.a.b.y0:
    com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$1EntrySet this$1 -> b
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$1EntrySet):647:647 -> <init>
    1:2:java.util.Map$Entry get(int):650:651 -> d
    1:2:java.util.Map$Entry get(int):650:651 -> get
    1:2:java.lang.Object get(int):647 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():662:662 -> i
    1:1:int com.android.tools.r8.com.google.common.collect.ImmutableAsList.size():46:46 -> spliterator
    1:1:java.util.Spliterator spliterator():657 -> spliterator
    2:2:java.util.Spliterator spliterator():657:657 -> spliterator
    3:3:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.indexed(int,int,java.util.function.IntFunction):40:40 -> spliterator
    3:3:java.util.Spliterator spliterator():656 -> spliterator
com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$Builder -> com.android.tools.r8.r.a.a.b.A0$a:
    java.util.Comparator comparator -> d
    1:2:void <init>(java.util.Comparator):475:476 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap build():467:467 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$Builder put(java.lang.Object,java.lang.Object):487:487 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder put(java.lang.Object,java.lang.Object):467 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):552:552 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):467 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap$Builder put(java.lang.Object,java.lang.Object):487:487 -> b
    2:8:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap build():564:570 -> b
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap build():568:568 -> b
    10:10:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap build():566:566 -> b
com.android.tools.r8.com.google.common.collect.ImmutableSortedMapFauxverideShim -> com.android.tools.r8.r.a.a.b.B0:
    1:1:void <init>():32:32 -> <init>
com.android.tools.r8.com.google.common.collect.ImmutableSortedSet -> com.android.tools.r8.r.a.a.b.C0:
    com.android.tools.r8.com.google.common.collect.ImmutableSortedSet descendingSet -> d
    java.util.Comparator comparator -> c
    1:2:void <init>(java.util.Comparator):564:565 -> <init>
    com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean) -> a
    1:1:com.android.tools.r8.com.google.common.collect.Ordering com.android.tools.r8.com.google.common.collect.Ordering.natural():161:161 -> a
    1:1:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet emptySet(java.util.Comparator):86 -> a
    2:5:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet emptySet(java.util.Comparator):86:89 -> a
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.of():81:81 -> a
    6:6:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet emptySet(java.util.Comparator):89 -> a
    7:7:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet emptySet(java.util.Comparator):89:89 -> a
    8:13:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.lang.Iterable):311:316 -> a
    8:13:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.util.Collection):345 -> a
    14:14:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Iterables.toArray(java.lang.Iterable):309:309 -> a
    14:14:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.lang.Iterable):321 -> a
    14:14:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.util.Collection):345 -> a
    15:15:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.lang.Iterable):322:322 -> a
    15:15:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.util.Collection):345 -> a
    16:16:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    16:16:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.lang.Iterable):310 -> a
    16:16:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.util.Collection):345 -> a
    17:17:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet construct(java.util.Comparator,int,java.lang.Object[]):390:390 -> a
    18:18:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[],int):225:225 -> a
    18:18:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet construct(java.util.Comparator,int,java.lang.Object[]):392 -> a
    19:30:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet construct(java.util.Comparator,int,java.lang.Object[]):393:404 -> a
    31:32:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):635:636 -> a
    33:33:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    33:33:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):634 -> a
    34:34:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    34:34:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):633 -> a
    com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSetImpl(java.lang.Object,boolean,java.lang.Object,boolean) -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder orderedBy(java.util.Comparator):416:416 -> b
    1:1:java.util.Comparator comparator():577:577 -> comparator
    1:1:java.util.NavigableSet descendingSet():63:63 -> descendingSet
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object,boolean):605:605 -> headSet
    1:1:java.util.NavigableSet headSet(java.lang.Object,boolean):63 -> headSet
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet.headSetImpl(java.lang.Object,boolean):236:236 -> headSet
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object,boolean):605 -> headSet
    2:2:java.util.NavigableSet headSet(java.lang.Object,boolean):63 -> headSet
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> headSet
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object,boolean):605 -> headSet
    3:3:java.util.NavigableSet headSet(java.lang.Object,boolean):63 -> headSet
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object,boolean):605:605 -> headSet
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object):596 -> headSet
    4:4:java.util.SortedSet headSet(java.lang.Object):63 -> headSet
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet.headSetImpl(java.lang.Object,boolean):236:236 -> headSet
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object,boolean):605 -> headSet
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object):596 -> headSet
    5:5:java.util.SortedSet headSet(java.lang.Object):63 -> headSet
    6:6:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> headSet
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object,boolean):605 -> headSet
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object):596 -> headSet
    6:6:java.util.SortedSet headSet(java.lang.Object):63 -> headSet
    com.android.tools.r8.com.google.common.collect.ImmutableSortedSet createDescendingSet() -> k
    1:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet descendingSet():762:765 -> l
    1:1:java.lang.Object pollFirst():733:733 -> pollFirst
    1:1:java.lang.Object pollLast():748:748 -> pollLast
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,java.lang.Object):623:623 -> subSet
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):63 -> subSet
    2:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):635:636 -> subSet
    2:3:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):63 -> subSet
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> subSet
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):634 -> subSet
    4:4:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):63 -> subSet
    5:5:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> subSet
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):633 -> subSet
    5:5:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):63 -> subSet
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSet(java.lang.Object,boolean):661:661 -> tailSet
    1:1:java.util.NavigableSet tailSet(java.lang.Object,boolean):63 -> tailSet
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> tailSet
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSet(java.lang.Object,boolean):661 -> tailSet
    2:2:java.util.NavigableSet tailSet(java.lang.Object,boolean):63 -> tailSet
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSet(java.lang.Object,boolean):661:661 -> tailSet
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSet(java.lang.Object):652 -> tailSet
    3:3:java.util.SortedSet tailSet(java.lang.Object):63 -> tailSet
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> tailSet
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSet(java.lang.Object,boolean):661 -> tailSet
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSet(java.lang.Object):652 -> tailSet
    4:4:java.util.SortedSet tailSet(java.lang.Object):63 -> tailSet
com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder -> com.android.tools.r8.r.a.a.b.C0$a:
    java.util.Comparator comparator -> c
    1:2:void <init>(java.util.Comparator):462:463 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet build():455:455 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder add(java.lang.Object):479:479 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object):455 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder add(java.lang.Object[]):494:494 -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder add(java.lang.Object[]):455 -> b
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder addAll(java.lang.Iterable):509:509 -> b
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder addAll(java.lang.Iterable):455 -> b
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):531:531 -> b
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):455 -> b
    4:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet build():542:544 -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder add(java.lang.Object):479:479 -> c
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder add(java.lang.Object):455 -> c
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder addAll(java.lang.Iterable):509:509 -> c
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder add(java.lang.Object):479:479 -> d
com.android.tools.r8.com.google.common.collect.ImmutableSortedSetFauxverideShim -> com.android.tools.r8.r.a.a.b.D0:
    1:1:void <init>():39:39 -> <init>
com.android.tools.r8.com.google.common.collect.Iterables$4 -> com.android.tools.r8.r.a.a.b.E0:
    com.android.tools.r8.com.google.common.base.Predicate val$retainIfTrue -> c
    java.lang.Iterable val$unfiltered -> b
    1:1:void <init>(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):575:575 -> <init>
    1:2:void lambda$forEach$0(com.android.tools.r8.com.google.common.base.Predicate,java.util.function.Consumer,java.lang.Object):586:587 -> a
    1:1:void forEach(java.util.function.Consumer):584:584 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.Consumer):583 -> forEach
    1:1:java.util.Iterator iterator():578:578 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.filter(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):659:659 -> iterator
    2:2:java.util.Iterator iterator():578 -> iterator
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> iterator
    3:3:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.filter(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):658 -> iterator
    3:3:java.util.Iterator iterator():578 -> iterator
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> iterator
    4:4:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.filter(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):657 -> iterator
    4:4:java.util.Iterator iterator():578 -> iterator
    1:1:java.util.Spliterator spliterator():594:594 -> spliterator
    2:2:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.filter(java.util.Spliterator,java.util.function.Predicate):189:189 -> spliterator
    2:2:java.util.Spliterator spliterator():594 -> spliterator
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> spliterator
    3:3:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.filter(java.util.Spliterator,java.util.function.Predicate):140 -> spliterator
    3:3:java.util.Spliterator spliterator():594 -> spliterator
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> spliterator
    4:4:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.filter(java.util.Spliterator,java.util.function.Predicate):139 -> spliterator
    4:4:java.util.Spliterator spliterator():594 -> spliterator
com.android.tools.r8.com.google.common.collect.Iterators$1 -> com.android.tools.r8.r.a.a.b.F0:
    java.util.Iterator val$iterator -> a
    1:1:void <init>(java.util.Iterator):137:137 -> <init>
    1:1:boolean hasNext():140:140 -> hasNext
    1:1:java.lang.Object next():145:145 -> next
com.android.tools.r8.com.google.common.collect.Iterators$2 -> com.android.tools.r8.r.a.a.b.G0:
    java.util.Iterator iterator -> a
    java.lang.Iterable val$iterable -> b
    1:2:void <init>(java.lang.Iterable):411:412 -> <init>
    1:1:boolean hasNext():425:425 -> hasNext
    1:7:java.lang.Object next():430:436 -> next
    1:1:void remove():441:441 -> remove
com.android.tools.r8.com.google.common.collect.Iterators$3 -> com.android.tools.r8.r.a.a.b.H0:
    java.lang.Object[] val$elements -> b
    int index -> a
    1:2:void <init>(java.lang.Object[]):471:472 -> <init>
    1:1:boolean hasNext():476:476 -> hasNext
    1:6:java.lang.Object next():481:486 -> next
    7:7:java.lang.Object next():482:482 -> next
com.android.tools.r8.com.google.common.collect.Iterators$5 -> com.android.tools.r8.r.a.a.b.I0:
    java.util.Iterator val$unfiltered -> c
    com.android.tools.r8.com.google.common.base.Predicate val$retainIfTrue -> d
    1:1:void <init>(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):659:659 -> <init>
    1:7:java.lang.Object computeNext():662:668 -> c
com.android.tools.r8.com.google.common.collect.Iterators$6 -> com.android.tools.r8.r.a.a.b.J0:
    com.android.tools.r8.com.google.common.base.Function val$function -> b
    1:1:void <init>(java.util.Iterator,com.android.tools.r8.com.google.common.base.Function):817:817 -> <init>
    1:1:java.lang.Object transform(java.lang.Object):820:820 -> a
com.android.tools.r8.com.google.common.collect.Iterators$7 -> com.android.tools.r8.r.a.a.b.K0:
    java.util.Iterator val$iterator -> c
    int val$limitSize -> b
    int count -> a
    1:1:void <init>(int,java.util.Iterator):952:952 -> <init>
    1:1:boolean hasNext():957:957 -> hasNext
    1:5:java.lang.Object next():962:966 -> next
    6:6:java.lang.Object next():963:963 -> next
    1:1:void remove():971:971 -> remove
com.android.tools.r8.com.google.common.collect.Iterators$9 -> com.android.tools.r8.r.a.a.b.L0:
    java.lang.Object val$value -> b
    boolean done -> a
    1:1:void <init>(java.lang.Object):1104:1104 -> <init>
    1:1:boolean hasNext():1109:1109 -> hasNext
    1:5:java.lang.Object next():1114:1118 -> next
    6:6:java.lang.Object next():1115:1115 -> next
com.android.tools.r8.com.google.common.collect.Iterators$ArrayItr -> com.android.tools.r8.r.a.a.b.M0:
    com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator EMPTY -> e
    java.lang.Object[] array -> c
    int offset -> d
    1:1:void <clinit>():1058:1058 -> <clinit>
    1:3:void <init>(java.lang.Object[],int,int,int):1065:1067 -> <init>
    1:1:java.lang.Object get(int):1072:1072 -> a
com.android.tools.r8.com.google.common.collect.Iterators$ConcatenatedIterator -> com.android.tools.r8.r.a.a.b.N0:
    java.util.Deque metaIterators -> d
    java.util.Iterator topMetaIterator -> c
    java.util.Iterator iterator -> b
    java.util.Iterator toRemove -> a
    1:3:void <init>(java.util.Iterator):1365:1367 -> <init>
    1:1:boolean hasNext():1385:1385 -> hasNext
    2:9:java.util.Iterator getTopMetaIterator():1373:1380 -> hasNext
    2:9:boolean hasNext():1389 -> hasNext
    10:11:java.util.Iterator getTopMetaIterator():1374:1375 -> hasNext
    10:11:boolean hasNext():1389 -> hasNext
    12:38:boolean hasNext():1389:1415 -> hasNext
    1:5:java.lang.Object next():1423:1427 -> next
    1:3:void remove():1433:1435 -> remove
com.android.tools.r8.com.google.common.collect.Iterators$EmptyModifiableIterator -> com.android.tools.r8.r.a.a.b.O0:
    com.android.tools.r8.com.google.common.collect.Iterators$EmptyModifiableIterator INSTANCE -> a
    1:1:void <clinit>():98:98 -> <clinit>
    1:1:void <init>(java.lang.String,int):97:97 -> <init>
    1:1:java.lang.Object next():107:107 -> next
    1:1:void remove():112:112 -> remove
com.android.tools.r8.com.google.common.collect.ListMultimap -> com.android.tools.r8.r.a.a.b.P0:
com.android.tools.r8.com.google.common.collect.Lists$RandomAccessReverseList -> com.android.tools.r8.r.a.a.b.Q0:
    1:1:void <init>(java.util.List):991:991 -> <init>
com.android.tools.r8.com.google.common.collect.Lists$ReverseList -> com.android.tools.r8.r.a.a.b.S0:
    java.util.List forwardList -> a
    1:2:void <init>(java.util.List):854:855 -> <init>
    1:1:java.util.List getForwardList():859:859 -> a
    2:2:int size():906:906 -> a
    2:2:int reversePosition(int):869 -> a
    2:2:int access$000(com.android.tools.r8.com.google.common.collect.Lists$ReverseList,int):851 -> a
    3:3:int reversePosition(int):870:870 -> a
    3:3:int access$000(com.android.tools.r8.com.google.common.collect.Lists$ReverseList,int):851 -> a
    1:1:void add(int,java.lang.Object):876:876 -> add
    2:2:int size():906:906 -> add
    2:2:int reversePosition(int):869 -> add
    2:2:void add(int,java.lang.Object):876 -> add
    3:3:int reversePosition(int):870:870 -> add
    3:3:void add(int,java.lang.Object):876 -> add
    4:4:void add(int,java.lang.Object):876:876 -> add
    1:1:void clear():881:881 -> clear
    1:1:java.lang.Object get(int):901:901 -> get
    2:2:int size():906:906 -> get
    2:2:int reverseIndex(int):863 -> get
    2:2:java.lang.Object get(int):901 -> get
    3:3:int reverseIndex(int):864:864 -> get
    3:3:java.lang.Object get(int):901 -> get
    4:4:java.lang.Object get(int):901:901 -> get
    1:1:java.util.Iterator iterator():917:917 -> iterator
    1:1:int size():906:906 -> listIterator
    1:1:int reversePosition(int):869 -> listIterator
    1:1:java.util.ListIterator listIterator(int):922 -> listIterator
    2:2:int reversePosition(int):870:870 -> listIterator
    2:2:java.util.ListIterator listIterator(int):922 -> listIterator
    3:4:java.util.ListIterator listIterator(int):923:924 -> listIterator
    1:1:java.lang.Object remove(int):886:886 -> remove
    2:2:int size():906:906 -> remove
    2:2:int reverseIndex(int):863 -> remove
    2:2:java.lang.Object remove(int):886 -> remove
    3:3:int reverseIndex(int):864:864 -> remove
    3:3:java.lang.Object remove(int):886 -> remove
    4:4:java.lang.Object remove(int):886:886 -> remove
    1:1:void removeRange(int,int):891:891 -> removeRange
    1:1:java.lang.Object set(int,java.lang.Object):896:896 -> set
    2:2:int size():906:906 -> set
    2:2:int reverseIndex(int):863 -> set
    2:2:java.lang.Object set(int,java.lang.Object):896 -> set
    3:3:int reverseIndex(int):864:864 -> set
    3:3:java.lang.Object set(int,java.lang.Object):896 -> set
    4:4:java.lang.Object set(int,java.lang.Object):896:896 -> set
    1:1:int size():906:906 -> size
    1:1:int size():906:906 -> subList
    1:1:java.util.List subList(int,int):911 -> subList
    2:3:java.util.List subList(int,int):911:912 -> subList
    4:4:int size():906:906 -> subList
    4:4:int reversePosition(int):869 -> subList
    4:4:java.util.List subList(int,int):912 -> subList
    5:5:int reversePosition(int):870:870 -> subList
    5:5:java.util.List subList(int,int):912 -> subList
    6:6:int size():906:906 -> subList
    6:6:int reversePosition(int):869 -> subList
    6:6:java.util.List subList(int,int):912 -> subList
    7:7:int reversePosition(int):870:870 -> subList
    7:7:java.util.List subList(int,int):912 -> subList
    8:8:java.util.List subList(int,int):912:912 -> subList
com.android.tools.r8.com.google.common.collect.Lists$ReverseList$1 -> com.android.tools.r8.r.a.a.b.R0:
    com.android.tools.r8.com.google.common.collect.Lists$ReverseList this$0 -> c
    java.util.ListIterator val$forwardIterator -> b
    boolean canRemoveOrSet -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Lists$ReverseList,java.util.ListIterator):924:924 -> <init>
    1:3:void add(java.lang.Object):930:932 -> add
    1:1:boolean hasNext():937:937 -> hasNext
    1:1:boolean hasPrevious():942:942 -> hasPrevious
    1:1:boolean hasNext():937:937 -> next
    1:1:java.lang.Object next():947 -> next
    2:3:java.lang.Object next():950:951 -> next
    4:4:java.lang.Object next():948:948 -> next
    1:1:int nextIndex():956:956 -> nextIndex
    1:1:boolean hasPrevious():942:942 -> previous
    1:1:java.lang.Object previous():961 -> previous
    2:3:java.lang.Object previous():964:965 -> previous
    4:4:java.lang.Object previous():962:962 -> previous
    1:1:int previousIndex():970:970 -> previousIndex
    1:3:void remove():975:977 -> remove
    1:2:void set(java.lang.Object):982:983 -> set
com.android.tools.r8.com.google.common.collect.MapMaker -> com.android.tools.r8.r.a.a.b.T0:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength -> d
    boolean useCustomMap -> a
    int initialCapacity -> b
    int concurrencyLevel -> c
    1:1:void <init>():108:108 -> <init>
    2:3:void <init>():96:97 -> <init>
    1:1:int getConcurrencyLevel():186:186 -> a
    1:1:int getInitialCapacity():152:152 -> b
    1:1:com.android.tools.r8.com.google.common.base.Equivalence getKeyEquivalence():127:127 -> c
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength getKeyStrength():217:217 -> d
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength getValueStrength():263:263 -> e
    1:2:java.util.concurrent.ConcurrentMap makeMap():278:279 -> f
    3:3:int getInitialCapacity():152:152 -> f
    3:3:java.util.concurrent.ConcurrentMap makeMap():279 -> f
    4:4:int getConcurrencyLevel():186:186 -> f
    4:4:java.util.concurrent.ConcurrentMap makeMap():279 -> f
    5:7:java.util.concurrent.ConcurrentMap makeMap():279:281 -> f
    1:1:com.android.tools.r8.com.google.common.collect.MapMaker weakValues():239:239 -> g
    2:6:com.android.tools.r8.com.google.common.collect.MapMaker setValueStrength(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength):253:257 -> g
    2:6:com.android.tools.r8.com.google.common.collect.MapMaker weakValues():239 -> g
    1:17:java.lang.String toString():290:306 -> toString
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap -> com.android.tools.r8.r.a.a.b.Y0:
    java.util.Set keySet -> g
    java.util.Set entrySet -> i
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper entryHelper -> f
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment[] segments -> c
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference UNSET_WEAK_VALUE_REFERENCE -> j
    int concurrencyLevel -> d
    com.android.tools.r8.com.google.common.base.Equivalence keyEquivalence -> e
    int segmentShift -> b
    int segmentMask -> a
    java.util.Collection values -> h
    1:1:void <clinit>():1023:1023 -> <clinit>
    1:33:void <init>(com.android.tools.r8.com.google.common.collect.MapMaker,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper):160:192 -> <init>
    1:24:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap create(com.android.tools.r8.com.google.common.collect.MapMaker):199:222 -> a
    25:25:int hash(java.lang.Object):1097:1097 -> a
    26:26:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment createSegment(int,int):1133:1133 -> a
    27:27:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment[] newSegmentArray(int):1153:1153 -> a
    28:29:java.util.ArrayList toArrayList(java.util.Collection):2861:2862 -> a
    28:29:java.util.ArrayList access$900(java.util.Collection):69 -> a
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int):1129:1129 -> b
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference unsetWeakValueReference():401:401 -> c
    1:1:void clear():2505:2505 -> clear
    2:15:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.clear():1801:1814 -> clear
    2:15:void clear():2506 -> clear
    1:2:boolean containsKey(java.lang.Object):2395:2396 -> containsKey
    3:10:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.containsKey(java.lang.Object,int):1462:1469 -> containsKey
    3:10:boolean containsKey(java.lang.Object):2396 -> containsKey
    11:11:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.containsKey(java.lang.Object,int):0:0 -> containsKey
    11:11:boolean containsKey(java.lang.Object):2396 -> containsKey
    1:11:boolean containsValue(java.lang.Object):2410:2420 -> containsValue
    12:18:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.getLiveValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1977:1983 -> containsValue
    12:18:boolean containsValue(java.lang.Object):2421 -> containsValue
    19:19:boolean containsValue(java.lang.Object):2422:2422 -> containsValue
    20:27:boolean containsValue(java.lang.Object):2420:2427 -> containsValue
    1:2:java.util.Set entrySet():2530:2531 -> entrySet
    1:2:java.lang.Object get(java.lang.Object):2374:2375 -> get
    3:14:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.get(java.lang.Object,int):1445:1456 -> get
    3:14:java.lang.Object get(java.lang.Object):2375 -> get
    15:21:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.get(java.lang.Object,int):1450:1456 -> get
    15:21:java.lang.Object get(java.lang.Object):2375 -> get
    22:22:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.get(java.lang.Object,int):0:0 -> get
    22:22:java.lang.Object get(java.lang.Object):2375 -> get
    1:1:com.android.tools.r8.com.google.common.base.Equivalence valueEquivalence():2322:2322 -> h
    1:14:boolean isEmpty():2337:2350 -> isEmpty
    1:2:java.util.Set keySet():2514:2515 -> keySet
    1:2:java.lang.Object put(java.lang.Object,java.lang.Object):2442:2443 -> put
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> put
    3:3:java.lang.Object put(java.lang.Object,java.lang.Object):2441 -> put
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> put
    4:4:java.lang.Object put(java.lang.Object,java.lang.Object):2440 -> put
    1:2:void putAll(java.util.Map):2457:2458 -> putAll
    1:2:java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object):2451:2452 -> putIfAbsent
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> putIfAbsent
    3:3:java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object):2450 -> putIfAbsent
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> putIfAbsent
    4:4:java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object):2449 -> putIfAbsent
    1:2:java.lang.Object remove(java.lang.Object):2468:2469 -> remove
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1720:1720 -> remove
    3:3:java.lang.Object remove(java.lang.Object):2469 -> remove
    4:4:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.preWriteCleanup():2007:2007 -> remove
    4:4:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1722 -> remove
    4:4:java.lang.Object remove(java.lang.Object):2469 -> remove
    5:14:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1725:1734 -> remove
    5:14:java.lang.Object remove(java.lang.Object):2469 -> remove
    15:15:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.isCollected(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1968:1968 -> remove
    15:15:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1738 -> remove
    15:15:java.lang.Object remove(java.lang.Object):2469 -> remove
    16:27:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1744:1755 -> remove
    16:27:java.lang.Object remove(java.lang.Object):2469 -> remove
    28:54:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1729:1755 -> remove
    28:54:java.lang.Object remove(java.lang.Object):2469 -> remove
    55:56:boolean remove(java.lang.Object,java.lang.Object):2478:2479 -> remove
    1:2:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2490:2491 -> replace
    3:3:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1631:1631 -> replace
    3:3:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
    4:4:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.preWriteCleanup():2007:2007 -> replace
    4:4:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1633 -> replace
    4:4:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
    5:16:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1635:1646 -> replace
    5:16:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
    17:17:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.isCollected(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1968:1968 -> replace
    17:17:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1648 -> replace
    17:17:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
    18:28:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1650:1660 -> replace
    18:28:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
    29:29:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):1254:1254 -> replace
    29:29:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1661 -> replace
    29:29:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
    30:30:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1673:1673 -> replace
    30:30:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
    31:65:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1639:1673 -> replace
    31:65:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
    66:66:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replace
    66:66:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2486 -> replace
    67:67:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replace
    67:67:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2485 -> replace
    68:69:java.lang.Object replace(java.lang.Object,java.lang.Object):2499:2500 -> replace
    70:70:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1678:1678 -> replace
    70:70:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
    71:71:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.preWriteCleanup():2007:2007 -> replace
    71:71:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1680 -> replace
    71:71:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
    72:83:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1682:1693 -> replace
    72:83:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
    84:84:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.isCollected(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1968:1968 -> replace
    84:84:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1695 -> replace
    84:84:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
    85:94:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1697:1706 -> replace
    85:94:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
    95:95:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):1254:1254 -> replace
    95:95:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1707 -> replace
    95:95:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
    96:96:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1714:1714 -> replace
    96:96:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
    97:125:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1686:1714 -> replace
    97:125:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
    126:126:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replace
    126:126:java.lang.Object replace(java.lang.Object,java.lang.Object):2498 -> replace
    127:127:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replace
    127:127:java.lang.Object replace(java.lang.Object,java.lang.Object):2497 -> replace
    1:6:int size():2361:2366 -> size
    1:2:java.util.Collection values():2522:2523 -> values
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$1 -> com.android.tools.r8.r.a.a.b.U0:
    1:1:void <init>():1024:1024 -> <init>
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry() -> a
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference copyFor(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1024:1024 -> a
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractStrongKeyEntry -> com.android.tools.r8.r.a.a.b.V0:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry next -> c
    java.lang.Object key -> a
    int hash -> b
    1:4:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):360:363 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getNext():378:378 -> b
    1:1:int getHash():373:373 -> c
    1:1:java.lang.Object getKey():368:368 -> getKey
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractWeakKeyEntry -> com.android.tools.r8.r.a.a.b.W0:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry next -> b
    int hash -> a
    1:3:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):671:673 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getNext():688:688 -> b
    1:1:int getHash():683:683 -> c
    1:1:java.lang.Object getKey():678:678 -> getKey
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$DummyInternalEntry -> com.android.tools.r8.r.a.a.b.X0:
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$EntryIterator -> com.android.tools.r8.r.a.a.b.Y0$a:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2711:2711 -> <init>
    1:1:java.util.Map$Entry next():2715:2715 -> next
    1:1:java.lang.Object next():2711 -> next
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$EntrySet -> com.android.tools.r8.r.a.a.b.Y0$b:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2796:2796 -> <init>
    1:1:void clear():2840:2840 -> clear
    1:11:boolean contains(java.lang.Object):2805:2815 -> contains
    1:1:boolean isEmpty():2835:2835 -> isEmpty
    1:1:java.util.Iterator iterator():2800:2800 -> iterator
    1:6:boolean remove(java.lang.Object):2820:2825 -> remove
    1:1:int size():2830:2830 -> size
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$HashIterator -> com.android.tools.r8.r.a.a.b.Y0$c:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry nextEntry -> e
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment currentSegment -> c
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap this$0 -> h
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextExternal -> f
    java.util.concurrent.atomic.AtomicReferenceArray currentTable -> d
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry lastReturned -> g
    int nextTableIndex -> b
    int nextSegmentIndex -> a
    1:4:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2546:2549 -> <init>
    1:2:boolean advanceTo(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):2612:2613 -> a
    3:6:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.getLiveValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1141:1144 -> a
    3:6:boolean advanceTo(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):2613 -> a
    7:14:boolean advanceTo(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):2615:2622 -> a
    15:15:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.getLiveValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1141:1141 -> a
    15:15:boolean advanceTo(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):2613 -> a
    16:16:boolean advanceTo(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):2622:2622 -> a
    1:16:void advance():2556:2571 -> c
    1:6:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextEntry():2632:2637 -> h
    7:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextEntry():2633:2633 -> h
    1:1:boolean hasNext():2628:2628 -> hasNext
    1:3:boolean nextInChain():2582:2584 -> i
    4:4:boolean nextInChain():2583:2583 -> i
    1:3:boolean nextInTable():2596:2598 -> j
    1:2:void remove():2642:2643 -> remove
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry.getKey():2679:2679 -> remove
    3:3:void remove():2643 -> remove
    4:5:void remove():2643:2644 -> remove
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry -> com.android.tools.r8.r.a.a.b.Z0:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getNext() -> b
    int getHash() -> c
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper -> com.android.tools.r8.r.a.a.b.a1:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry) -> a
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry) -> a
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int) -> a
    void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object) -> a
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength() -> a
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$KeyIterator -> com.android.tools.r8.r.a.a.b.Y0$d:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2648:2648 -> <init>
    1:1:java.lang.Object next():2652:2652 -> next
    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry.getKey():2679:2679 -> next
    2:2:java.lang.Object next():2652 -> next
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$KeySet -> com.android.tools.r8.r.a.a.b.Y0$e:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2720:2720 -> <init>
    1:1:void clear():2749:2749 -> clear
    1:1:boolean contains(java.lang.Object):2739:2739 -> contains
    1:1:boolean isEmpty():2734:2734 -> isEmpty
    1:1:java.util.Iterator iterator():2724:2724 -> iterator
    1:1:boolean remove(java.lang.Object):2744:2744 -> remove
    1:1:int size():2729:2729 -> size
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$SafeToArraySet -> com.android.tools.r8.r.a.a.b.b1:
    1:1:void <init>():2844:2844 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$1):2844:2844 -> <init>
    1:1:java.lang.Object[] toArray():2850:2850 -> toArray
    2:2:java.lang.Object[] toArray(java.lang.Object[]):2855:2855 -> toArray
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment -> com.android.tools.r8.r.a.a.b.c1:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap map -> a
    java.util.concurrent.atomic.AtomicInteger readCount -> g
    int maxSegmentSize -> f
    int threshold -> d
    java.util.concurrent.atomic.AtomicReferenceArray table -> e
    int count -> b
    int modCount -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):1231:1231 -> <init>
    2:7:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):1229:1234 -> <init>
    1:1:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):1254:1254 -> a
    2:2:java.util.concurrent.atomic.AtomicReferenceArray newEntryArray(int):1263:1263 -> a
    3:8:void initTable(java.util.concurrent.atomic.AtomicReferenceArray):1267:1272 -> a
    9:9:void clearReferenceQueue(java.lang.ref.ReferenceQueue):1405:1405 -> a
    10:10:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry(java.lang.Object,int):1418:1418 -> a
    10:10:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getLiveEntry(java.lang.Object,int):1440 -> a
    11:12:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getFirst(int):1411:1412 -> a
    11:12:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry(java.lang.Object,int):1419 -> a
    11:12:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getLiveEntry(java.lang.Object,int):1440 -> a
    13:23:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry(java.lang.Object,int):1420:1430 -> a
    13:23:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getLiveEntry(java.lang.Object,int):1440 -> a
    24:24:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry(java.lang.Object,int):1419:1419 -> a
    24:24:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getLiveEntry(java.lang.Object,int):1440 -> a
    25:25:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1503:1503 -> a
    26:26:void preWriteCleanup():2007:2007 -> a
    26:26:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1505 -> a
    27:48:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1507:1528 -> a
    49:49:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):1254:1254 -> a
    49:49:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1529 -> a
    50:75:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1530:1555 -> a
    76:76:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1540:1540 -> a
    77:77:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):1254:1254 -> a
    77:77:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1541 -> a
    78:78:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1555:1555 -> a
    79:116:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1518:1555 -> a
    117:133:void expand():1564:1580 -> a
    134:134:java.util.concurrent.atomic.AtomicReferenceArray newEntryArray(int):1263:1263 -> a
    134:134:void expand():1581 -> a
    135:156:void expand():1582:1603 -> a
    157:170:void expand():1602:1615 -> a
    171:171:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copyEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1259:1259 -> a
    171:171:void expand():1616 -> a
    172:172:void expand():1618:1618 -> a
    173:187:void expand():1613:1627 -> a
    188:188:boolean remove(java.lang.Object,int,java.lang.Object):1760:1760 -> a
    189:189:void preWriteCleanup():2007:2007 -> a
    189:189:boolean remove(java.lang.Object,int,java.lang.Object):1762 -> a
    190:202:boolean remove(java.lang.Object,int,java.lang.Object):1765:1777 -> a
    203:203:boolean isCollected(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1968:1968 -> a
    203:203:boolean remove(java.lang.Object,int,java.lang.Object):1779 -> a
    204:215:boolean remove(java.lang.Object,int,java.lang.Object):1785:1796 -> a
    216:243:boolean remove(java.lang.Object,int,java.lang.Object):1769:1796 -> a
    244:245:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry removeFromChain(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1833:1834 -> a
    246:246:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copyEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1259:1259 -> a
    246:246:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry removeFromChain(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1836 -> a
    247:255:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry removeFromChain(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1835:1843 -> a
    256:256:boolean isCollected(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1968:1968 -> a
    void maybeClearReferenceQueues() -> b
    1:4:void drainKeyReferenceQueue(java.lang.ref.ReferenceQueue):1380:1383 -> b
    5:6:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1108:1109 -> b
    5:6:void drainKeyReferenceQueue(java.lang.ref.ReferenceQueue):1383 -> b
    7:27:boolean reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,int):1850:1870 -> b
    7:27:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1109 -> b
    7:27:void drainKeyReferenceQueue(java.lang.ref.ReferenceQueue):1383 -> b
    28:41:boolean reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,int):1857:1870 -> b
    28:41:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1109 -> b
    28:41:void drainKeyReferenceQueue(java.lang.ref.ReferenceQueue):1383 -> b
    42:42:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1108:1108 -> b
    42:42:void drainKeyReferenceQueue(java.lang.ref.ReferenceQueue):1383 -> b
    void maybeDrainReferenceQueues() -> c
    1:4:void drainValueReferenceQueue(java.lang.ref.ReferenceQueue):1394:1397 -> c
    5:7:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1102:1104 -> c
    5:7:void drainValueReferenceQueue(java.lang.ref.ReferenceQueue):1397 -> c
    8:35:boolean reclaimValue(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1877:1904 -> c
    8:35:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1104 -> c
    8:35:void drainValueReferenceQueue(java.lang.ref.ReferenceQueue):1397 -> c
    36:56:boolean reclaimValue(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1884:1904 -> c
    36:56:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1104 -> c
    36:56:void drainValueReferenceQueue(java.lang.ref.ReferenceQueue):1397 -> c
    57:57:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.reclaimValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1102:1102 -> c
    57:57:void drainValueReferenceQueue(java.lang.ref.ReferenceQueue):1397 -> c
    1:1:void postReadCleanup():1996:1996 -> d
    2:2:void runCleanup():2011:2011 -> d
    2:2:void postReadCleanup():1997 -> d
    1:6:void runLockedCleanup():2015:2020 -> e
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment self() -> f
    1:5:void tryDrainReferenceQueues():1367:1371 -> g
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength -> com.android.tools.r8.r.a.a.b.f1:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength STRONG -> a
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength WEAK -> b
    1:8:void <clinit>():257:264 -> <clinit>
    1:1:void <init>(java.lang.String,int):256:256 -> <init>
    2:2:void <init>(java.lang.String,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$1):256:256 -> <init>
    com.android.tools.r8.com.google.common.base.Equivalence defaultEquivalence() -> a
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength$1 -> com.android.tools.r8.r.a.a.b.d1:
    1:1:void <init>(java.lang.String,int):257:257 -> <init>
    1:1:com.android.tools.r8.com.google.common.base.Equivalence defaultEquivalence():260:260 -> a
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength$2 -> com.android.tools.r8.r.a.a.b.e1:
    1:1:void <init>(java.lang.String,int):264:264 -> <init>
    1:1:com.android.tools.r8.com.google.common.base.Equivalence defaultEquivalence():267:267 -> a
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry -> com.android.tools.r8.r.a.a.b.h1:
    java.lang.Object value -> d
    1:1:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry):411:411 -> <init>
    2:2:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry):408:408 -> <init>
    1:1:void setValue(java.lang.Object):421:421 -> a
    2:4:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry):425:427 -> a
    1:1:java.lang.Object getValue():417:417 -> getValue
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry$Helper -> com.android.tools.r8.r.a.a.b.g1:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry$Helper INSTANCE -> a
    1:1:void <clinit>():435:435 -> <clinit>
    1:1:void <init>():432:432 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):432:432 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry):467:467 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):432 -> a
    3:3:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):432:432 -> a
    4:4:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueSegment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry):484:484 -> a
    4:4:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):432 -> a
    5:5:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):432:432 -> a
    6:6:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry,java.lang.Object):475:475 -> a
    6:6:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):432 -> a
    7:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength():449:449 -> a
    8:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueSegment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):459:459 -> a
    8:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):432 -> a
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry$Helper instance():439:439 -> b
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueSegment -> com.android.tools.r8.r.a.a.b.i1:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2035:2035 -> <init>
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment self() -> f
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry -> com.android.tools.r8.r.a.a.b.k1:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference valueReference -> d
    1:1:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry):497:497 -> <init>
    2:2:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry):494:494 -> <init>
    1:5:void setValue(java.lang.Object,java.lang.ref.ReferenceQueue):511:515 -> a
    6:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry copy(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry):520:522 -> a
    9:9:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference getValueReference():528:528 -> a
    1:1:java.lang.Object getValue():502:502 -> getValue
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry$Helper -> com.android.tools.r8.r.a.a.b.j1:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry$Helper INSTANCE -> a
    1:1:void <clinit>():535:535 -> <clinit>
    1:1:void <init>():532:532 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):532:532 -> a
    2:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry):566:569 -> a
    2:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):532 -> a
    6:6:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):532:532 -> a
    7:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry):584:584 -> a
    7:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):532 -> a
    8:8:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):532:532 -> a
    9:9:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry,java.lang.Object):575:575 -> a
    9:9:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):532 -> a
    10:10:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength():549:549 -> a
    11:11:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):558:558 -> a
    11:11:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):532 -> a
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry$Helper instance():539:539 -> b
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment -> com.android.tools.r8.r.a.a.b.l1:
    java.lang.ref.ReferenceQueue queueForValues -> h
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2060:2060 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2053:2053 -> <init>
    1:1:java.lang.ref.ReferenceQueue access$100(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment):2051:2051 -> a
    1:1:void maybeClearReferenceQueues():2112:2112 -> b
    1:1:void maybeDrainReferenceQueues():2107:2107 -> c
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment self() -> f
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$ValueIterator -> com.android.tools.r8.r.a.a.b.Y0$f:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2656:2656 -> <init>
    1:1:java.lang.Object next():2660:2660 -> next
    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry.getValue():2684:2684 -> next
    2:2:java.lang.Object next():2660 -> next
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Values -> com.android.tools.r8.r.a.a.b.Y0$g:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2754:2754 -> <init>
    1:1:void clear():2778:2778 -> clear
    1:1:boolean contains(java.lang.Object):2773:2773 -> contains
    1:1:boolean isEmpty():2768:2768 -> isEmpty
    1:1:java.util.Iterator iterator():2758:2758 -> iterator
    1:1:int size():2763:2763 -> size
    1:1:java.lang.Object[] toArray():2786:2786 -> toArray
    2:2:java.lang.Object[] toArray(java.lang.Object[]):2791:2791 -> toArray
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry -> com.android.tools.r8.r.a.a.b.n1:
    java.lang.Object value -> c
    1:1:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):780:780 -> <init>
    2:2:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):776:776 -> <init>
    1:1:void setValue(java.lang.Object):790:790 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):795:795 -> a
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractWeakKeyEntry.getKey():678:678 -> a
    3:3:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):796 -> a
    4:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):796:797 -> a
    6:6:void setValue(java.lang.Object):790:790 -> a
    6:6:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):797 -> a
    1:1:java.lang.Object getValue():786:786 -> getValue
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry$Helper -> com.android.tools.r8.r.a.a.b.m1:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry$Helper INSTANCE -> a
    1:1:void <clinit>():805:805 -> <clinit>
    1:1:void <init>():802:802 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):802:802 -> a
    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractWeakKeyEntry.getKey():678:678 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):836 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):802 -> a
    3:3:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):840:840 -> a
    3:3:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):802 -> a
    4:4:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):802:802 -> a
    5:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):855:855 -> a
    5:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):802 -> a
    6:6:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):802:802 -> a
    7:7:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry,java.lang.Object):846:846 -> a
    7:7:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):802 -> a
    8:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength():819:819 -> a
    9:9:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):828:828 -> a
    9:9:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):802 -> a
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry$Helper instance():809:809 -> b
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment -> com.android.tools.r8.r.a.a.b.o1:
    java.lang.ref.ReferenceQueue queueForKeys -> h
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2149:2149 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2142:2142 -> <init>
    1:1:java.lang.ref.ReferenceQueue access$300(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment):2140:2140 -> a
    1:1:void maybeClearReferenceQueues():2175:2175 -> b
    1:1:void maybeDrainReferenceQueues():2170:2170 -> c
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment self() -> f
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry -> com.android.tools.r8.r.a.a.b.q1:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference valueReference -> c
    1:1:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):869:869 -> <init>
    2:2:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):865:865 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry copy(java.lang.ref.ReferenceQueue,java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):881:881 -> a
    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractWeakKeyEntry.getKey():678:678 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry copy(java.lang.ref.ReferenceQueue,java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):882 -> a
    3:4:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry copy(java.lang.ref.ReferenceQueue,java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):882:883 -> a
    5:9:void setValue(java.lang.Object,java.lang.ref.ReferenceQueue):893:897 -> a
    10:10:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference getValueReference():902:902 -> a
    1:1:java.lang.Object getValue():874:874 -> getValue
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry$Helper -> com.android.tools.r8.r.a.a.b.p1:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry$Helper INSTANCE -> a
    1:1:void <clinit>():909:909 -> <clinit>
    1:1:void <init>():906:906 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):906:906 -> a
    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractWeakKeyEntry.getKey():678:678 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):939 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):906 -> a
    3:6:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):943:946 -> a
    3:6:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):906 -> a
    7:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):906:906 -> a
    8:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):961:961 -> a
    8:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):906 -> a
    9:9:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):906:906 -> a
    10:10:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry,java.lang.Object):952:952 -> a
    10:10:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):906 -> a
    11:11:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength():923:923 -> a
    12:12:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):931:931 -> a
    12:12:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):906 -> a
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry$Helper instance():913:913 -> b
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment -> com.android.tools.r8.r.a.a.b.r1:
    java.lang.ref.ReferenceQueue queueForKeys -> h
    java.lang.ref.ReferenceQueue queueForValues -> i
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2189:2189 -> <init>
    2:3:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2182:2183 -> <init>
    1:1:java.lang.ref.ReferenceQueue access$400(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment):2180:2180 -> a
    1:1:java.lang.ref.ReferenceQueue access$500(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment):2180:2180 -> b
    2:2:void maybeClearReferenceQueues():2247:2247 -> b
    1:2:void maybeDrainReferenceQueues():2241:2242 -> c
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment self() -> f
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueEntry -> com.android.tools.r8.r.a.a.b.s1:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference getValueReference() -> a
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference -> com.android.tools.r8.r.a.a.b.t1:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference copyFor(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry) -> a
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry() -> a
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReferenceImpl -> com.android.tools.r8.r.a.a.b.u1:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry entry -> a
    1:2:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1051:1052 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry():1057:1057 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference copyFor(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1062:1062 -> a
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry -> com.android.tools.r8.r.a.a.b.Y0$h:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap this$0 -> c
    java.lang.Object value -> b
    java.lang.Object key -> a
    1:3:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,java.lang.Object,java.lang.Object):2672:2674 -> <init>
    1:3:boolean equals(java.lang.Object):2690:2692 -> equals
    1:1:java.lang.Object getKey():2679:2679 -> getKey
    1:1:java.lang.Object getValue():2684:2684 -> getValue
    1:1:int hashCode():2700:2700 -> hashCode
    1:2:java.lang.Object setValue(java.lang.Object):2705:2706 -> setValue
com.android.tools.r8.com.google.common.collect.Maps$1 -> com.android.tools.r8.r.a.a.b.v1:
com.android.tools.r8.com.google.common.collect.Maps$5 -> com.android.tools.r8.r.a.a.b.w1:
    java.util.Map$Entry val$entry -> a
    1:1:void <init>(java.util.Map$Entry):1447:1447 -> <init>
    1:1:java.lang.Object getKey():1450:1450 -> getKey
    1:1:java.lang.Object getValue():1455:1455 -> getValue
com.android.tools.r8.com.google.common.collect.Maps$6 -> com.android.tools.r8.r.a.a.b.x1:
    java.util.Iterator val$entryIterator -> a
    1:1:void <init>(java.util.Iterator):1462:1462 -> <init>
    1:1:boolean hasNext():1465:1465 -> hasNext
    1:1:java.util.Map$Entry next():1470:1470 -> next
    1:1:java.lang.Object next():1462 -> next
    2:2:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.unmodifiableEntry(java.util.Map$Entry):1447:1447 -> next
    2:2:java.util.Map$Entry next():1470 -> next
    2:2:java.lang.Object next():1462 -> next
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> next
    3:3:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.unmodifiableEntry(java.util.Map$Entry):1446 -> next
    3:3:java.util.Map$Entry next():1470 -> next
    3:3:java.lang.Object next():1462 -> next
com.android.tools.r8.com.google.common.collect.Maps$EntryFunction -> com.android.tools.r8.r.a.a.b.A1:
    com.android.tools.r8.com.google.common.collect.Maps$EntryFunction VALUE -> b
    com.android.tools.r8.com.google.common.collect.Maps$EntryFunction KEY -> a
    1:8:void <clinit>():93:100 -> <clinit>
    1:1:void <init>(java.lang.String,int):92:92 -> <init>
    2:2:void <init>(java.lang.String,int,com.android.tools.r8.com.google.common.collect.Maps$1):92:92 -> <init>
com.android.tools.r8.com.google.common.collect.Maps$EntryFunction$1 -> com.android.tools.r8.r.a.a.b.y1:
    1:1:void <init>(java.lang.String,int):93:93 -> <init>
    1:1:java.lang.Object apply(java.lang.Object):93:93 -> apply
    2:2:java.lang.Object apply(java.util.Map$Entry):97:97 -> apply
    2:2:java.lang.Object apply(java.lang.Object):93 -> apply
com.android.tools.r8.com.google.common.collect.Maps$EntryFunction$2 -> com.android.tools.r8.r.a.a.b.z1:
    1:1:void <init>(java.lang.String,int):100:100 -> <init>
    1:1:java.lang.Object apply(java.lang.Object):100:100 -> apply
    2:2:java.lang.Object apply(java.util.Map$Entry):104:104 -> apply
    2:2:java.lang.Object apply(java.lang.Object):100 -> apply
com.android.tools.r8.com.google.common.collect.Maps$EntrySet -> com.android.tools.r8.r.a.a.b.B1:
    1:1:void <init>():4112:4112 -> <init>
    java.util.Map map() -> a
    1:1:void clear():4122:4122 -> clear
    1:5:boolean contains(java.lang.Object):4127:4131 -> contains
    1:1:boolean isEmpty():4138:4138 -> isEmpty
    1:3:boolean remove(java.lang.Object):4143:4145 -> remove
    1:1:boolean com.android.tools.r8.com.google.common.collect.Sets$ImprovedAbstractSet.removeAll(java.util.Collection):80:80 -> removeAll
    1:1:boolean removeAll(java.util.Collection):4153 -> removeAll
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> removeAll
    2:2:boolean removeAll(java.util.Collection):4153 -> removeAll
    3:3:boolean removeAll(java.util.Collection):4156:4156 -> removeAll
    1:1:boolean retainAll(java.util.Collection):4163:4163 -> retainAll
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> retainAll
    2:2:boolean retainAll(java.util.Collection):4163 -> retainAll
    3:3:boolean retainAll(java.util.Collection):4166:4166 -> retainAll
    4:4:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSetWithExpectedSize(int):253:253 -> retainAll
    4:4:boolean retainAll(java.util.Collection):4166 -> retainAll
    5:11:boolean retainAll(java.util.Collection):4167:4173 -> retainAll
    1:1:int size():4117:4117 -> size
com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap -> com.android.tools.r8.r.a.a.b.D1:
    1:1:void <init>():3653:3653 -> <init>
    java.util.Iterator entryIterator() -> c
    1:1:java.util.Set entrySet():3666:3666 -> entrySet
com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap$1 -> com.android.tools.r8.r.a.a.b.C1:
    com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap):3666:3666 -> <init>
    1:1:java.util.Map map():3669:3669 -> a
    1:1:void forEach(java.util.function.Consumer):3684:3684 -> forEach
    2:2:void com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap.forEachEntry(java.util.function.Consumer):3690:3690 -> forEach
    2:2:void forEach(java.util.function.Consumer):3684 -> forEach
    1:1:java.util.Iterator iterator():3674:3674 -> iterator
    1:1:java.util.Spliterator spliterator():3679:3679 -> spliterator
    2:2:java.util.Spliterator com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap.entrySpliterator():3661:3661 -> spliterator
    2:2:java.util.Spliterator spliterator():3679 -> spliterator
    3:3:java.util.Spliterator com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap.entrySpliterator():3660:3660 -> spliterator
    3:3:java.util.Spliterator spliterator():3679 -> spliterator
com.android.tools.r8.com.google.common.collect.Maps$KeySet -> com.android.tools.r8.r.a.a.b.E1:
    java.util.Map map -> a
    1:2:void <init>(java.util.Map):3839:3840 -> <init>
    1:1:void lambda$forEach$0(java.util.function.Consumer,java.lang.Object,java.lang.Object):3856:3856 -> a
    1:1:java.util.Map map():3844:3844 -> clear
    1:1:void clear():3885 -> clear
    2:2:void clear():3885:3885 -> clear
    1:1:java.util.Map map():3844:3844 -> contains
    1:1:boolean contains(java.lang.Object):3871 -> contains
    2:2:boolean contains(java.lang.Object):3871:3871 -> contains
    1:1:void forEach(java.util.function.Consumer):3856:3856 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.Consumer):3854 -> forEach
    1:1:java.util.Map map():3844:3844 -> isEmpty
    1:1:boolean isEmpty():3866 -> isEmpty
    2:2:boolean isEmpty():3866:3866 -> isEmpty
    1:1:java.util.Map map():3844:3844 -> iterator
    1:1:java.util.Iterator iterator():3849 -> iterator
    2:2:java.util.Iterator iterator():3849:3849 -> iterator
    3:3:com.android.tools.r8.com.google.common.base.Function com.android.tools.r8.com.google.common.collect.Maps.keyFunction():111:111 -> iterator
    3:3:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.keyIterator(java.util.Iterator):120 -> iterator
    3:3:java.util.Iterator iterator():3849 -> iterator
    4:4:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.transform(java.util.Iterator,com.android.tools.r8.com.google.common.base.Function):817:817 -> iterator
    4:4:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.keyIterator(java.util.Iterator):120 -> iterator
    4:4:java.util.Iterator iterator():3849 -> iterator
    1:1:java.util.Map map():3844:3844 -> remove
    1:1:boolean contains(java.lang.Object):3871 -> remove
    1:1:boolean remove(java.lang.Object):3876 -> remove
    2:2:boolean contains(java.lang.Object):3871:3871 -> remove
    2:2:boolean remove(java.lang.Object):3876 -> remove
    3:3:java.util.Map map():3844:3844 -> remove
    3:3:boolean remove(java.lang.Object):3877 -> remove
    4:4:boolean remove(java.lang.Object):3877:3877 -> remove
    1:1:java.util.Map map():3844:3844 -> size
    1:1:int size():3861 -> size
    2:2:int size():3861:3861 -> size
com.android.tools.r8.com.google.common.collect.Maps$Values -> com.android.tools.r8.r.a.a.b.F1:
    java.util.Map map -> a
    1:2:void <init>(java.util.Map):4026:4027 -> <init>
    1:1:void lambda$forEach$0(java.util.function.Consumer,java.lang.Object,java.lang.Object):4043:4043 -> a
    1:1:java.util.Map map():4031:4031 -> clear
    1:1:void clear():4108 -> clear
    2:2:void clear():4108:4108 -> clear
    1:1:java.util.Map map():4031:4031 -> contains
    1:1:boolean contains(java.lang.Object):4103 -> contains
    2:2:boolean contains(java.lang.Object):4103:4103 -> contains
    1:1:void forEach(java.util.function.Consumer):4043:4043 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.Consumer):4041 -> forEach
    1:1:java.util.Map map():4031:4031 -> isEmpty
    1:1:boolean isEmpty():4098 -> isEmpty
    2:2:boolean isEmpty():4098:4098 -> isEmpty
    1:1:java.util.Map map():4031:4031 -> iterator
    1:1:java.util.Iterator iterator():4036 -> iterator
    2:2:java.util.Iterator iterator():4036:4036 -> iterator
    3:3:com.android.tools.r8.com.google.common.base.Function com.android.tools.r8.com.google.common.collect.Maps.valueFunction():116:116 -> iterator
    3:3:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.valueIterator(java.util.Iterator):124 -> iterator
    3:3:java.util.Iterator iterator():4036 -> iterator
    4:4:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.transform(java.util.Iterator,com.android.tools.r8.com.google.common.base.Function):817:817 -> iterator
    4:4:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.valueIterator(java.util.Iterator):124 -> iterator
    4:4:java.util.Iterator iterator():4036 -> iterator
    1:1:boolean remove(java.lang.Object):4049:4049 -> remove
    2:2:java.util.Map map():4031:4031 -> remove
    2:2:boolean remove(java.lang.Object):4051 -> remove
    3:4:boolean remove(java.lang.Object):4051:4052 -> remove
    5:5:java.util.Map map():4031:4031 -> remove
    5:5:boolean remove(java.lang.Object):4053 -> remove
    6:6:boolean remove(java.lang.Object):4053:4053 -> remove
    1:1:boolean removeAll(java.util.Collection):4064:4064 -> removeAll
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> removeAll
    2:2:boolean removeAll(java.util.Collection):4064 -> removeAll
    3:3:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet():218:218 -> removeAll
    3:3:boolean removeAll(java.util.Collection):4066 -> removeAll
    4:4:java.util.Map map():4031:4031 -> removeAll
    4:4:boolean removeAll(java.util.Collection):4067 -> removeAll
    5:7:boolean removeAll(java.util.Collection):4067:4069 -> removeAll
    8:8:java.util.Map map():4031:4031 -> removeAll
    8:8:boolean removeAll(java.util.Collection):4072 -> removeAll
    9:9:boolean removeAll(java.util.Collection):4072:4072 -> removeAll
    1:1:boolean retainAll(java.util.Collection):4079:4079 -> retainAll
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> retainAll
    2:2:boolean retainAll(java.util.Collection):4079 -> retainAll
    3:3:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet():218:218 -> retainAll
    3:3:boolean retainAll(java.util.Collection):4081 -> retainAll
    4:4:java.util.Map map():4031:4031 -> retainAll
    4:4:boolean retainAll(java.util.Collection):4082 -> retainAll
    5:7:boolean retainAll(java.util.Collection):4082:4084 -> retainAll
    8:8:java.util.Map map():4031:4031 -> retainAll
    8:8:boolean retainAll(java.util.Collection):4087 -> retainAll
    9:9:boolean retainAll(java.util.Collection):4087:4087 -> retainAll
    1:1:java.util.Map map():4031:4031 -> size
    1:1:int size():4093 -> size
    2:2:int size():4093:4093 -> size
com.android.tools.r8.com.google.common.collect.Maps$ViewCachingAbstractMap -> com.android.tools.r8.r.a.a.b.G1:
    java.util.Collection values -> b
    java.util.Set entrySet -> a
    1:1:void <init>():3612:3612 -> <init>
    1:2:java.util.Set entrySet():3624:3625 -> entrySet
    3:3:java.util.Set com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap.createEntrySet():1307:1307 -> entrySet
    3:3:java.util.Set entrySet():3625 -> entrySet
    4:4:java.util.Set entrySet():3625:3625 -> entrySet
    1:1:java.util.Collection values():3644:3644 -> values
    2:2:java.util.Collection createValues():3649:3649 -> values
    2:2:java.util.Collection values():3645 -> values
    3:3:java.util.Collection values():3645:3645 -> values
com.android.tools.r8.com.google.common.collect.Multimap -> com.android.tools.r8.r.a.a.b.H1:
    boolean containsEntry(java.lang.Object,java.lang.Object) -> a
    java.util.Collection entries() -> a
    java.util.Map asMap() -> b
    com.android.tools.r8.com.google.common.collect.Multiset keys() -> c
com.android.tools.r8.com.google.common.collect.MultimapBuilder$2 -> com.android.tools.r8.r.a.a.b.I1:
    int val$expectedKeys -> a
    1:1:void <init>(int):127:127 -> <init>
com.android.tools.r8.com.google.common.collect.MultimapBuilder$ArrayListSupplier -> com.android.tools.r8.r.a.a.b.J1:
    int expectedValuesPerKey -> a
    1:2:void <init>(int):193:194 -> <init>
    1:1:java.util.List get():199:199 -> get
    1:1:java.lang.Object get():190 -> get
com.android.tools.r8.com.google.common.collect.MultimapBuilder$ListMultimapBuilder -> com.android.tools.r8.r.a.a.b.K1:
    1:1:void com.android.tools.r8.com.google.common.collect.MultimapBuilder.<init>():77:77 -> <init>
    1:1:void com.android.tools.r8.com.google.common.collect.MultimapBuilder.<init>(com.android.tools.r8.com.google.common.collect.MultimapBuilder$1):71 -> <init>
    1:1:void <init>():438 -> <init>
    com.android.tools.r8.com.google.common.collect.ListMultimap build() -> a
    1:2:com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys com.android.tools.r8.com.google.common.collect.MultimapBuilder.linkedHashKeys(int):126:127 -> b
    1:2:com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys com.android.tools.r8.com.google.common.collect.MultimapBuilder.linkedHashKeys():113 -> b
com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys -> com.android.tools.r8.r.a.a.b.M1:
    1:1:void <init>():282:282 -> <init>
    1:2:com.android.tools.r8.com.google.common.collect.MultimapBuilder$ListMultimapBuilder arrayListValues(int):300:301 -> a
    1:2:com.android.tools.r8.com.google.common.collect.MultimapBuilder$ListMultimapBuilder arrayListValues():290 -> a
com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys$1 -> com.android.tools.r8.r.a.a.b.L1:
    com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys this$0 -> b
    int val$expectedValuesPerKey -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys,int):301:301 -> <init>
    1:2:com.android.tools.r8.com.google.common.collect.ListMultimap build():304:305 -> a
    3:3:java.util.Map com.android.tools.r8.com.google.common.collect.MultimapBuilder$2.createMap():130:130 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ListMultimap build():305 -> a
    4:4:java.util.LinkedHashMap com.android.tools.r8.com.google.common.collect.Maps.newLinkedHashMapWithExpectedSize(int):377:377 -> a
    4:4:java.util.Map com.android.tools.r8.com.google.common.collect.MultimapBuilder$2.createMap():130 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ListMultimap build():305 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ListMultimap build():305:305 -> a
    6:6:com.android.tools.r8.com.google.common.collect.ListMultimap com.android.tools.r8.com.google.common.collect.Multimaps.newListMultimap(java.util.Map,com.android.tools.r8.com.google.common.base.Supplier):294:294 -> a
    6:6:com.android.tools.r8.com.google.common.collect.ListMultimap build():304 -> a
com.android.tools.r8.com.google.common.collect.Multimaps$CustomListMultimap -> com.android.tools.r8.r.a.a.b.N1:
    com.android.tools.r8.com.google.common.base.Supplier factory -> g
    1:2:void <init>(java.util.Map,com.android.tools.r8.com.google.common.base.Supplier):301:302 -> <init>
    1:1:java.util.List createCollection():307:307 -> j
    1:1:java.util.Collection createCollection():297 -> j
com.android.tools.r8.com.google.common.collect.Multimaps$Entries -> com.android.tools.r8.r.a.a.b.O1:
    1:1:void <init>():1793:1793 -> <init>
    1:1:void clear():1821:1821 -> clear
    2:2:com.android.tools.r8.com.google.common.collect.Multimap com.android.tools.r8.com.google.common.collect.AbstractMultimap$Entries.multimap():130:130 -> clear
    2:2:void clear():1821 -> clear
    3:3:void clear():1821:1821 -> clear
    1:3:boolean contains(java.lang.Object):1803:1805 -> contains
    4:4:com.android.tools.r8.com.google.common.collect.Multimap com.android.tools.r8.com.google.common.collect.AbstractMultimap$Entries.multimap():130:130 -> contains
    4:4:boolean contains(java.lang.Object):1805 -> contains
    5:5:boolean contains(java.lang.Object):1805:1805 -> contains
    1:3:boolean remove(java.lang.Object):1812:1814 -> remove
    4:4:com.android.tools.r8.com.google.common.collect.Multimap com.android.tools.r8.com.google.common.collect.AbstractMultimap$Entries.multimap():130:130 -> remove
    4:4:boolean remove(java.lang.Object):1814 -> remove
    5:5:boolean remove(java.lang.Object):1814:1814 -> remove
    1:1:int size():1798:1798 -> size
    2:2:com.android.tools.r8.com.google.common.collect.Multimap com.android.tools.r8.com.google.common.collect.AbstractMultimap$Entries.multimap():130:130 -> size
    2:2:int size():1798 -> size
    3:3:int size():1798:1798 -> size
com.android.tools.r8.com.google.common.collect.Multimaps$Keys -> com.android.tools.r8.r.a.a.b.R1:
    com.android.tools.r8.com.google.common.collect.Multimap multimap -> c
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Multimap):1645:1646 -> <init>
    1:1:void lambda$forEach$0(java.util.function.Consumer,java.util.Map$Entry):1678:1678 -> a
    2:2:java.util.Set createEntrySet():1688:1688 -> a
    3:21:int remove(java.lang.Object,int):1755:1773 -> a
    1:1:int distinctElements():1683:1683 -> b
    2:3:int count(java.lang.Object):1749:1750 -> b
    1:1:void clear():1781:1781 -> clear
    1:1:boolean contains(java.lang.Object):1739:1739 -> contains
    1:2:java.util.Iterator entryIterator():1651:1652 -> d
    1:1:void forEach(java.util.function.Consumer):1678:1678 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.Consumer):1677 -> forEach
    1:1:java.util.Set elementSet():1786:1786 -> h
    1:1:java.util.Iterator iterator():1744:1744 -> iterator
    2:2:com.android.tools.r8.com.google.common.base.Function com.android.tools.r8.com.google.common.collect.Maps.keyFunction():111:111 -> iterator
    2:2:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.keyIterator(java.util.Iterator):120 -> iterator
    2:2:java.util.Iterator iterator():1744 -> iterator
    3:3:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.transform(java.util.Iterator,com.android.tools.r8.com.google.common.base.Function):817:817 -> iterator
    3:3:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.keyIterator(java.util.Iterator):120 -> iterator
    3:3:java.util.Iterator iterator():1744 -> iterator
    1:1:java.util.Spliterator spliterator():1672:1672 -> spliterator
com.android.tools.r8.com.google.common.collect.Multimaps$Keys$1 -> com.android.tools.r8.r.a.a.b.Q1:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Multimaps$Keys,java.util.Iterator):1652:1652 -> <init>
    1:1:java.lang.Object transform(java.lang.Object):1652:1652 -> a
    2:2:com.android.tools.r8.com.google.common.collect.Multiset$Entry transform(java.util.Map$Entry):1655:1655 -> a
    2:2:java.lang.Object transform(java.lang.Object):1652 -> a
com.android.tools.r8.com.google.common.collect.Multimaps$Keys$1$1 -> com.android.tools.r8.r.a.a.b.P1:
    java.util.Map$Entry val$backingEntry -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Multimaps$Keys$1,java.util.Map$Entry):1655:1655 -> <init>
    1:1:int getCount():1663:1663 -> a
    1:1:java.lang.Object getElement():1658:1658 -> b
com.android.tools.r8.com.google.common.collect.Multimaps$Keys$KeysEntrySet -> com.android.tools.r8.r.a.a.b.R1$a:
    com.android.tools.r8.com.google.common.collect.Multimaps$Keys this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Multimaps$Keys):1692:1692 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.Multiset multiset():1695:1695 -> a
    1:4:boolean contains(java.lang.Object):1715:1718 -> contains
    1:1:boolean isEmpty():1710:1710 -> isEmpty
    1:1:java.util.Iterator iterator():1700:1700 -> iterator
    2:3:java.util.Iterator com.android.tools.r8.com.google.common.collect.Multimaps$Keys.entryIterator():1651:1652 -> iterator
    2:3:java.util.Iterator iterator():1700 -> iterator
    1:5:boolean remove(java.lang.Object):1725:1729 -> remove
    1:1:int size():1705:1705 -> size
    2:2:int com.android.tools.r8.com.google.common.collect.Multimaps$Keys.distinctElements():1683:1683 -> size
    2:2:int size():1705 -> size
com.android.tools.r8.com.google.common.collect.Multiset -> com.android.tools.r8.r.a.a.b.S1:
    int remove(java.lang.Object,int) -> a
    boolean setCount(java.lang.Object,int,int) -> a
    1:4:void lambda$forEach$1(java.util.function.Consumer,com.android.tools.r8.com.google.common.collect.Multiset$Entry):494:497 -> a
    int add(java.lang.Object,int) -> b
    int count(java.lang.Object) -> b
    int setCount(java.lang.Object,int) -> c
    1:2:void forEach(java.util.function.Consumer):491:492 -> forEach
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    3:3:void forEach(java.util.function.Consumer):490 -> forEach
    java.util.Set elementSet() -> h
    1:1:java.util.Spliterator spliterator():504:504 -> spliterator
com.android.tools.r8.com.google.common.collect.Multiset$Entry -> com.android.tools.r8.r.a.a.b.S1$a:
    int getCount() -> a
    java.lang.Object getElement() -> b
com.android.tools.r8.com.google.common.collect.Multisets$AbstractEntry -> com.android.tools.r8.r.a.a.b.T1:
    1:1:void <init>():833:833 -> <init>
    1:4:boolean equals(java.lang.Object):840:843 -> equals
    1:2:int hashCode():854:855 -> hashCode
    1:3:java.lang.String toString():867:869 -> toString
com.android.tools.r8.com.google.common.collect.Multisets$DecreasingCount -> com.android.tools.r8.r.a.a.b.U1:
    com.android.tools.r8.com.google.common.collect.Multisets$DecreasingCount INSTANCE -> a
    1:1:void <clinit>():1165:1165 -> <clinit>
    1:1:void <init>():1164:1164 -> <init>
    1:1:int compare(java.lang.Object,java.lang.Object):1164:1164 -> compare
    2:2:int compare(com.android.tools.r8.com.google.common.collect.Multiset$Entry,com.android.tools.r8.com.google.common.collect.Multiset$Entry):1168:1168 -> compare
    2:2:int compare(java.lang.Object,java.lang.Object):1164 -> compare
com.android.tools.r8.com.google.common.collect.Multisets$ElementSet -> com.android.tools.r8.r.a.a.b.W1:
    1:1:void <init>():977:977 -> <init>
    1:1:void clear():982:982 -> clear
    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> clear
    2:2:void clear():982 -> clear
    3:3:void clear():982:982 -> clear
    1:1:boolean contains(java.lang.Object):987:987 -> contains
    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> contains
    2:2:boolean contains(java.lang.Object):987 -> contains
    3:3:boolean contains(java.lang.Object):987:987 -> contains
    1:1:boolean containsAll(java.util.Collection):992:992 -> containsAll
    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> containsAll
    2:2:boolean containsAll(java.util.Collection):992 -> containsAll
    3:3:boolean containsAll(java.util.Collection):992:992 -> containsAll
    1:1:boolean isEmpty():997:997 -> isEmpty
    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> isEmpty
    2:2:boolean isEmpty():997 -> isEmpty
    3:3:boolean isEmpty():997:997 -> isEmpty
    1:1:java.util.Iterator iterator():1002:1002 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> iterator
    2:2:java.util.Iterator iterator():1002 -> iterator
    3:3:java.util.Iterator iterator():1002:1002 -> iterator
    1:1:boolean remove(java.lang.Object):1012:1012 -> remove
    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> remove
    2:2:boolean remove(java.lang.Object):1012 -> remove
    3:3:boolean remove(java.lang.Object):1012:1012 -> remove
    1:1:int size():1017:1017 -> size
    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> size
    2:2:int size():1017 -> size
    3:3:int size():1017:1017 -> size
com.android.tools.r8.com.google.common.collect.Multisets$ElementSet$1 -> com.android.tools.r8.r.a.a.b.V1:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Multisets$ElementSet,java.util.Iterator):1002:1002 -> <init>
    1:1:java.lang.Object transform(java.lang.Object):1002:1002 -> a
    2:2:java.lang.Object transform(com.android.tools.r8.com.google.common.collect.Multiset$Entry):1005:1005 -> a
    2:2:java.lang.Object transform(java.lang.Object):1002 -> a
com.android.tools.r8.com.google.common.collect.Multisets$EntrySet -> com.android.tools.r8.r.a.a.b.X1:
    1:1:void <init>():1021:1021 -> <init>
    com.android.tools.r8.com.google.common.collect.Multiset multiset() -> a
    1:1:void clear():1061:1061 -> clear
    1:11:boolean contains(java.lang.Object):1026:1036 -> contains
    1:9:boolean remove(java.lang.Object):1045:1053 -> remove
com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry -> com.android.tools.r8.r.a.a.b.Y1:
    java.lang.Object element -> a
    int count -> b
    1:4:void <init>(java.lang.Object,int):258:261 -> <init>
    1:1:int getCount():272:272 -> a
    1:1:java.lang.Object getElement():267:267 -> b
    com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry nextInBucket() -> c
com.android.tools.r8.com.google.common.collect.NaturalOrdering -> com.android.tools.r8.r.a.a.b.Z1:
    com.android.tools.r8.com.google.common.collect.NaturalOrdering INSTANCE -> a
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>():73:73 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.Ordering reverse():60:60 -> a
    1:1:int compare(java.lang.Object,java.lang.Object):25:25 -> compare
    2:2:int compare(java.lang.Comparable,java.lang.Comparable):37:37 -> compare
    2:2:int compare(java.lang.Object,java.lang.Object):25 -> compare
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> compare
    3:3:int compare(java.lang.Comparable,java.lang.Comparable):36 -> compare
    3:3:int compare(java.lang.Object,java.lang.Object):25 -> compare
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> compare
    4:4:int compare(java.lang.Comparable,java.lang.Comparable):35 -> compare
    4:4:int compare(java.lang.Object,java.lang.Object):25 -> compare
com.android.tools.r8.com.google.common.collect.Ordering -> com.android.tools.r8.r.a.a.b.a2:
    1:1:void <init>():390:390 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.Ordering from(java.util.Comparator):181:181 -> a
    2:2:com.android.tools.r8.com.google.common.collect.Ordering reverse():404:404 -> a
com.android.tools.r8.com.google.common.collect.RegularImmutableAsList -> com.android.tools.r8.r.a.a.b.b2:
    com.android.tools.r8.com.google.common.collect.ImmutableCollection delegate -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList delegateList -> c
    1:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableCollection,com.android.tools.r8.com.google.common.collect.ImmutableList):35:37 -> <init>
    1:1:int copyIntoArray(java.lang.Object[],int):68:68 -> a
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):56:56 -> c
    1:1:void forEach(java.util.function.Consumer):62:62 -> forEach
    1:1:java.lang.Object get(int):73:73 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():46:46 -> i
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList delegateList():50:50 -> j
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):56:56 -> listIterator
    1:1:java.util.ListIterator listIterator(int):29 -> listIterator
com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap -> com.android.tools.r8.r.a.a.b.e2:
    com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse -> j
    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] keyTable -> e
    com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap EMPTY -> k
    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] valueTable -> f
    int mask -> h
    java.util.Map$Entry[] entries -> g
    int hashCode -> i
    1:1:void <clinit>():44:44 -> <clinit>
    1:6:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],java.util.Map$Entry[],int,int):119:124 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] access$100(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap):43:43 -> a
    2:3:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):61:62 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] com.android.tools.r8.com.google.common.collect.ImmutableMapEntry.createEntryArray(int):44:44 -> a
    4:4:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):64 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] com.android.tools.r8.com.google.common.collect.ImmutableMapEntry.createEntryArray(int):44:44 -> a
    5:5:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):65 -> a
    6:6:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):67:67 -> a
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] com.android.tools.r8.com.google.common.collect.ImmutableMapEntry.createEntryArray(int):44:44 -> a
    7:7:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):70 -> a
    8:19:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):76:87 -> a
    20:20:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getValue():45:45 -> a
    20:20:void checkNoConflictInValueBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):132 -> a
    20:20:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):88 -> a
    21:21:void checkNoConflictInValueBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):132:132 -> a
    21:21:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):88 -> a
    22:22:void checkNoConflictInValueBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):131:131 -> a
    22:22:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):88 -> a
    23:37:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):97:111 -> a
    1:1:int access$200(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap):43:43 -> b
    1:1:int access$300(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap):43:43 -> c
    1:1:java.util.Map$Entry[] access$400(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap):43:43 -> d
    1:1:com.android.tools.r8.com.google.common.collect.BiMap inverse():41:41 -> f
    1:2:void forEach(java.util.function.BiConsumer):157:158 -> forEach
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    3:3:void forEach(java.util.function.BiConsumer):156 -> forEach
    1:1:java.lang.Object get(java.lang.Object):139:139 -> get
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():144:145 -> h
    1:1:int hashCode():169:169 -> hashCode
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():151:151 -> j
    boolean isHashCodeFast() -> m
    boolean isPartialView() -> n
    1:1:int size():179:179 -> size
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():188:188 -> t
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of():66:66 -> t
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():189 -> t
    3:4:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():191:192 -> t
com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$1 -> com.android.tools.r8.r.a.a.b.c2:
com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse -> com.android.tools.r8.r.a.a.b.e2$a:
    com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap this$0 -> e
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap):195:195 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap,com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$1):195:195 -> <init>
    1:1:void lambda$forEach$0(java.util.function.BiConsumer,java.lang.Object,java.lang.Object):210:210 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():204:204 -> f
    1:1:com.android.tools.r8.com.google.common.collect.BiMap inverse():195 -> f
    1:1:void forEach(java.util.function.BiConsumer):210:210 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.BiConsumer):209 -> forEach
    1:5:java.lang.Object get(java.lang.Object):215:219 -> get
    6:6:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getValue():45:45 -> get
    6:6:java.lang.Object get(java.lang.Object):222 -> get
    7:7:java.lang.Object get(java.lang.Object):222:222 -> get
    8:8:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getKey():39:39 -> get
    8:8:java.lang.Object get(java.lang.Object):223 -> get
    9:9:java.lang.Object get(java.lang.Object):221:221 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():236:236 -> h
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():231:231 -> j
    boolean isPartialView() -> n
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():204:204 -> size
    1:1:int size():199 -> size
    2:2:int size():199:199 -> size
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():204:204 -> t
com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse$InverseEntrySet -> com.android.tools.r8.r.a.a.b.e2$a$a:
    com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse this$1 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse):240:240 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():258:258 -> d
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():268:268 -> f
    1:1:void forEach(java.util.function.Consumer):263:263 -> forEach
    boolean isHashCodeFast() -> g
    1:1:int hashCode():253:253 -> hashCode
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():258:258 -> iterator
    1:1:java.util.Iterator iterator():239 -> iterator
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap map():243:243 -> k
com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse$InverseEntrySet$1 -> com.android.tools.r8.r.a.a.b.d2:
    com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse$InverseEntrySet this$2 -> b
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse$InverseEntrySet):268:268 -> <init>
    1:2:java.util.Map$Entry get(int):271:272 -> get
    1:2:java.lang.Object get(int):268 -> get
    3:3:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> get
    3:3:java.util.Map$Entry get(int):272 -> get
    3:3:java.lang.Object get(int):268 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():277:277 -> i
com.android.tools.r8.com.google.common.collect.RegularImmutableList -> com.android.tools.r8.r.a.a.b.f2:
    java.lang.Object[] array -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList EMPTY -> c
    1:1:void <clinit>():31:31 -> <clinit>
    1:2:void <init>(java.lang.Object[]):36:37 -> <init>
    1:2:int copyIntoArray(java.lang.Object[],int):52:53 -> a
    boolean isPartialView() -> b
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):68:68 -> c
    1:1:java.lang.Object get(int):60:60 -> get
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):68:68 -> listIterator
    1:1:java.util.ListIterator listIterator(int):28 -> listIterator
    1:1:int size():42:42 -> size
    1:1:java.util.Spliterator spliterator():73:73 -> spliterator
com.android.tools.r8.com.google.common.collect.RegularImmutableMap -> com.android.tools.r8.r.a.a.b.i2:
    com.android.tools.r8.com.google.common.collect.ImmutableMap EMPTY -> h
    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] table -> f
    java.util.Map$Entry[] entries -> e
    int mask -> g
    1:1:void <clinit>():42:42 -> <clinit>
    1:4:void <init>(java.util.Map$Entry[],com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):100:103 -> <init>
    1:1:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getKey():39:39 -> a
    1:1:void checkNoConflictInKeyBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):109 -> a
    2:2:void checkNoConflictInKeyBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):109:109 -> a
    3:3:void checkNoConflictInKeyBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):108:108 -> a
    4:4:java.util.Map$Entry[] access$000(com.android.tools.r8.com.google.common.collect.RegularImmutableMap):40:40 -> a
    5:5:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntries(java.util.Map$Entry[]):54:54 -> a
    6:11:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):63:68 -> a
    12:12:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] com.android.tools.r8.com.google.common.collect.ImmutableMapEntry.createEntryArray(int):44:44 -> a
    12:12:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):71 -> a
    13:13:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):73:73 -> a
    14:14:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] com.android.tools.r8.com.google.common.collect.ImmutableMapEntry.createEntryArray(int):44:44 -> a
    14:14:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):74 -> a
    15:32:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):77:94 -> a
    33:33:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getKey():39:39 -> a
    33:33:void checkNoConflictInKeyBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):109 -> a
    33:33:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):95 -> a
    34:34:void checkNoConflictInKeyBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):109:109 -> a
    34:34:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):95 -> a
    35:35:void checkNoConflictInKeyBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):108:108 -> a
    35:35:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):95 -> a
    36:36:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):97:97 -> a
    37:38:java.lang.Object get(java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):130:131 -> a
    39:39:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getKey() -> a
    39:39:java.lang.Object get(java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):134 -> a
    40:40:java.lang.Object get(java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):142:142 -> a
    41:41:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getValue():45:45 -> a
    41:41:java.lang.Object get(java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):143 -> a
    42:42:java.lang.Object get(java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):133:133 -> a
    1:2:void forEach(java.util.function.BiConsumer):152:153 -> forEach
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    3:3:void forEach(java.util.function.BiConsumer):151 -> forEach
    1:1:java.lang.Object get(java.lang.Object):122:122 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():169:169 -> h
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():174:174 -> j
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection createValues():229:229 -> k
    boolean isPartialView() -> n
    1:1:int size():159:159 -> size
com.android.tools.r8.com.google.common.collect.RegularImmutableMap$KeySet -> com.android.tools.r8.r.a.a.b.g2:
    com.android.tools.r8.com.google.common.collect.RegularImmutableMap map -> c
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableMap):181:182 -> <init>
    boolean isPartialView() -> b
    1:1:boolean contains(java.lang.Object):192:192 -> contains
    2:2:boolean com.android.tools.r8.com.google.common.collect.ImmutableMap.containsKey(java.lang.Object):652:652 -> contains
    2:2:boolean contains(java.lang.Object):192 -> contains
    1:1:java.lang.Object get(int):187:187 -> get
    1:1:int size():202:202 -> size
com.android.tools.r8.com.google.common.collect.RegularImmutableMap$Values -> com.android.tools.r8.r.a.a.b.h2:
    com.android.tools.r8.com.google.common.collect.RegularImmutableMap map -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableMap):236:237 -> <init>
    boolean isPartialView() -> b
    1:1:java.lang.Object get(int):242:242 -> get
    1:1:int size():247:247 -> size
com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset -> com.android.tools.r8.r.a.a.b.k2:
    com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset EMPTY -> i
    com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry[] hashTable -> e
    int size -> f
    int hashCode -> g
    com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet -> h
    com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry[] entries -> d
    1:2:void <clinit>():37:38 -> <clinit>
    1:45:void <init>(java.util.Collection):48:92 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry[] access$100(com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset):36:36 -> a
    boolean isPartialView() -> b
    1:11:int count(java.lang.Object):117:127 -> b
    12:12:int count(java.lang.Object):125:125 -> b
    1:1:com.android.tools.r8.com.google.common.collect.Multiset$Entry getEntry(int):170:170 -> c
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():140:141 -> e
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():140:141 -> h
    1:2:java.util.Set elementSet():34 -> h
    1:1:int hashCode():175:175 -> hashCode
    1:1:int size():135:135 -> size
com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset$1 -> com.android.tools.r8.r.a.a.b.j2:
com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset$ElementSet -> com.android.tools.r8.r.a.a.b.k2$a:
    com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset this$0 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset):145:145 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset,com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset$1):145:145 -> <init>
    boolean isPartialView() -> b
    1:1:boolean contains(java.lang.Object):154:154 -> contains
    2:2:boolean com.android.tools.r8.com.google.common.collect.ImmutableMultiset.contains(java.lang.Object):273:273 -> contains
    2:2:boolean contains(java.lang.Object):154 -> contains
    1:1:java.lang.Object get(int):149:149 -> get
    1:1:int size():164:164 -> size
com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset$NonTerminalEntry -> com.android.tools.r8.r.a.a.b.l2:
    com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry nextInBucket -> c
    1:2:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry):100:101 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry nextInBucket():106:106 -> c
com.android.tools.r8.com.google.common.collect.RegularImmutableSet -> com.android.tools.r8.r.a.a.b.m2:
    java.lang.Object[] table -> d
    com.android.tools.r8.com.google.common.collect.RegularImmutableSet EMPTY -> g
    java.lang.Object[] elements -> c
    int hashCode -> f
    int mask -> e
    1:1:void <clinit>():33:33 -> <clinit>
    1:5:void <init>(java.lang.Object[],int,java.lang.Object[],int):43:47 -> <init>
    1:2:int copyIntoArray(java.lang.Object[],int):84:85 -> a
    boolean isPartialView() -> b
    1:10:boolean contains(java.lang.Object):52:61 -> contains
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():74:74 -> d
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():90:90 -> f
    2:2:void com.android.tools.r8.com.google.common.collect.RegularImmutableAsList.<init>(com.android.tools.r8.com.google.common.collect.ImmutableCollection,java.lang.Object[]):41:41 -> f
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():90 -> f
    boolean isHashCodeFast() -> g
    1:1:int hashCode():100:100 -> hashCode
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():74:74 -> iterator
    1:1:java.util.Iterator iterator():30 -> iterator
    1:1:int size():69:69 -> size
    1:1:java.util.Spliterator spliterator():79:79 -> spliterator
com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet -> com.android.tools.r8.r.a.a.b.n2:
    com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet NATURAL_EMPTY_SET -> f
    com.android.tools.r8.com.google.common.collect.ImmutableList elements -> e
    1:2:void <clinit>():44:45 -> <clinit>
    3:3:com.android.tools.r8.com.google.common.collect.Ordering com.android.tools.r8.com.google.common.collect.Ordering.natural():161:161 -> <clinit>
    3:3:void <clinit>():45 -> <clinit>
    4:4:void <clinit>():45:45 -> <clinit>
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.Comparator):50:51 -> <init>
    1:1:int copyIntoArray(java.lang.Object[],int):154:154 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256:256 -> a
    3:3:int size():77:77 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256:256 -> a
    1:1:int size():77:77 -> b
    1:1:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet getSubSet(int,int):277 -> b
    2:5:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet getSubSet(int,int):280:283 -> b
    6:6:boolean isPartialView():149:149 -> b
    7:7:int headIndex(java.lang.Object,boolean):240:240 -> b
    8:8:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> b
    8:8:int headIndex(java.lang.Object,boolean):240 -> b
    9:9:int headIndex(java.lang.Object,boolean):240:240 -> b
    10:10:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    10:10:int headIndex(java.lang.Object,boolean):240 -> b
    11:11:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256:256 -> b
    11:11:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSetImpl(java.lang.Object,boolean,java.lang.Object,boolean):251 -> b
    12:12:int size():77:77 -> b
    12:12:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256 -> b
    12:12:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSetImpl(java.lang.Object,boolean,java.lang.Object,boolean):251 -> b
    13:13:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256:256 -> b
    13:13:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSetImpl(java.lang.Object,boolean,java.lang.Object,boolean):251 -> b
    14:14:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSetImpl(java.lang.Object,boolean):236:236 -> b
    14:14:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSetImpl(java.lang.Object,boolean,java.lang.Object,boolean):251 -> b
    1:1:int tailIndex(java.lang.Object,boolean):260:260 -> c
    2:2:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> c
    2:2:int tailIndex(java.lang.Object,boolean):260 -> c
    3:3:int tailIndex(java.lang.Object,boolean):260:260 -> c
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> c
    4:4:int tailIndex(java.lang.Object,boolean):260 -> c
    1:1:java.lang.Object ceiling(java.lang.Object):224:224 -> ceiling
    2:2:int size():77:77 -> ceiling
    2:2:java.lang.Object ceiling(java.lang.Object):225 -> ceiling
    3:3:java.lang.Object ceiling(java.lang.Object):225:225 -> ceiling
    1:1:int unsafeBinarySearch(java.lang.Object):144:144 -> contains
    1:1:boolean contains(java.lang.Object):83 -> contains
    2:2:java.util.Comparator unsafeComparator():273:273 -> contains
    2:2:int unsafeBinarySearch(java.lang.Object):144 -> contains
    2:2:boolean contains(java.lang.Object):83 -> contains
    3:3:int unsafeBinarySearch(java.lang.Object):144:144 -> contains
    3:3:boolean contains(java.lang.Object):83 -> contains
    1:2:boolean containsAll(java.util.Collection):95:96 -> containsAll
    3:3:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> containsAll
    3:3:boolean containsAll(java.util.Collection):98 -> containsAll
    4:4:boolean containsAll(java.util.Collection):98:98 -> containsAll
    5:5:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():56:56 -> containsAll
    5:5:boolean containsAll(java.util.Collection):106 -> containsAll
    6:14:boolean containsAll(java.util.Collection):108:116 -> containsAll
    15:15:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.lang.Object,java.lang.Object):550:550 -> containsAll
    15:15:boolean containsAll(java.util.Collection):119 -> containsAll
    16:16:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.util.Comparator,java.lang.Object,java.lang.Object):559:559 -> containsAll
    16:16:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.lang.Object,java.lang.Object):550 -> containsAll
    16:16:boolean containsAll(java.util.Collection):119 -> containsAll
    17:25:boolean containsAll(java.util.Collection):122:130 -> containsAll
    26:26:boolean containsAll(java.util.Collection):99:99 -> containsAll
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():56:56 -> d
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator descendingIterator():62:62 -> descendingIterator
    1:1:java.util.Iterator descendingIterator():41 -> descendingIterator
    1:5:boolean equals(java.lang.Object):162:166 -> equals
    6:6:int size():77:77 -> equals
    6:6:boolean equals(java.lang.Object):167 -> equals
    7:14:boolean equals(java.lang.Object):167:174 -> equals
    15:15:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():56:56 -> equals
    15:15:boolean equals(java.lang.Object):176 -> equals
    16:18:boolean equals(java.lang.Object):177:179 -> equals
    19:19:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.lang.Object,java.lang.Object):550:550 -> equals
    19:19:boolean equals(java.lang.Object):180 -> equals
    20:20:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.util.Comparator,java.lang.Object,java.lang.Object):559:559 -> equals
    20:20:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.lang.Object,java.lang.Object):550 -> equals
    20:20:boolean equals(java.lang.Object):180 -> equals
    21:21:boolean equals(java.lang.Object):191:191 -> equals
    1:1:int size():77:77 -> f
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():303 -> f
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():303:303 -> f
    1:4:java.lang.Object first():196:199 -> first
    5:5:java.lang.Object first():197:197 -> first
    1:2:java.lang.Object floor(java.lang.Object):218:219 -> floor
    1:1:void forEach(java.util.function.Consumer):72:72 -> forEach
    1:1:java.lang.Object higher(java.lang.Object):230:230 -> higher
    2:2:int size():77:77 -> higher
    2:2:java.lang.Object higher(java.lang.Object):231 -> higher
    3:3:java.lang.Object higher(java.lang.Object):231:231 -> higher
    1:1:int indexOf(java.lang.Object):294:294 -> indexOf
    2:2:java.util.Comparator unsafeComparator():273:273 -> indexOf
    2:2:int indexOf(java.lang.Object):294 -> indexOf
    3:3:int indexOf(java.lang.Object):294:294 -> indexOf
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():56:56 -> iterator
    1:1:java.util.Iterator iterator():41 -> iterator
    1:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet createDescendingSet():308:311 -> k
    1:4:java.lang.Object last():204:207 -> last
    5:5:int size():77:77 -> last
    5:5:java.lang.Object last():207 -> last
    6:6:java.lang.Object last():207:207 -> last
    7:7:java.lang.Object last():205:205 -> last
    1:2:java.lang.Object lower(java.lang.Object):212:213 -> lower
    1:1:int size():77:77 -> size
    1:1:java.util.Spliterator spliterator():67:67 -> spliterator
com.android.tools.r8.com.google.common.collect.ReverseNaturalOrdering -> com.android.tools.r8.r.a.a.b.o2:
    com.android.tools.r8.com.google.common.collect.ReverseNaturalOrdering INSTANCE -> a
    1:1:void <clinit>():29:29 -> <clinit>
    1:1:void <init>():98:98 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.Ordering com.android.tools.r8.com.google.common.collect.Ordering.natural():161:161 -> a
    1:1:com.android.tools.r8.com.google.common.collect.Ordering reverse():43 -> a
    1:1:int compare(java.lang.Object,java.lang.Object):26:26 -> compare
    2:2:int compare(java.lang.Comparable,java.lang.Comparable):38:38 -> compare
    2:2:int compare(java.lang.Object,java.lang.Object):26 -> compare
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> compare
    3:3:int compare(java.lang.Comparable,java.lang.Comparable):33 -> compare
    3:3:int compare(java.lang.Object,java.lang.Object):26 -> compare
com.android.tools.r8.com.google.common.collect.ReverseOrdering -> com.android.tools.r8.r.a.a.b.p2:
    com.android.tools.r8.com.google.common.collect.Ordering forwardOrder -> a
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Ordering):31:32 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.Ordering reverse():43:43 -> a
    1:1:int compare(java.lang.Object,java.lang.Object):37:37 -> compare
    1:3:boolean equals(java.lang.Object):98:100 -> equals
    1:1:int hashCode():90:90 -> hashCode
    1:1:java.lang.String toString():107:107 -> toString
com.android.tools.r8.com.google.common.collect.Sets$1 -> com.android.tools.r8.r.a.a.b.r2:
    java.util.Set val$set1 -> a
    java.util.Set val$set2 -> b
    1:1:void <init>(java.util.Set,java.util.Set):744:744 -> <init>
    1:1:boolean lambda$stream$0(java.util.Set,java.lang.Object):785:785 -> a
    1:1:boolean contains(java.lang.Object):795:795 -> contains
    1:1:boolean isEmpty():758:758 -> isEmpty
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():763:763 -> iterator
    1:1:java.util.Iterator iterator():744 -> iterator
    1:1:java.util.stream.Stream parallelStream():790:790 -> parallelStream
    1:3:int size():747:749 -> size
    1:1:java.util.stream.Stream stream():785:785 -> stream
com.android.tools.r8.com.google.common.collect.Sets$1$1 -> com.android.tools.r8.r.a.a.b.q2:
    java.util.Iterator itr2 -> d
    java.util.Iterator itr1 -> c
    com.android.tools.r8.com.google.common.collect.Sets$1 this$0 -> e
    1:3:void <init>(com.android.tools.r8.com.google.common.collect.Sets$1):763:765 -> <init>
    1:10:java.lang.Object computeNext():769:778 -> c
com.android.tools.r8.com.google.common.collect.Sets$2 -> com.android.tools.r8.r.a.a.b.t2:
    java.util.Set val$set1 -> a
    java.util.Set val$set2 -> b
    1:1:void <init>(java.util.Set,java.util.Set):842:842 -> <init>
    1:1:boolean contains(java.lang.Object):889:889 -> contains
    1:1:boolean containsAll(java.util.Collection):894:894 -> containsAll
    1:1:boolean isEmpty():884:884 -> isEmpty
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():845:845 -> iterator
    1:1:java.util.Iterator iterator():842 -> iterator
    1:1:java.util.stream.Stream parallelStream():868:868 -> parallelStream
    1:2:int size():874:875 -> size
    1:1:java.util.stream.Stream stream():863:863 -> stream
com.android.tools.r8.com.google.common.collect.Sets$2$1 -> com.android.tools.r8.r.a.a.b.s2:
    java.util.Iterator itr -> c
    com.android.tools.r8.com.google.common.collect.Sets$2 this$0 -> d
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Sets$2):845:846 -> <init>
    1:7:java.lang.Object computeNext():850:856 -> c
com.android.tools.r8.com.google.common.collect.Sets$3 -> com.android.tools.r8.r.a.a.b.v2:
    java.util.Set val$set1 -> a
    java.util.Set val$set2 -> b
    1:1:void <init>(java.util.Set,java.util.Set):914:914 -> <init>
    1:1:boolean lambda$parallelStream$1(java.util.Set,java.lang.Object):939:939 -> a
    1:1:boolean lambda$stream$0(java.util.Set,java.lang.Object):934:934 -> b
    1:1:boolean contains(java.lang.Object):960:960 -> contains
    1:1:boolean isEmpty():955:955 -> isEmpty
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():917:917 -> iterator
    1:1:java.util.Iterator iterator():914 -> iterator
    1:1:java.util.stream.Stream parallelStream():939:939 -> parallelStream
    1:2:int size():945:946 -> size
    1:1:java.util.stream.Stream stream():934:934 -> stream
com.android.tools.r8.com.google.common.collect.Sets$3$1 -> com.android.tools.r8.r.a.a.b.u2:
    java.util.Iterator itr -> c
    com.android.tools.r8.com.google.common.collect.Sets$3 this$0 -> d
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Sets$3):917:918 -> <init>
    1:7:java.lang.Object computeNext():921:927 -> c
com.android.tools.r8.com.google.common.collect.Sets$5 -> com.android.tools.r8.r.a.a.b.z2:
    com.android.tools.r8.com.google.common.collect.ImmutableMap val$index -> b
    int val$size -> a
    1:1:void <init>(int,com.android.tools.r8.com.google.common.collect.ImmutableMap):1676:1676 -> <init>
    1:3:boolean contains(java.lang.Object):1679:1681 -> contains
    1:1:java.util.Iterator iterator():1688:1688 -> iterator
    1:1:int size():1755:1755 -> size
    1:1:java.lang.String toString():1760:1760 -> toString
com.android.tools.r8.com.google.common.collect.Sets$5$1 -> com.android.tools.r8.r.a.a.b.y2:
    java.util.BitSet bits -> c
    com.android.tools.r8.com.google.common.collect.Sets$5 this$0 -> d
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Sets$5):1688:1689 -> <init>
    1:29:java.util.Set computeNext():1693:1721 -> c
    1:29:java.lang.Object computeNext():1688 -> c
com.android.tools.r8.com.google.common.collect.Sets$5$1$1 -> com.android.tools.r8.r.a.a.b.x2:
    com.android.tools.r8.com.google.common.collect.Sets$5$1 this$1 -> b
    java.util.BitSet val$copy -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Sets$5$1,java.util.BitSet):1721:1721 -> <init>
    1:2:boolean contains(java.lang.Object):1724:1725 -> contains
    1:1:java.util.Iterator iterator():1730:1730 -> iterator
    1:1:int size():1746:1746 -> size
com.android.tools.r8.com.google.common.collect.Sets$5$1$1$1 -> com.android.tools.r8.r.a.a.b.w2:
    com.android.tools.r8.com.google.common.collect.Sets$5$1$1 this$2 -> d
    int i -> c
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Sets$5$1$1):1730:1731 -> <init>
    1:5:java.lang.Object computeNext():1735:1739 -> c
com.android.tools.r8.com.google.common.collect.Sets$ImprovedAbstractSet -> com.android.tools.r8.r.a.a.b.A2:
    1:1:void <init>():77:77 -> <init>
    1:1:boolean removeAll(java.util.Collection):80:80 -> removeAll
    1:1:boolean retainAll(java.util.Collection):85:85 -> retainAll
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> retainAll
    2:2:boolean retainAll(java.util.Collection):85 -> retainAll
com.android.tools.r8.com.google.common.collect.Sets$SetView -> com.android.tools.r8.r.a.a.b.B2:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Sets$1):599:599 -> <init>
    2:2:void <init>():600:600 -> <init>
    1:1:boolean add(java.lang.Object):640:640 -> add
    1:1:boolean addAll(java.util.Collection):666:666 -> addAll
    1:1:void clear():717:717 -> clear
    1:1:boolean remove(java.lang.Object):653:653 -> remove
    1:1:boolean removeAll(java.util.Collection):679:679 -> removeAll
    1:1:boolean removeIf(java.util.function.Predicate):692:692 -> removeIf
    1:1:boolean retainAll(java.util.Collection):705:705 -> retainAll
com.android.tools.r8.com.google.common.collect.Sets$UnmodifiableNavigableSet -> com.android.tools.r8.r.a.a.b.C2:
    java.util.SortedSet unmodifiableDelegate -> b
    java.util.NavigableSet delegate -> a
    com.android.tools.r8.com.google.common.collect.Sets$UnmodifiableNavigableSet descendingSet -> c
    1:3:void <init>(java.util.NavigableSet):1828:1830 -> <init>
    1:1:java.util.SortedSet delegate():1835:1835 -> a
    1:1:java.lang.Object delegate():1823 -> a
    1:1:java.util.SortedSet delegate():1835:1835 -> b
    1:1:java.util.Collection delegate():1823 -> b
    1:1:java.lang.Object ceiling(java.lang.Object):1872:1872 -> ceiling
    1:1:java.util.SortedSet delegate():1835:1835 -> d
    1:1:java.util.Set delegate():1823 -> d
    1:1:java.util.Iterator descendingIterator():1904:1904 -> descendingIterator
    1:4:java.util.NavigableSet descendingSet():1894:1897 -> descendingSet
    1:1:java.util.SortedSet delegate():1835:1835 -> e
    1:1:java.lang.Object floor(java.lang.Object):1867:1867 -> floor
    1:1:void forEach(java.util.function.Consumer):1857:1857 -> forEach
    1:1:java.util.NavigableSet headSet(java.lang.Object,boolean):1916:1916 -> headSet
    1:1:java.lang.Object higher(java.lang.Object):1877:1877 -> higher
    1:1:java.lang.Object lower(java.lang.Object):1862:1862 -> lower
    1:1:java.util.stream.Stream parallelStream():1852:1852 -> parallelStream
    1:1:java.lang.Object pollFirst():1882:1882 -> pollFirst
    1:1:java.lang.Object pollLast():1887:1887 -> pollLast
    1:1:boolean removeIf(java.util.function.Predicate):1842:1842 -> removeIf
    1:1:java.util.stream.Stream stream():1847:1847 -> stream
    1:2:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):1910:1911 -> subSet
    3:3:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):1910:1910 -> subSet
    1:1:java.util.NavigableSet tailSet(java.lang.Object,boolean):1921:1921 -> tailSet
com.android.tools.r8.com.google.common.collect.SingletonImmutableBiMap -> com.android.tools.r8.r.a.a.b.D2:
    java.lang.Object singleValue -> f
    com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse -> g
    java.lang.Object singleKey -> e
    1:4:void <init>(java.lang.Object,java.lang.Object):41:44 -> <init>
    5:8:void <init>(java.lang.Object,java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableBiMap):47:50 -> <init>
    1:1:boolean containsKey(java.lang.Object):70:70 -> containsKey
    1:1:boolean containsValue(java.lang.Object):75:75 -> containsValue
    1:3:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():100:102 -> f
    1:3:com.android.tools.r8.com.google.common.collect.BiMap inverse():34 -> f
    1:1:void forEach(java.util.function.BiConsumer):65:65 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.BiConsumer):65 -> forEach
    1:1:java.lang.Object get(java.lang.Object):55:55 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():85:85 -> h
    2:2:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> h
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():85 -> h
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():85:85 -> h
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():90:90 -> j
    boolean isPartialView() -> n
    1:3:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():100:102 -> t
com.android.tools.r8.com.google.common.collect.SingletonImmutableList -> com.android.tools.r8.r.a.a.b.E2:
    java.lang.Object element -> b
    1:2:void <init>(java.lang.Object):37:38 -> <init>
    boolean isPartialView() -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):64:64 -> b
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.of():81:81 -> b
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):65 -> b
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():49:49 -> d
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.singletonIterator(java.lang.Object):1104:1104 -> d
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():49 -> d
    1:2:java.lang.Object get(int):43:44 -> get
    1:1:java.util.Iterator iterator():31:31 -> iterator
    1:1:java.util.Spliterator spliterator():54:54 -> spliterator
    1:1:java.util.List subList(int,int):31:31 -> subList
    1:1:java.lang.String toString():70:70 -> toString
com.android.tools.r8.com.google.common.collect.SingletonImmutableSet -> com.android.tools.r8.r.a.a.b.F2:
    java.lang.Object element -> c
    int cachedHashCode -> d
    1:2:void <init>(java.lang.Object):44:45 -> <init>
    3:6:void <init>(java.lang.Object,int):48:51 -> <init>
    1:1:int copyIntoArray(java.lang.Object[],int):81:81 -> a
    boolean isPartialView() -> b
    1:1:boolean contains(java.lang.Object):61:61 -> contains
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():66:66 -> d
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.singletonIterator(java.lang.Object):1104:1104 -> d
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():66 -> d
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():71:71 -> f
    1:1:boolean isHashCodeFast():97:97 -> g
    1:3:int hashCode():88:90 -> hashCode
    1:1:java.util.Iterator iterator():29:29 -> iterator
    1:1:java.lang.String toString():102:102 -> toString
com.android.tools.r8.com.google.common.collect.SortedIterable -> com.android.tools.r8.r.a.a.b.G2:
com.android.tools.r8.com.google.common.collect.Streams$1Splitr -> com.android.tools.r8.r.a.a.b.H2:
    com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex val$function -> d
    java.lang.Object holder -> c
    1:2:void <init>(java.util.Spliterator,long,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):369:370 -> <init>
    1:1:void accept(java.lang.Object):375:375 -> accept
    1:6:boolean tryAdvance(java.util.function.Consumer):380:385 -> tryAdvance
com.android.tools.r8.com.google.common.collect.Streams$2 -> com.android.tools.r8.r.a.a.b.I2:
    java.util.Iterator val$fromIterator -> b
    long index -> a
    com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex val$function -> c
    1:2:void <init>(long,int,java.util.Iterator,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):352:353 -> <init>
    1:2:boolean tryAdvance(java.util.function.Consumer):357:358 -> tryAdvance
com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex -> com.android.tools.r8.r.a.a.b.J2:
    java.lang.Object apply(java.lang.Object,long) -> a
com.android.tools.r8.com.google.common.collect.Streams$MapWithIndexSpliterator -> com.android.tools.r8.r.a.a.b.K2:
    long index -> b
    java.util.Spliterator fromSpliterator -> a
    1:3:void <init>(java.util.Spliterator,long):419:421 -> <init>
    1:1:int characteristics():445:445 -> characteristics
    1:1:long estimateSize():440:440 -> estimateSize
    1:5:com.android.tools.r8.com.google.common.collect.Streams$MapWithIndexSpliterator trySplit():429:433 -> trySplit
    1:5:java.util.Spliterator trySplit():413 -> trySplit
    6:6:com.android.tools.r8.com.google.common.collect.Streams$1Splitr com.android.tools.r8.com.google.common.collect.Streams$1Splitr.createSplit(java.util.Spliterator,long):393:393 -> trySplit
    6:6:com.android.tools.r8.com.google.common.collect.Streams$MapWithIndexSpliterator com.android.tools.r8.com.google.common.collect.Streams$1Splitr.createSplit(java.util.Spliterator,long):366 -> trySplit
    6:6:com.android.tools.r8.com.google.common.collect.Streams$MapWithIndexSpliterator trySplit():433 -> trySplit
    6:6:java.util.Spliterator trySplit():413 -> trySplit
    7:7:com.android.tools.r8.com.google.common.collect.Streams$MapWithIndexSpliterator trySplit():434:434 -> trySplit
    7:7:java.util.Spliterator trySplit():413 -> trySplit
com.android.tools.r8.com.google.common.collect.TransformedIterator -> com.android.tools.r8.r.a.a.b.L2:
    java.util.Iterator backingIterator -> a
    1:2:void <init>(java.util.Iterator):35:36 -> <init>
    java.lang.Object transform(java.lang.Object) -> a
    1:1:boolean hasNext():43:43 -> hasNext
    1:1:java.lang.Object next():48:48 -> next
    1:1:void remove():53:53 -> remove
com.android.tools.r8.com.google.common.collect.UnmodifiableIterator -> com.android.tools.r8.r.a.a.b.M2:
    1:1:void <init>():35:35 -> <init>
    1:1:void remove():46:46 -> remove
com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator -> com.android.tools.r8.r.a.a.b.N2:
    1:1:void <init>():33:33 -> <init>
    1:1:void add(java.lang.Object):44:44 -> add
    1:1:void set(java.lang.Object):56:56 -> set
com.android.tools.r8.com.google.common.hash.AbstractHashFunction -> com.android.tools.r8.r.a.a.c.a:
    1:1:void <init>():28:28 -> <init>
    1:1:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):42:42 -> a
    2:2:com.android.tools.r8.com.google.common.hash.HashCode hashBytes(byte[],int,int):62:62 -> a
    3:5:com.android.tools.r8.com.google.common.hash.Hasher newHasher(int):73:75 -> a
    3:5:com.android.tools.r8.com.google.common.hash.HashCode hashBytes(byte[],int,int):63 -> a
    6:6:com.android.tools.r8.com.google.common.hash.HashCode hashBytes(byte[],int,int):63:63 -> a
com.android.tools.r8.com.google.common.hash.AbstractHasher -> com.android.tools.r8.r.a.a.c.b:
    1:1:void <init>():29:29 -> <init>
    com.android.tools.r8.com.google.common.hash.Hasher putBytes(byte[],int,int) -> a
    1:1:com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset):55:55 -> a
    2:2:com.android.tools.r8.com.google.common.hash.Hasher putBytes(byte[]):60:60 -> a
com.android.tools.r8.com.google.common.hash.HashCode -> com.android.tools.r8.r.a.a.c.e:
    char[] hexDigits -> a
    1:1:void <clinit>():429:429 -> <clinit>
    1:1:void <init>():38:38 -> <init>
    byte[] asBytes() -> a
    boolean equalsSameBits(com.android.tools.r8.com.google.common.hash.HashCode) -> a
    1:1:com.android.tools.r8.com.google.common.hash.HashCode fromInt(int):119:119 -> a
    2:2:com.android.tools.r8.com.google.common.hash.HashCode fromBytesNoCopy(byte[]):256:256 -> a
    int asInt() -> b
    int bits() -> c
    1:1:byte[] getBytesInternal():103:103 -> d
    1:3:boolean equals(java.lang.Object):380:382 -> equals
    1:8:int hashCode():396:403 -> hashCode
    1:6:java.lang.String toString():421:426 -> toString
com.android.tools.r8.com.google.common.hash.HashCode$BytesHashCode -> com.android.tools.r8.r.a.a.c.c:
    byte[] bytes -> b
    1:2:void <init>(byte[]):262:263 -> <init>
    1:1:byte[] asBytes():273:273 -> a
    2:8:boolean equalsSameBits(com.android.tools.r8.com.google.common.hash.HashCode):320:326 -> a
    1:5:int asInt():278:282 -> b
    1:1:int bits():268:268 -> c
    1:1:byte[] getBytesInternal():313:313 -> d
com.android.tools.r8.com.google.common.hash.HashCode$IntHashCode -> com.android.tools.r8.r.a.a.c.d:
    int hash -> b
    1:2:void <init>(int):125:126 -> <init>
    1:1:byte[] asBytes():136:136 -> a
    2:2:boolean equalsSameBits(com.android.tools.r8.com.google.common.hash.HashCode):168:168 -> a
    1:1:int asInt():146:146 -> b
    int bits() -> c
com.android.tools.r8.com.google.common.hash.HashFunction -> com.android.tools.r8.r.a.a.c.f:
    com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset) -> a
    com.android.tools.r8.com.google.common.hash.Hasher newHasher() -> a
com.android.tools.r8.com.google.common.hash.Hasher -> com.android.tools.r8.r.a.a.c.g:
    com.android.tools.r8.com.google.common.hash.HashCode hash() -> a
    com.android.tools.r8.com.google.common.hash.Hasher putBytes(byte[],int,int) -> a
    com.android.tools.r8.com.google.common.hash.Hasher putInt(int) -> a
    com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset) -> a
com.android.tools.r8.com.google.common.hash.Hashing -> com.android.tools.r8.r.a.a.c.i:
    int GOOD_FAST_HASH_SEED -> a
    1:1:void <clinit>():90:90 -> <clinit>
    1:1:com.android.tools.r8.com.google.common.hash.HashFunction murmur3_32():111:111 -> a
    1:1:com.android.tools.r8.com.google.common.hash.HashFunction sha256():200:200 -> b
com.android.tools.r8.com.google.common.hash.Hashing$Sha256Holder -> com.android.tools.r8.r.a.a.c.h:
    com.android.tools.r8.com.google.common.hash.HashFunction SHA_256 -> a
    1:1:void <clinit>():204:204 -> <clinit>
com.android.tools.r8.com.google.common.hash.MessageDigestHashFunction -> com.android.tools.r8.r.a.a.c.l:
    java.security.MessageDigest prototype -> a
    int bytes -> b
    boolean supportsClone -> c
    java.lang.String toString -> d
    1:5:void <init>(java.lang.String,java.lang.String):39:43 -> <init>
    1:1:boolean supportsClone(java.security.MessageDigest):58:58 -> a
    2:4:java.security.MessageDigest getMessageDigest(java.lang.String):77:79 -> a
    5:12:com.android.tools.r8.com.google.common.hash.Hasher newHasher():85:92 -> a
    13:13:java.security.MessageDigest getMessageDigest(java.lang.String):77:77 -> a
    13:13:com.android.tools.r8.com.google.common.hash.Hasher newHasher():92 -> a
    14:14:com.android.tools.r8.com.google.common.hash.Hasher newHasher():92:92 -> a
    15:15:java.security.MessageDigest getMessageDigest(java.lang.String):79:79 -> a
    15:15:com.android.tools.r8.com.google.common.hash.Hasher newHasher():92 -> a
    1:1:java.lang.String toString():72:72 -> toString
com.android.tools.r8.com.google.common.hash.MessageDigestHashFunction$1 -> com.android.tools.r8.r.a.a.c.j:
com.android.tools.r8.com.google.common.hash.MessageDigestHashFunction$MessageDigestHasher -> com.android.tools.r8.r.a.a.c.k:
    java.security.MessageDigest digest -> b
    java.nio.ByteBuffer com.android.tools.r8.com.google.common.hash.AbstractByteHasher.scratch -> a
    int bytes -> c
    boolean done -> d
    1:2:void com.android.tools.r8.com.google.common.hash.AbstractByteHasher.<init>():35:36 -> <init>
    1:2:void <init>(java.security.MessageDigest,int):125 -> <init>
    3:4:void <init>(java.security.MessageDigest,int):126:127 -> <init>
    5:5:void <init>(java.security.MessageDigest,int,com.android.tools.r8.com.google.common.hash.MessageDigestHashFunction$1):120:120 -> <init>
    1:1:void com.android.tools.r8.com.google.common.hash.AbstractByteHasher.update(byte[]):47:47 -> a
    1:1:void com.android.tools.r8.com.google.common.hash.AbstractByteHasher.update(byte[]):0 -> a
    1:1:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[]):80 -> a
    1:1:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[]):0 -> a
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    2:2:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[]):79 -> a
    2:2:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[]):0 -> a
    3:4:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[],int,int):86:87 -> a
    3:4:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[],int,int):0 -> a
    5:6:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putInt(int):117:118 -> a
    5:6:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putInt(int):0 -> a
    7:7:void checkNotDone():149:149 -> a
    7:7:com.android.tools.r8.com.google.common.hash.HashCode hash():154 -> a
    8:11:com.android.tools.r8.com.google.common.hash.HashCode hash():155:158 -> a
    12:12:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.Object):459:459 -> a
    12:12:void checkNotDone():149 -> a
    12:12:com.android.tools.r8.com.google.common.hash.HashCode hash():154 -> a
    1:3:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.update(int):102:104 -> b
    4:4:void checkNotDone():149:149 -> b
    4:4:void update(byte[],int,int):138 -> b
    5:5:void update(byte[],int,int):139:139 -> b
    6:6:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.Object):459:459 -> b
    6:6:void checkNotDone():149 -> b
    6:6:void update(byte[],int,int):138 -> b
com.android.tools.r8.com.google.common.hash.Murmur3_32HashFunction -> com.android.tools.r8.r.a.a.c.n:
    com.android.tools.r8.com.google.common.hash.HashFunction MURMUR3_32 -> b
    int seed -> a
    1:3:void <clinit>():53:55 -> <clinit>
    1:2:void <init>(int):65:66 -> <init>
    1:1:int access$000(int):52:52 -> a
    2:2:int access$100(int,int):52:52 -> a
    3:3:int access$200(byte[],int):52:52 -> a
    4:4:long access$300(char):52:52 -> a
    5:5:com.android.tools.r8.com.google.common.hash.Hasher newHasher():76:76 -> a
    6:49:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):144:187 -> a
    50:50:com.android.tools.r8.com.google.common.hash.HashCode com.android.tools.r8.com.google.common.hash.AbstractHashFunction.hashBytes(byte[]):57:57 -> a
    50:50:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):187 -> a
    51:51:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):190:190 -> a
    52:78:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):180:206 -> a
    79:79:com.android.tools.r8.com.google.common.hash.HashCode com.android.tools.r8.com.google.common.hash.AbstractHashFunction.hashBytes(byte[]):57:57 -> a
    79:79:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):206 -> a
    80:93:com.android.tools.r8.com.google.common.hash.HashCode hashBytes(byte[],int,int):212:225 -> a
    1:1:long access$400(char):52:52 -> b
    2:2:long access$500(int):52:52 -> b
    3:3:com.android.tools.r8.com.google.common.hash.HashCode access$600(int,int):52:52 -> b
    4:4:int getIntLittleEndian(byte[],int):229:229 -> b
    long charToThreeUtf8Bytes(char) -> c
    long codePointToFourUtf8Bytes(int) -> c
    1:1:com.android.tools.r8.com.google.common.hash.HashCode fmix(int,int):254:254 -> c
    long charToTwoUtf8Bytes(char) -> d
    1:1:int mixK1(int):234:234 -> d
    2:2:int mixH1(int,int):241:241 -> d
    1:3:boolean equals(java.lang.Object):86:88 -> equals
    1:1:int hashCode():95:95 -> hashCode
    1:1:java.lang.String toString():81:81 -> toString
com.android.tools.r8.com.google.common.hash.Murmur3_32HashFunction$Murmur3_32Hasher -> com.android.tools.r8.r.a.a.c.m:
    long buffer -> b
    boolean isDone -> e
    int length -> d
    int shift -> c
    int h1 -> a
    1:4:void <init>(int):265:268 -> <init>
    1:8:void update(int,long):273:280 -> a
    9:15:com.android.tools.r8.com.google.common.hash.Hasher putBytes(byte[],int,int):292:298 -> a
    16:16:com.android.tools.r8.com.google.common.hash.Hasher putByte(byte):286:286 -> a
    16:16:com.android.tools.r8.com.google.common.hash.Hasher putBytes(byte[],int,int):298 -> a
    17:17:com.android.tools.r8.com.google.common.hash.Hasher putInt(int):319:319 -> a
    18:48:com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset):339:369 -> a
    49:49:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractHasher.putBytes(byte[]):60:60 -> a
    49:49:com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset):369 -> a
    50:50:com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset):373:373 -> a
    51:51:com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset):364:364 -> a
    52:52:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractHasher.putString(java.lang.CharSequence,java.nio.charset.Charset):55:55 -> a
    52:52:com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset):378 -> a
    53:56:com.android.tools.r8.com.google.common.hash.HashCode hash():384:387 -> a
com.android.tools.r8.com.google.common.io.BaseEncoding -> com.android.tools.r8.r.a.a.d.e:
    com.android.tools.r8.com.google.common.io.BaseEncoding BASE64_URL -> a
    1:45:void <clinit>():315:359 -> <clinit>
    46:46:void com.android.tools.r8.com.google.common.io.BaseEncoding$StandardBaseEncoding.<init>(java.lang.String,java.lang.String,java.lang.Character):563:563 -> <clinit>
    46:46:void <clinit>():359 -> <clinit>
    47:48:void <clinit>():377:378 -> <clinit>
    49:49:void com.android.tools.r8.com.google.common.io.BaseEncoding$StandardBaseEncoding.<init>(java.lang.String,java.lang.String,java.lang.Character):563:563 -> <clinit>
    49:49:void <clinit>():378 -> <clinit>
    50:50:void <clinit>():396:396 -> <clinit>
    1:1:void <init>():122:122 -> <init>
    void encodeTo(java.lang.Appendable,byte[],int,int) -> a
    1:1:java.lang.String encode(byte[]):144:144 -> a
    2:3:java.lang.String encode(byte[],int,int):152:153 -> a
    2:3:java.lang.String encode(byte[]):144 -> a
    4:4:int com.android.tools.r8.com.google.common.io.BaseEncoding$StandardBaseEncoding.maxEncodedSize(int):582:582 -> a
    4:4:java.lang.String encode(byte[],int,int):153 -> a
    4:4:java.lang.String encode(byte[]):144 -> a
    5:11:java.lang.String encode(byte[],int,int):153:159 -> a
    5:11:java.lang.String encode(byte[]):144 -> a
    12:12:java.lang.String encode(byte[],int,int):157:157 -> a
    12:12:java.lang.String encode(byte[]):144 -> a
    13:13:com.android.tools.r8.com.google.common.io.BaseEncoding base64Url():355:355 -> a
    com.android.tools.r8.com.google.common.io.BaseEncoding omitPadding() -> b
com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet -> com.android.tools.r8.r.a.a.d.a:
    char[] chars -> b
    int bytesPerChunk -> f
    byte[] decodabet -> g
    java.lang.String name -> a
    int bitsPerChar -> d
    int charsPerChunk -> e
    int mask -> c
    1:36:void <init>(java.lang.String,char[]):426:461 -> <init>
    37:37:void <init>(java.lang.String,char[]):444:444 -> <init>
    38:38:void <init>(java.lang.String,char[]):432:432 -> <init>
    1:1:char[] access$000(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet):415:415 -> a
    2:2:char encode(int):467:467 -> a
    3:3:boolean matches(char):533:533 -> a
    1:3:boolean equals(java.lang.Object):543:545 -> equals
    1:1:int hashCode():552:552 -> hashCode
    1:1:java.lang.String toString():538:538 -> toString
com.android.tools.r8.com.google.common.io.BaseEncoding$Base16Encoding -> com.android.tools.r8.r.a.a.d.b:
    char[] encoding -> d
    1:1:void <init>(java.lang.String,java.lang.String):847:847 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet):851:851 -> <init>
    3:14:void <init>(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet):844:855 -> <init>
    1:5:void encodeTo(java.lang.Appendable,byte[],int,int):862:866 -> a
    6:6:com.android.tools.r8.com.google.common.io.BaseEncoding newInstance(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):886:886 -> a
com.android.tools.r8.com.google.common.io.BaseEncoding$Base64Encoding -> com.android.tools.r8.r.a.a.d.c:
    1:1:void <init>(java.lang.String,java.lang.String,java.lang.Character):892:892 -> <init>
    2:3:void <init>(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):896:897 -> <init>
    1:11:void encodeTo(java.lang.Appendable,byte[],int,int):903:913 -> a
    12:12:com.android.tools.r8.com.google.common.io.BaseEncoding newInstance(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):943:943 -> a
com.android.tools.r8.com.google.common.io.BaseEncoding$StandardBaseEncoding -> com.android.tools.r8.r.a.a.d.d:
    java.lang.Character paddingChar -> c
    com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet alphabet -> b
    1:4:void <init>(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):566:569 -> <init>
    5:9:void <init>(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):568:572 -> <init>
    1:3:void encodeTo(java.lang.Appendable,byte[],int,int):633:635 -> a
    4:4:void encodeTo(java.lang.Appendable,byte[],int,int):634:634 -> a
    5:5:com.android.tools.r8.com.google.common.io.BaseEncoding newInstance(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):810:810 -> a
    1:19:void encodeChunkTo(java.lang.Appendable,byte[],int,int):641:659 -> b
    20:20:com.android.tools.r8.com.google.common.io.BaseEncoding omitPadding():762:762 -> b
    1:4:boolean equals(java.lang.Object):829:832 -> equals
    1:1:int hashCode():839:839 -> hashCode
    2:2:int com.android.tools.r8.com.google.common.base.Objects.hashCode(java.lang.Object[]):76:76 -> hashCode
    2:2:int hashCode():839 -> hashCode
    1:10:java.lang.String toString():815:824 -> toString
com.android.tools.r8.com.google.common.io.ByteStreams -> com.android.tools.r8.r.a.a.d.g:
    java.io.OutputStream NULL_OUTPUT_STREAM -> a
    1:1:void <clinit>():594:594 -> <clinit>
    1:1:byte[] createBuffer():56:56 -> a
    1:1:long copy(java.io.InputStream,java.io.OutputStream):103 -> a
    2:6:long copy(java.io.InputStream,java.io.OutputStream):106:110 -> a
    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    7:7:long copy(java.io.InputStream,java.io.OutputStream):101 -> a
    8:10:byte[] toByteArray(java.io.InputStream):165:167 -> a
    11:11:java.io.OutputStream nullOutputStream():624:624 -> a
com.android.tools.r8.com.google.common.io.ByteStreams$1 -> com.android.tools.r8.r.a.a.d.f:
    1:1:void <init>():595:595 -> <init>
    1:1:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> write
    1:1:void write(byte[]):603 -> write
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> write
    2:2:void write(byte[],int,int):609 -> write
com.android.tools.r8.com.google.common.io.CharSequenceReader -> com.android.tools.r8.r.a.a.d.h:
    java.lang.CharSequence seq -> a
    int pos -> b
    int mark -> c
    1:2:void <init>(java.lang.CharSequence):43:44 -> <init>
    1:2:void checkOpen():48:49 -> a
    1:1:boolean hasRemaining():54:54 -> b
    1:1:int remaining():58:58 -> c
    1:1:void close():130:130 -> close
    1:3:void mark(int):117:119 -> mark
    1:7:int read(java.nio.CharBuffer):64:70 -> read
    8:8:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> read
    8:8:int read(java.nio.CharBuffer):63 -> read
    9:10:int read():77:78 -> read
    11:18:int read(char[],int,int):83:90 -> read
    1:1:boolean ready():106:106 -> ready
    1:2:void reset():124:125 -> reset
    1:4:long skip(long):97:100 -> skip
com.android.tools.r8.com.google.common.io.CharSource -> com.android.tools.r8.r.a.a.d.k:
    1:1:void <init>():76:76 -> <init>
    java.io.Reader openStream() -> a
    1:1:com.android.tools.r8.com.google.common.io.CharSource wrap(java.lang.CharSequence):479:479 -> a
com.android.tools.r8.com.google.common.io.CharSource$CharSequenceCharSource -> com.android.tools.r8.r.a.a.d.i:
    java.lang.CharSequence seq -> a
    1:1:void <clinit>():525:525 -> <clinit>
    1:2:void <init>(java.lang.CharSequence):529:530 -> <init>
    1:1:java.io.Reader openStream():535:535 -> a
    1:1:java.lang.String toString():609:609 -> toString
    2:20:java.lang.String com.android.tools.r8.com.google.common.base.Ascii.truncate(java.lang.CharSequence,int,java.lang.String):553:571 -> toString
    2:20:java.lang.String toString():609 -> toString
    21:21:java.lang.String toString():609:609 -> toString
    22:22:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> toString
    22:22:java.lang.String com.android.tools.r8.com.google.common.base.Ascii.truncate(java.lang.CharSequence,int,java.lang.String):546 -> toString
    22:22:java.lang.String toString():609 -> toString
com.android.tools.r8.com.google.common.io.CharSource$StringCharSource -> com.android.tools.r8.r.a.a.d.j:
    1:1:void <init>(java.lang.String):630:630 -> <init>
    1:1:java.io.Reader openStream():635:635 -> a
com.android.tools.r8.com.google.common.io.Closeables -> com.android.tools.r8.r.a.a.d.l:
    java.util.logging.Logger logger -> a
    1:1:void <clinit>():37:37 -> <clinit>
com.android.tools.r8.com.google.common.io.Closer -> com.android.tools.r8.r.a.a.d.p:
    com.android.tools.r8.com.google.common.io.Closer$Suppressor suppressor -> a
    java.util.Deque stack -> b
    com.android.tools.r8.com.google.common.io.Closer$Suppressor SUPPRESSOR -> c
    1:1:boolean com.android.tools.r8.com.google.common.io.Closer$SuppressingSuppressor.isAvailable():271:271 -> <clinit>
    1:1:void <clinit>():96 -> <clinit>
    2:2:void <clinit>():96:96 -> <clinit>
    1:1:void <init>(com.android.tools.r8.com.google.common.io.Closer$Suppressor):114:114 -> <init>
    2:7:void <init>(com.android.tools.r8.com.google.common.io.Closer$Suppressor):110:115 -> <init>
    1:1:com.android.tools.r8.com.google.common.io.Closer create():104:104 -> a
    2:2:java.io.Closeable register(java.io.Closeable):128:128 -> a
    1:16:void close():213:228 -> close
com.android.tools.r8.com.google.common.io.Closer$LoggingSuppressor -> com.android.tools.r8.r.a.a.d.m:
    com.android.tools.r8.com.google.common.io.Closer$LoggingSuppressor INSTANCE -> a
    1:1:void <clinit>():251:251 -> <clinit>
    1:1:void <init>():249:249 -> <init>
    1:1:void suppress(java.io.Closeable,java.lang.Throwable,java.lang.Throwable):256:256 -> a
com.android.tools.r8.com.google.common.io.Closer$SuppressingSuppressor -> com.android.tools.r8.r.a.a.d.n:
    com.android.tools.r8.com.google.common.io.Closer$SuppressingSuppressor INSTANCE -> a
    java.lang.reflect.Method addSuppressed -> b
    1:1:void <clinit>():268:268 -> <clinit>
    2:2:java.lang.reflect.Method getAddSuppressed():278:278 -> <clinit>
    2:2:void <clinit>():274 -> <clinit>
    3:3:void <clinit>():274:274 -> <clinit>
    1:1:void <init>():266:266 -> <init>
    1:1:void suppress(java.io.Closeable,java.lang.Throwable,java.lang.Throwable):291:291 -> a
    2:2:void com.android.tools.r8.com.google.common.io.Closer$LoggingSuppressor.suppress(java.io.Closeable,java.lang.Throwable,java.lang.Throwable):256:256 -> a
    2:2:void suppress(java.io.Closeable,java.lang.Throwable,java.lang.Throwable):294 -> a
com.android.tools.r8.com.google.common.io.Closer$Suppressor -> com.android.tools.r8.r.a.a.d.o:
    void suppress(java.io.Closeable,java.lang.Throwable,java.lang.Throwable) -> a
com.android.tools.r8.com.google.common.math.IntMath -> com.android.tools.r8.r.a.a.e.b:
    int[] biggestBinomials -> a
    1:1:void <clinit>():675:675 -> <clinit>
    boolean isPowerOfTwo(int) -> a
    1:24:int log2(int,java.math.RoundingMode):121:144 -> a
    25:25:int log2(int,java.math.RoundingMode):137:137 -> a
    26:26:int log2(int,java.math.RoundingMode):131:131 -> a
    27:31:int log2(int,java.math.RoundingMode):123:127 -> a
    32:32:void com.android.tools.r8.com.google.common.math.MathPreconditions.checkRoundingUnnecessary(boolean):81:81 -> a
    32:32:int log2(int,java.math.RoundingMode):123 -> a
    33:33:int com.android.tools.r8.com.google.common.math.MathPreconditions.checkPositive(java.lang.String,int):32:32 -> a
    33:33:int log2(int,java.math.RoundingMode):120 -> a
    34:80:int divide(int,int,java.math.RoundingMode):322:368 -> a
    81:86:int divide(int,int,java.math.RoundingMode):357:362 -> a
    87:87:void com.android.tools.r8.com.google.common.math.MathPreconditions.checkRoundingUnnecessary(boolean):81:81 -> a
    87:87:int divide(int,int,java.math.RoundingMode):340 -> a
    88:88:int divide(int,int,java.math.RoundingMode):320:320 -> a
    89:89:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    89:89:int divide(int,int,java.math.RoundingMode):318 -> a
    90:108:int binomial(int,int):649:667 -> a
com.android.tools.r8.com.google.common.math.IntMath$1 -> com.android.tools.r8.r.a.a.e.a:
    int[] $SwitchMap$java$math$RoundingMode -> a
    1:1:void <clinit>():121:121 -> <clinit>
com.android.tools.r8.com.google.common.math.MathPreconditions -> com.android.tools.r8.r.a.a.e.c:
    1:1:int checkNonNegative(java.lang.String,int):53:53 -> a
com.android.tools.r8.com.google.gson.JsonArray -> com.android.tools.r8.r.a.b.a:
    java.util.List elements -> a
    1:2:void <init>():39:40 -> <init>
    1:3:void add(com.android.tools.r8.com.google.gson.JsonElement):95:97 -> a
    4:7:boolean getAsBoolean():358:361 -> a
    1:4:int getAsInt():310:313 -> b
    1:1:boolean equals(java.lang.Object):366:366 -> equals
    1:4:long getAsLong():294:297 -> f
    1:4:java.lang.String getAsString():212:215 -> g
    1:1:int hashCode():371:371 -> hashCode
    1:1:java.util.Iterator iterator():171:171 -> iterator
    1:1:int size():161:161 -> size
com.android.tools.r8.com.google.gson.JsonElement -> com.android.tools.r8.r.a.b.b:
    1:1:void <init>():33:33 -> <init>
    1:1:boolean getAsBoolean():152:152 -> a
    1:1:int getAsInt():243:243 -> b
    1:1:boolean isJsonArray():46:46 -> d
    1:1:com.android.tools.r8.com.google.gson.JsonArray getAsJsonArray():103 -> d
    2:4:com.android.tools.r8.com.google.gson.JsonArray getAsJsonArray():104:106 -> d
    1:1:boolean isJsonObject():55:55 -> e
    1:1:com.android.tools.r8.com.google.gson.JsonObject getAsJsonObject():87 -> e
    2:4:com.android.tools.r8.com.google.gson.JsonObject getAsJsonObject():88:90 -> e
    1:1:long getAsLong():230:230 -> f
    1:1:java.lang.String getAsString():191:191 -> g
    1:3:java.lang.String toString():321:323 -> toString
    4:4:void com.android.tools.r8.com.google.gson.internal.Streams.write(com.android.tools.r8.com.google.gson.JsonElement,com.android.tools.r8.com.google.gson.stream.JsonWriter):72:72 -> toString
    4:4:java.lang.String toString():324 -> toString
    5:7:java.lang.String toString():325:327 -> toString
com.android.tools.r8.com.google.gson.JsonIOException -> com.android.tools.r8.r.a.b.c:
    1:1:void <init>(java.lang.Throwable):43:43 -> <init>
com.android.tools.r8.com.google.gson.JsonNull -> com.android.tools.r8.r.a.b.d:
    com.android.tools.r8.com.google.gson.JsonNull INSTANCE -> a
    1:1:void <clinit>():32:32 -> <clinit>
    1:1:void <init>():39:39 -> <init>
    1:1:boolean equals(java.lang.Object):61:61 -> equals
    1:1:int hashCode():53:53 -> hashCode
com.android.tools.r8.com.google.gson.JsonObject -> com.android.tools.r8.r.a.b.e:
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap members -> a
    1:2:void <init>():32:33 -> <init>
    1:3:void add(java.lang.String,com.android.tools.r8.com.google.gson.JsonElement):55:57 -> a
    4:4:void addProperty(java.lang.String,java.lang.String):79:79 -> a
    5:5:void add(java.lang.String,com.android.tools.r8.com.google.gson.JsonElement):57:57 -> a
    5:5:void addProperty(java.lang.String,java.lang.String):79 -> a
    6:6:void addProperty(java.lang.String,java.lang.Number):90:90 -> a
    7:7:void add(java.lang.String,com.android.tools.r8.com.google.gson.JsonElement):57:57 -> a
    7:7:void addProperty(java.lang.String,java.lang.Number):90 -> a
    8:8:void addProperty(java.lang.String,java.lang.Boolean):101:101 -> a
    9:9:void add(java.lang.String,com.android.tools.r8.com.google.gson.JsonElement):57:57 -> a
    9:9:void addProperty(java.lang.String,java.lang.Boolean):101 -> a
    10:10:com.android.tools.r8.com.google.gson.JsonElement createJsonElement(java.lang.Object):122:122 -> a
    11:11:com.android.tools.r8.com.google.gson.JsonElement get(java.lang.String):161:161 -> a
    1:1:com.android.tools.r8.com.google.gson.JsonArray getAsJsonArray(java.lang.String):181:181 -> b
    1:1:boolean has(java.lang.String):151:151 -> c
    1:1:java.util.Set entrySet():132:132 -> entrySet
    1:2:boolean equals(java.lang.Object):196:197 -> equals
    1:1:int hashCode():202:202 -> hashCode
com.android.tools.r8.com.google.gson.JsonParseException -> com.android.tools.r8.r.a.b.f:
    1:1:void <init>(java.lang.String):42:42 -> <init>
    2:2:void <init>(java.lang.String,java.lang.Throwable):52:52 -> <init>
    3:3:void <init>(java.lang.Throwable):62:62 -> <init>
com.android.tools.r8.com.google.gson.JsonParser -> com.android.tools.r8.r.a.b.g:
    1:1:void <init>():34:34 -> <init>
    1:1:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45:45 -> a
    2:3:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):58:59 -> a
    2:3:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
    4:4:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonNull():74:74 -> a
    4:4:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):60 -> a
    4:4:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
    5:6:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):60:61 -> a
    5:6:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
    7:7:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonNull():74:74 -> a
    7:7:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):60 -> a
    7:7:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
    8:8:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):69:69 -> a
    8:8:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
    9:9:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):67:67 -> a
    9:9:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
    10:10:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):65:65 -> a
    10:10:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
    11:20:com.android.tools.r8.com.google.gson.JsonElement parse(com.android.tools.r8.com.google.gson.stream.JsonReader):81:90 -> a
    21:21:com.android.tools.r8.com.google.gson.JsonElement parse(com.android.tools.r8.com.google.gson.stream.JsonReader):88:88 -> a
    22:26:com.android.tools.r8.com.google.gson.JsonElement parse(com.android.tools.r8.com.google.gson.stream.JsonReader):86:90 -> a
com.android.tools.r8.com.google.gson.JsonPrimitive -> com.android.tools.r8.r.a.b.h:
    java.lang.Class[] PRIMITIVE_TYPES -> b
    java.lang.Object value -> a
    1:1:void <clinit>():35:35 -> <clinit>
    1:2:void <init>(java.lang.Boolean):46:47 -> <init>
    3:4:void <init>(java.lang.Number):55:56 -> <init>
    5:6:void <init>(java.lang.String):64:65 -> <init>
    7:8:void <init>(java.lang.Object):84:85 -> <init>
    1:7:void setValue(java.lang.Object):94:100 -> a
    8:14:boolean isPrimitiveOrString(java.lang.Object):274:280 -> a
    8:14:void setValue(java.lang.Object):101 -> a
    15:15:void setValue(java.lang.Object):102:102 -> a
    16:16:void com.android.tools.r8.com.google.gson.internal.$Gson$Preconditions.checkArgument(boolean):46:46 -> a
    16:16:void setValue(java.lang.Object):100 -> a
    17:17:boolean isBoolean():112:112 -> a
    17:17:boolean getAsBoolean():132 -> a
    18:18:java.lang.Boolean getAsBooleanWrapper():122:122 -> a
    18:18:boolean getAsBoolean():133 -> a
    19:22:boolean getAsBoolean():133:136 -> a
    23:25:boolean isIntegral(com.android.tools.r8.com.google.gson.JsonPrimitive):334:336 -> a
    1:1:boolean isNumber():146:146 -> b
    1:1:int getAsInt():260 -> b
    2:2:int getAsInt():260:260 -> b
    1:18:boolean equals(java.lang.Object):309:326 -> equals
    1:1:boolean isNumber():146:146 -> f
    1:1:long getAsLong():238 -> f
    2:2:long getAsLong():238:238 -> f
    1:1:boolean isNumber():146:146 -> g
    1:1:java.lang.String getAsString():176 -> g
    2:2:java.lang.String getAsString():177:177 -> g
    3:3:boolean isBoolean():112:112 -> g
    3:3:java.lang.String getAsString():178 -> g
    4:4:java.lang.Boolean getAsBooleanWrapper():122:122 -> g
    4:4:java.lang.String getAsString():179 -> g
    5:7:java.lang.String getAsString():179:181 -> g
    1:13:int hashCode():289:301 -> hashCode
    1:1:java.lang.Number getAsNumber():157:157 -> i
    1:1:boolean isBoolean():112:112 -> j
    1:1:boolean isNumber():146:146 -> k
com.android.tools.r8.com.google.gson.JsonSyntaxException -> com.android.tools.r8.r.a.b.i:
    1:1:void <init>(java.lang.String):30:30 -> <init>
    2:2:void <init>(java.lang.Throwable):45:45 -> <init>
com.android.tools.r8.com.google.gson.TypeAdapter -> com.android.tools.r8.r.a.b.k:
    1:1:void <init>():119:119 -> <init>
    java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader) -> a
    void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object) -> a
    1:1:com.android.tools.r8.com.google.gson.TypeAdapter nullSafe():186:186 -> a
com.android.tools.r8.com.google.gson.TypeAdapter$1 -> com.android.tools.r8.r.a.b.j:
    com.android.tools.r8.com.google.gson.TypeAdapter this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.gson.TypeAdapter):186:186 -> <init>
    1:3:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):189:191 -> a
    4:8:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):195:199 -> a
com.android.tools.r8.com.google.gson.internal.LazilyParsedNumber -> com.android.tools.r8.r.a.b.l.a:
    java.lang.String value -> a
    1:2:void <init>(java.lang.String):30:31 -> <init>
    1:1:double doubleValue():63:63 -> doubleValue
    1:3:boolean equals(java.lang.Object):90:92 -> equals
    1:1:float floatValue():58:58 -> floatValue
    1:1:int hashCode():82:82 -> hashCode
    1:6:int intValue():37:42 -> intValue
    1:3:long longValue():50:52 -> longValue
    1:1:java.lang.String toString():68:68 -> toString
com.android.tools.r8.com.google.gson.internal.LinkedTreeMap -> com.android.tools.r8.r.a.b.l.d:
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node header -> e
    java.util.Comparator NATURAL_ORDER -> h
    boolean $assertionsDisabled -> i
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$KeySet keySet -> g
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node root -> b
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$EntrySet entrySet -> f
    int modCount -> d
    int size -> c
    java.util.Comparator comparator -> a
    1:3:void <clinit>():38:40 -> <clinit>
    1:1:void <init>():60:60 -> <init>
    2:2:void <init>(java.util.Comparator):71:71 -> <init>
    3:27:void <init>(java.util.Comparator):48:72 -> <init>
    1:57:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node find(java.lang.Object,boolean):122:178 -> a
    58:58:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node findByObject(java.lang.Object):186:186 -> a
    59:60:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node findByEntry(java.util.Map$Entry):202:203 -> a
    61:61:boolean equal(java.lang.Object,java.lang.Object):208:208 -> a
    61:61:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node findByEntry(java.util.Map$Entry):203 -> a
    62:76:void replaceInParent(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node):285:299 -> a
    77:95:void rebalance(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):312:330 -> a
    96:118:void rebalance(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):326:348 -> a
    119:137:void rebalance(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):344:362 -> a
    138:138:void rebalance(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):311:311 -> a
    139:159:void rotateLeft(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node):374:394 -> a
    1:19:void removeInternal(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):219:237 -> b
    20:23:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node.last():517:520 -> b
    20:23:void removeInternal(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):237 -> b
    24:27:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node.first():504:507 -> b
    24:27:void removeInternal(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):237 -> b
    28:63:void removeInternal(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):238:273 -> b
    64:84:void rotateRight(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node):402:422 -> b
    1:7:void clear():101:107 -> clear
    1:1:boolean containsKey(java.lang.Object):87:87 -> containsKey
    1:2:java.util.Set entrySet():430:431 -> entrySet
    1:2:java.lang.Object get(java.lang.Object):82:83 -> get
    1:2:java.util.Set keySet():435:436 -> keySet
    1:3:java.lang.Object put(java.lang.Object,java.lang.Object):94:96 -> put
    4:4:java.lang.Object put(java.lang.Object,java.lang.Object):92:92 -> put
    1:3:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node removeInternalByKey(java.lang.Object):277:279 -> remove
    1:3:java.lang.Object remove(java.lang.Object):111 -> remove
    4:4:java.lang.Object remove(java.lang.Object):112:112 -> remove
    1:1:int size():78:78 -> size
com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$1 -> com.android.tools.r8.r.a.b.l.b:
    1:1:void <init>():40:40 -> <init>
    1:1:int compare(java.lang.Object,java.lang.Object):40:40 -> compare
    2:2:int compare(java.lang.Comparable,java.lang.Comparable):42:42 -> compare
    2:2:int compare(java.lang.Object,java.lang.Object):40 -> compare
com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$EntrySet -> com.android.tools.r8.r.a.b.l.d$a:
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap):560:560 -> <init>
    1:1:void clear():591:591 -> clear
    1:1:boolean contains(java.lang.Object):574:574 -> contains
    1:1:java.util.Iterator iterator():566:566 -> iterator
    1:9:boolean remove(java.lang.Object):578:586 -> remove
    1:1:int size():562:562 -> size
com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$EntrySet$1 -> com.android.tools.r8.r.a.b.l.c:
    1:1:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$EntrySet):566:566 -> <init>
    1:1:java.util.Map$Entry next():568:568 -> next
    1:1:java.lang.Object next():566 -> next
com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$KeySet -> com.android.tools.r8.r.a.b.l.d$b:
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap):595:595 -> <init>
    1:1:void clear():617:617 -> clear
    1:1:boolean contains(java.lang.Object):609:609 -> contains
    2:2:boolean com.android.tools.r8.com.google.gson.internal.LinkedTreeMap.containsKey(java.lang.Object):87:87 -> contains
    2:2:boolean contains(java.lang.Object):609 -> contains
    1:1:java.util.Iterator iterator():601:601 -> iterator
    1:1:boolean remove(java.lang.Object):613:613 -> remove
    2:4:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node com.android.tools.r8.com.google.gson.internal.LinkedTreeMap.removeInternalByKey(java.lang.Object):277:279 -> remove
    2:4:boolean remove(java.lang.Object):613 -> remove
    1:1:int size():597:597 -> size
com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$KeySet$1 -> com.android.tools.r8.r.a.b.l.e:
    1:1:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$KeySet):601:601 -> <init>
    1:1:java.lang.Object next():603:603 -> next
com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$LinkedTreeMapIterator -> com.android.tools.r8.r.a.b.l.d$c:
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap this$0 -> d
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node lastReturned -> b
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node next -> a
    int expectedModCount -> c
    1:1:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap):531:531 -> <init>
    2:4:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap):527:529 -> <init>
    1:9:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node nextNode():539:547 -> c
    10:10:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node nextNode():544:544 -> c
    11:11:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node nextNode():541:541 -> c
    1:1:boolean hasNext():535:535 -> hasNext
    1:6:void remove():551:556 -> remove
    7:7:void remove():552:552 -> remove
com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node -> com.android.tools.r8.r.a.b.l.f:
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node next -> d
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node right -> c
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node prev -> e
    java.lang.Object key -> f
    java.lang.Object value -> g
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node left -> b
    int height -> h
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node parent -> a
    1:3:void <init>():450:452 -> <init>
    4:11:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,java.lang.Object,com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node):456:463 -> <init>
    1:4:boolean equals(java.lang.Object):482:485 -> equals
    1:1:java.lang.Object getKey():467:467 -> getKey
    1:1:java.lang.Object getValue():471:471 -> getValue
    1:2:int hashCode():491:492 -> hashCode
    1:2:java.lang.Object setValue(java.lang.Object):475:476 -> setValue
    1:1:java.lang.String toString():496:496 -> toString
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters -> com.android.tools.r8.r.a.b.l.g.w:
    com.android.tools.r8.com.google.gson.TypeAdapter STRING -> l
    com.android.tools.r8.com.google.gson.TypeAdapter STRING_BUILDER -> m
    com.android.tools.r8.com.google.gson.TypeAdapter NUMBER -> j
    com.android.tools.r8.com.google.gson.TypeAdapter CHARACTER -> k
    com.android.tools.r8.com.google.gson.TypeAdapter URI -> p
    com.android.tools.r8.com.google.gson.TypeAdapter INET_ADDRESS -> q
    com.android.tools.r8.com.google.gson.TypeAdapter STRING_BUFFER -> n
    com.android.tools.r8.com.google.gson.TypeAdapter URL -> o
    com.android.tools.r8.com.google.gson.TypeAdapter BYTE -> d
    com.android.tools.r8.com.google.gson.TypeAdapter SHORT -> e
    com.android.tools.r8.com.google.gson.TypeAdapter BIT_SET -> b
    com.android.tools.r8.com.google.gson.TypeAdapter BOOLEAN -> c
    com.android.tools.r8.com.google.gson.TypeAdapter ATOMIC_BOOLEAN -> h
    com.android.tools.r8.com.google.gson.TypeAdapter ATOMIC_INTEGER_ARRAY -> i
    com.android.tools.r8.com.google.gson.TypeAdapter INTEGER -> f
    com.android.tools.r8.com.google.gson.TypeAdapter ATOMIC_INTEGER -> g
    com.android.tools.r8.com.google.gson.TypeAdapter CLASS -> a
    com.android.tools.r8.com.google.gson.TypeAdapter CALENDAR -> t
    com.android.tools.r8.com.google.gson.TypeAdapter LOCALE -> u
    com.android.tools.r8.com.google.gson.TypeAdapter UUID -> r
    com.android.tools.r8.com.google.gson.TypeAdapter CURRENCY -> s
    com.android.tools.r8.com.google.gson.TypeAdapter JSON_ELEMENT -> v
    1:646:void <clinit>():69:714 -> <clinit>
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$1 -> com.android.tools.r8.r.a.b.l.g.f:
    1:1:void <init>():69:69 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):69:69 -> a
    2:5:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Class):73:76 -> a
    2:5:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):69 -> a
    6:10:java.lang.Class read(com.android.tools.r8.com.google.gson.stream.JsonReader):81:85 -> a
    6:10:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):69 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$10 -> com.android.tools.r8.r.a.b.l.g.a:
    1:1:void <init>():282:282 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):282:282 -> a
    2:6:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.concurrent.atomic.AtomicIntegerArray):303:307 -> a
    2:6:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):282 -> a
    7:21:java.util.concurrent.atomic.AtomicIntegerArray read(com.android.tools.r8.com.google.gson.stream.JsonReader):284:298 -> a
    7:21:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):282 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$14 -> com.android.tools.r8.r.a.b.l.g.b:
    1:1:void <init>():362:362 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):362:362 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Number):378:378 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):362 -> a
    3:11:java.lang.Number read(com.android.tools.r8.com.google.gson.stream.JsonReader):365:373 -> a
    3:11:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):362 -> a
    12:12:java.lang.Number read(com.android.tools.r8.com.google.gson.stream.JsonReader):371:371 -> a
    12:12:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):362 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$15 -> com.android.tools.r8.r.a.b.l.g.c:
    1:1:void <init>():384:384 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):384:384 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Character):399:399 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):384 -> a
    3:11:java.lang.Character read(com.android.tools.r8.com.google.gson.stream.JsonReader):387:395 -> a
    3:11:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):384 -> a
    12:12:java.lang.Character read(com.android.tools.r8.com.google.gson.stream.JsonReader):393:393 -> a
    12:12:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):384 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$16 -> com.android.tools.r8.r.a.b.l.g.d:
    1:1:void <init>():406:406 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):406:406 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.String):422:422 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):406 -> a
    3:12:java.lang.String read(com.android.tools.r8.com.google.gson.stream.JsonReader):409:418 -> a
    3:12:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):406 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$19 -> com.android.tools.r8.r.a.b.l.g.e:
    1:1:void <init>():464:464 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):464:464 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.StringBuilder):475:475 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):464 -> a
    3:7:java.lang.StringBuilder read(com.android.tools.r8.com.google.gson.stream.JsonReader):467:471 -> a
    3:7:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):464 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$2 -> com.android.tools.r8.r.a.b.l.g.p:
    1:1:void <init>():92:92 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):92:92 -> a
    2:11:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.BitSet):136:145 -> a
    2:11:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):92 -> a
    12:40:java.util.BitSet read(com.android.tools.r8.com.google.gson.stream.JsonReader):94:122 -> a
    12:40:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):92 -> a
    41:41:java.util.BitSet read(com.android.tools.r8.com.google.gson.stream.JsonReader):110:110 -> a
    41:41:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):92 -> a
    42:63:java.util.BitSet read(com.android.tools.r8.com.google.gson.stream.JsonReader):107:128 -> a
    42:63:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):92 -> a
    64:77:java.util.BitSet read(com.android.tools.r8.com.google.gson.stream.JsonReader):117:130 -> a
    64:77:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):92 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$20 -> com.android.tools.r8.r.a.b.l.g.g:
    1:1:void <init>():482:482 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):482:482 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.StringBuffer):493:493 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):482 -> a
    3:7:java.lang.StringBuffer read(com.android.tools.r8.com.google.gson.stream.JsonReader):485:489 -> a
    3:7:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):482 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$21 -> com.android.tools.r8.r.a.b.l.g.h:
    1:1:void <init>():500:500 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):500:500 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.net.URL):512:512 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):500 -> a
    3:8:java.net.URL read(com.android.tools.r8.com.google.gson.stream.JsonReader):503:508 -> a
    3:8:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):500 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$22 -> com.android.tools.r8.r.a.b.l.g.i:
    1:1:void <init>():518:518 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):518:518 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.net.URI):534:534 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):518 -> a
    3:11:java.net.URI read(com.android.tools.r8.com.google.gson.stream.JsonReader):521:529 -> a
    3:11:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):518 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$23 -> com.android.tools.r8.r.a.b.l.g.j:
    1:1:void <init>():540:540 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):540:540 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.net.InetAddress):552:552 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):540 -> a
    3:8:java.net.InetAddress read(com.android.tools.r8.com.google.gson.stream.JsonReader):543:548 -> a
    3:8:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):540 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$24 -> com.android.tools.r8.r.a.b.l.g.k:
    1:1:void <init>():559:559 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):559:559 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.UUID):570:570 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):559 -> a
    3:7:java.util.UUID read(com.android.tools.r8.com.google.gson.stream.JsonReader):562:566 -> a
    3:7:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):559 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$25 -> com.android.tools.r8.r.a.b.l.g.l:
    1:1:void <init>():576:576 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):576:576 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.Currency):583:583 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):576 -> a
    3:3:java.util.Currency read(com.android.tools.r8.com.google.gson.stream.JsonReader):579:579 -> a
    3:3:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):576 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$27 -> com.android.tools.r8.r.a.b.l.g.m:
    1:1:void <init>():609:609 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):609:609 -> a
    2:18:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.Calendar):654:670 -> a
    2:18:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):609 -> a
    19:48:java.util.Calendar read(com.android.tools.r8.com.google.gson.stream.JsonReader):619:648 -> a
    19:48:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):609 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$28 -> com.android.tools.r8.r.a.b.l.g.n:
    1:1:void <init>():677:677 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):677:677 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.Locale):708:708 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):677 -> a
    3:26:java.util.Locale read(com.android.tools.r8.com.google.gson.stream.JsonReader):680:703 -> a
    3:26:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):677 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$29 -> com.android.tools.r8.r.a.b.l.g.o:
    1:1:void <init>():714:714 -> <init>
    1:1:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonNull():74:74 -> a
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):753 -> a
    2:2:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonPrimitive():64:64 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):755 -> a
    3:3:com.android.tools.r8.com.google.gson.JsonPrimitive com.android.tools.r8.com.google.gson.JsonElement.getAsJsonPrimitive():120:120 -> a
    3:3:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):756 -> a
    4:9:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):757:762 -> a
    10:10:com.android.tools.r8.com.google.gson.JsonPrimitive com.android.tools.r8.com.google.gson.JsonElement.getAsJsonPrimitive():122:122 -> a
    10:10:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):756 -> a
    11:11:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonArray():46:46 -> a
    11:11:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):765 -> a
    12:16:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):766:770 -> a
    17:17:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonObject():55:55 -> a
    17:17:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):772 -> a
    18:26:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):773:781 -> a
    27:27:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):754:754 -> a
    28:28:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):714:714 -> a
    29:29:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):714:714 -> a
    1:33:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):716:748 -> b
    34:35:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):725:726 -> b
    36:36:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):723:723 -> b
    37:38:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):720:721 -> b
    39:62:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):718:741 -> b
    63:68:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):728:733 -> b
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$3 -> com.android.tools.r8.r.a.b.l.g.q:
    1:1:void <init>():151:151 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):151:151 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Boolean):165:165 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):151 -> a
    3:10:java.lang.Boolean read(com.android.tools.r8.com.google.gson.stream.JsonReader):154:161 -> a
    3:10:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):151 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$5 -> com.android.tools.r8.r.a.b.l.g.r:
    1:1:void <init>():190:190 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):190:190 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Number):206:206 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):190 -> a
    3:11:java.lang.Number read(com.android.tools.r8.com.google.gson.stream.JsonReader):193:201 -> a
    3:11:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):190 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$6 -> com.android.tools.r8.r.a.b.l.g.s:
    1:1:void <init>():213:213 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):213:213 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Number):228:228 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):213 -> a
    3:10:java.lang.Number read(com.android.tools.r8.com.google.gson.stream.JsonReader):216:223 -> a
    3:10:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):213 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$7 -> com.android.tools.r8.r.a.b.l.g.t:
    1:1:void <init>():235:235 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):235:235 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Number):250:250 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):235 -> a
    3:10:java.lang.Number read(com.android.tools.r8.com.google.gson.stream.JsonReader):238:245 -> a
    3:10:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):235 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$8 -> com.android.tools.r8.r.a.b.l.g.u:
    1:1:void <init>():256:256 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):256:256 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.concurrent.atomic.AtomicInteger):265:265 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):256 -> a
    3:5:java.util.concurrent.atomic.AtomicInteger read(com.android.tools.r8.com.google.gson.stream.JsonReader):259:261 -> a
    3:5:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):256 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$9 -> com.android.tools.r8.r.a.b.l.g.v:
    1:1:void <init>():271:271 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):271:271 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.concurrent.atomic.AtomicBoolean):276:276 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):271 -> a
    3:3:java.util.concurrent.atomic.AtomicBoolean read(com.android.tools.r8.com.google.gson.stream.JsonReader):273:273 -> a
    3:3:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):271 -> a
com.android.tools.r8.com.google.gson.stream.JsonReader -> com.android.tools.r8.r.a.b.m.a:
    long peekedLong -> i
    char[] buffer -> c
    int stackSize -> m
    int peekedNumberLength -> j
    java.lang.String peekedString -> k
    int peeked -> h
    int lineNumber -> f
    int lineStart -> g
    java.io.Reader in -> a
    int pos -> d
    int limit -> e
    java.lang.String[] pathNames -> n
    int[] pathIndices -> o
    boolean lenient -> b
    int[] stack -> l
    char[] NON_EXECUTE_PREFIX -> p
    1:1:void <clinit>():192:192 -> <clinit>
    1:1:void <init>(java.io.Reader):289:289 -> <init>
    2:65:void <init>(java.io.Reader):230:293 -> <init>
    66:66:void <init>(java.io.Reader):291:291 -> <init>
    1:10:void beginArray():341:350 -> a
    11:11:boolean isLiteral(char):751:751 -> a
    12:33:boolean fillBuffer(int):1276:1297 -> a
    34:108:int nextNonWhitespace(boolean):1319:1393 -> a
    109:151:int nextNonWhitespace(boolean):1328:1370 -> a
    152:152:int nextNonWhitespace(boolean):1357:1357 -> a
    153:160:boolean skipTo(java.lang.String):1428:1435 -> a
    153:160:int nextNonWhitespace(boolean):1358 -> a
    161:161:boolean skipTo(java.lang.String):1428:1428 -> a
    161:161:int nextNonWhitespace(boolean):1358 -> a
    162:163:int nextNonWhitespace(boolean):1361:1362 -> a
    164:193:int nextNonWhitespace(boolean):1359:1388 -> a
    194:194:java.io.IOException syntaxError(java.lang.String):1559:1559 -> a
    1:1:void setLenient(boolean):326:326 -> b
    2:10:void beginObject():377:385 -> b
    11:27:java.lang.String nextQuotedValue(char):987:1003 -> b
    28:83:char readEscapeCharacter():1495:1550 -> b
    28:83:java.lang.String nextQuotedValue(char):1004 -> b
    84:122:char readEscapeCharacter():1502:1540 -> b
    84:122:java.lang.String nextQuotedValue(char):1004 -> b
    123:125:java.lang.String nextQuotedValue(char):1004:1006 -> b
    126:126:char readEscapeCharacter():1550:1550 -> b
    126:126:java.lang.String nextQuotedValue(char):1004 -> b
    127:135:java.lang.String nextQuotedValue(char):1009:1017 -> b
    136:147:void push(int):1256:1267 -> b
    1:2:void checkLenient():1400:1401 -> c
    1:4:void close():1208:1211 -> close
    1:15:int doPeek():462:476 -> d
    16:77:int doPeek():472:533 -> d
    78:92:void consumeNonExecutePrefix():1567:1581 -> d
    78:92:int doPeek():534 -> d
    93:133:int doPeek():536:576 -> d
    134:173:int peekKeyword():599:638 -> d
    134:173:int doPeek():579 -> d
    174:269:int peekNumber():643:738 -> d
    174:269:int doPeek():584 -> d
    270:275:int doPeek():589:594 -> d
    276:276:int doPeek():590:590 -> d
    277:277:int doPeek():574:574 -> d
    278:297:int doPeek():553:572 -> d
    298:298:int doPeek():564:564 -> d
    299:309:int doPeek():560:570 -> d
    310:310:int doPeek():546:546 -> d
    311:323:int doPeek():479:491 -> d
    324:350:int doPeek():487:513 -> d
    351:353:int doPeek():503:505 -> d
    354:355:int doPeek():499:500 -> d
    356:356:int doPeek():497:497 -> d
    1:10:void endArray():359:368 -> e
    1:11:void endObject():394:404 -> f
    1:3:boolean hasNext():412:414 -> g
    1:1:boolean isLenient():333:333 -> h
    1:3:java.lang.String locationString():1449:1451 -> i
    4:17:java.lang.String getPath():1459:1472 -> i
    4:17:java.lang.String locationString():1451 -> i
    18:36:java.lang.String getPath():1464:1482 -> i
    18:36:java.lang.String locationString():1451 -> i
    37:37:java.lang.String locationString():1451:1451 -> i
    1:14:boolean nextBoolean():840:853 -> j
    1:13:int nextInt():1155:1167 -> k
    14:39:int nextInt():1164:1189 -> k
    40:64:int nextInt():1176:1200 -> k
    65:65:int nextInt():1196:1196 -> k
    1:16:java.lang.String nextName():777:792 -> l
    17:17:java.lang.String nextName():789:789 -> l
    1:9:void nextNull():864:872 -> m
    1:24:java.lang.String nextString():805:828 -> n
    25:25:java.lang.String nextString():825:825 -> n
    1:52:java.lang.String nextUnquotedValue():1032:1083 -> o
    1:35:com.android.tools.r8.com.google.gson.stream.JsonToken peek():423:457 -> p
    36:36:com.android.tools.r8.com.google.gson.stream.JsonToken peek():455:455 -> p
    37:37:com.android.tools.r8.com.google.gson.stream.JsonToken peek():453:453 -> p
    38:48:com.android.tools.r8.com.google.gson.stream.JsonToken peek():440:450 -> p
    49:49:com.android.tools.r8.com.google.gson.stream.JsonToken peek():445:445 -> p
    50:50:com.android.tools.r8.com.google.gson.stream.JsonToken peek():443:443 -> p
    51:51:com.android.tools.r8.com.google.gson.stream.JsonToken peek():436:436 -> p
    52:52:com.android.tools.r8.com.google.gson.stream.JsonToken peek():434:434 -> p
    53:53:com.android.tools.r8.com.google.gson.stream.JsonToken peek():432:432 -> p
    54:54:com.android.tools.r8.com.google.gson.stream.JsonToken peek():430:430 -> p
    1:5:void skipToEndOfLine():1411:1415 -> q
    1:1:java.lang.String toString():1445:1445 -> toString
com.android.tools.r8.com.google.gson.stream.JsonToken -> com.android.tools.r8.r.a.b.m.b:
    com.android.tools.r8.com.google.gson.stream.JsonToken END_ARRAY -> b
    com.android.tools.r8.com.google.gson.stream.JsonToken BEGIN_OBJECT -> c
    com.android.tools.r8.com.google.gson.stream.JsonToken BEGIN_ARRAY -> a
    com.android.tools.r8.com.google.gson.stream.JsonToken STRING -> f
    com.android.tools.r8.com.google.gson.stream.JsonToken NUMBER -> g
    com.android.tools.r8.com.google.gson.stream.JsonToken END_OBJECT -> d
    com.android.tools.r8.com.google.gson.stream.JsonToken NAME -> e
    com.android.tools.r8.com.google.gson.stream.JsonToken END_DOCUMENT -> j
    com.android.tools.r8.com.google.gson.stream.JsonToken BOOLEAN -> h
    com.android.tools.r8.com.google.gson.stream.JsonToken NULL -> i
    com.android.tools.r8.com.google.gson.stream.JsonToken[] $VALUES -> k
    1:54:void <clinit>():31:84 -> <clinit>
    55:55:void <clinit>():25:25 -> <clinit>
    1:1:void <init>(java.lang.String,int):25:25 -> <init>
com.android.tools.r8.com.google.gson.stream.JsonWriter -> com.android.tools.r8.r.a.b.m.c:
    java.lang.String deferredName -> f
    java.lang.String[] HTML_SAFE_REPLACEMENT_CHARS -> i
    int[] stack -> b
    java.lang.String[] REPLACEMENT_CHARS -> h
    boolean lenient -> e
    java.io.Writer out -> a
    boolean serializeNulls -> g
    int stackSize -> c
    java.lang.String separator -> d
    1:17:void <clinit>():145:161 -> <clinit>
    1:1:void <init>(java.io.Writer):197:197 -> <init>
    2:36:void <init>(java.io.Writer):167:201 -> <init>
    1:1:void setLenient(boolean):235:235 -> a
    2:14:com.android.tools.r8.com.google.gson.stream.JsonWriter close(int,int,java.lang.String):337:349 -> a
    15:15:com.android.tools.r8.com.google.gson.stream.JsonWriter close(int,int,java.lang.String):342:342 -> a
    16:21:void push(int):354:359 -> a
    22:28:com.android.tools.r8.com.google.gson.stream.JsonWriter name(java.lang.String):389:395 -> a
    29:29:com.android.tools.r8.com.google.gson.stream.JsonWriter name(java.lang.String):393:393 -> a
    30:30:com.android.tools.r8.com.google.gson.stream.JsonWriter name(java.lang.String):390:390 -> a
    31:31:com.android.tools.r8.com.google.gson.stream.JsonWriter name(java.lang.String):387:387 -> a
    32:36:com.android.tools.r8.com.google.gson.stream.JsonWriter value(java.lang.Boolean):478:482 -> a
    37:39:com.android.tools.r8.com.google.gson.stream.JsonWriter value(long):509:511 -> a
    40:50:com.android.tools.r8.com.google.gson.stream.JsonWriter value(java.lang.Number):524:534 -> a
    51:78:void beforeValue():629:656 -> a
    79:100:void beforeValue():631:652 -> a
    101:101:void beforeValue():646:646 -> a
    102:102:void beforeValue():641:641 -> a
    1:1:com.android.tools.r8.com.google.gson.stream.JsonWriter beginArray():287:287 -> b
    2:4:com.android.tools.r8.com.google.gson.stream.JsonWriter open(int,java.lang.String):325:327 -> b
    2:4:com.android.tools.r8.com.google.gson.stream.JsonWriter beginArray():288 -> b
    5:5:void replaceTop(int):376:376 -> b
    6:8:com.android.tools.r8.com.google.gson.stream.JsonWriter value(boolean):465:467 -> b
    9:37:void string(java.lang.String):565:593 -> b
    1:1:com.android.tools.r8.com.google.gson.stream.JsonWriter beginObject():307:307 -> c
    2:4:com.android.tools.r8.com.google.gson.stream.JsonWriter open(int,java.lang.String):325:327 -> c
    2:4:com.android.tools.r8.com.google.gson.stream.JsonWriter beginObject():308 -> c
    5:9:com.android.tools.r8.com.google.gson.stream.JsonWriter value(java.lang.String):415:419 -> c
    1:7:void close():555:561 -> close
    8:8:void close():559:559 -> close
    1:1:com.android.tools.r8.com.google.gson.stream.JsonWriter endArray():297:297 -> d
    1:1:com.android.tools.r8.com.google.gson.stream.JsonWriter endObject():317:317 -> e
    1:10:com.android.tools.r8.com.google.gson.stream.JsonWriter nullValue():446:455 -> f
    1:4:void flush():543:546 -> flush
    5:5:void flush():544:544 -> flush
    1:4:int peek():366:369 -> g
    5:5:int peek():367:367 -> g
    1:1:void writeDeferredName():400:400 -> h
    2:9:void beforeName():612:619 -> h
    2:9:void writeDeferredName():401 -> h
    10:11:void writeDeferredName():402:403 -> h
    12:12:void beforeName():616:616 -> h
    12:12:void writeDeferredName():401 -> h
com.android.tools.r8.com.google.gson.stream.MalformedJsonException -> com.android.tools.r8.r.a.b.m.d:
    1:1:void <init>(java.lang.String):29:29 -> <init>
com.android.tools.r8.compatdexbuilder.CompatDexBuilder -> com.android.tools.r8.compatdexbuilder.CompatDexBuilder:
    boolean backportStatics -> e
    java.lang.String input -> a
    java.lang.String output -> b
    int numberOfThreads -> c
    boolean noLocals -> d
    1:28:void <init>():36:63 -> <init>
    1:47:void run(java.lang.String[]):71:117 -> a
    48:48:void run(java.lang.String[]):113:113 -> a
    49:49:void run(java.lang.String[]):110:110 -> a
    50:50:void run(java.lang.String[]):99:99 -> a
    51:97:void run(java.lang.String[]):96:142 -> a
    98:98:void addEntry(java.lang.String,java.io.InputStream,java.util.zip.ZipOutputStream):190:190 -> a
    98:98:void run(java.lang.String[]):142 -> a
    99:99:void run(java.lang.String[]):143:143 -> a
    100:116:void run(java.lang.String[]):141:157 -> a
    117:117:byte[] com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer.getBytes():55:55 -> a
    117:117:void run(java.lang.String[]):157 -> a
    118:122:void run(java.lang.String[]):157:161 -> a
    123:146:void run(java.lang.String[]):136:159 -> a
    147:176:void run(java.lang.String[]):132:161 -> a
    177:177:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):160:160 -> a
    178:193:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer dexEntry(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):167:182 -> a
    178:193:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer lambda$run$0(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):152 -> a
    194:199:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer dexEntry(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):179:184 -> a
    194:199:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer lambda$run$0(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):152 -> a
    200:205:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer dexEntry(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):178:183 -> a
    200:205:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer lambda$run$0(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):152 -> a
    206:215:void addEntry(java.lang.String,byte[],java.util.zip.ZipOutputStream):194:203 -> a
    1:1:void main(java.lang.String[]):67:67 -> main
com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer -> com.android.tools.r8.compatdexbuilder.CompatDexBuilder$a:
    byte[] bytes -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():38:38 -> <clinit>
    1:1:void <init>():43:43 -> <init>
    1:3:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):49:51 -> accept
com.android.tools.r8.compatdx.CompatDx -> com.android.tools.r8.compatdx.CompatDx:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():55:55 -> <clinit>
    1:3:void run(java.lang.String[]):328:330 -> a
    4:5:void printHelpOn(java.io.PrintStream):598:599 -> a
    4:5:void run(java.lang.String[]):330 -> a
    6:131:void run(java.lang.String[]):333:458 -> a
    132:140:com.android.tools.r8.ProgramConsumer createConsumer(java.util.List,java.nio.file.Path,boolean,boolean):479:487 -> a
    132:140:void run(java.lang.String[]):459 -> a
    141:153:void run(java.lang.String[]):459:471 -> a
    154:154:void run(java.lang.String[]):450:450 -> a
    155:155:void run(java.lang.String[]):416:416 -> a
    156:156:void run(java.lang.String[]):412:412 -> a
    157:157:void run(java.lang.String[]):396:396 -> a
    158:158:void run(java.lang.String[]):367:367 -> a
    159:159:void run(java.lang.String[]):363:363 -> a
    160:164:com.android.tools.r8.DexIndexedConsumer createDexConsumer(java.nio.file.Path,java.util.List,boolean):494:498 -> a
    165:172:com.android.tools.r8.DexIndexedConsumer createDexConsumer(java.nio.file.Path,java.util.List,boolean):495:502 -> a
    173:176:void processPath(java.io.File,java.util.List):603:606 -> a
    177:179:void processDirectory(java.io.File,java.util.List):621:623 -> a
    177:179:void processPath(java.io.File,java.util.List):607 -> a
    180:181:void processPath(java.io.File,java.util.List):610:611 -> a
    182:183:boolean com.android.tools.r8.utils.FileUtils.isApkFile(java.nio.file.Path):68:69 -> a
    182:183:void processPath(java.io.File,java.util.List):615 -> a
    184:184:void processPath(java.io.File,java.util.List):616:616 -> a
    185:185:void processPath(java.io.File,java.util.List):612:612 -> a
    186:186:void processPath(java.io.File,java.util.List):604:604 -> a
    187:187:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    187:187:void processPath(java.io.File,java.util.List):604 -> a
    188:188:void processPath(java.io.File,java.util.List):604:604 -> a
    1:7:void main(java.lang.String[]):316:322 -> main
    8:9:void main(java.lang.String[]):318:319 -> main
    10:10:void com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$DxUsageMessage.printHelpOn(java.io.PrintStream):116:116 -> main
    10:10:void main(java.lang.String[]):319 -> main
    11:11:void main(java.lang.String[]):320:320 -> main
com.android.tools.r8.compatdx.CompatDx$DexKeepClassesConsumer -> com.android.tools.r8.compatdx.CompatDx$a:
    java.util.List inputs -> e
    1:2:void <init>(java.nio.file.Path,java.util.List):562:563 -> <init>
    1:11:void writeZipWithClasses(com.android.tools.r8.DiagnosticsHandler):578:588 -> a
    12:18:void writeZipWithClasses(com.android.tools.r8.DiagnosticsHandler):585:591 -> a
    19:30:void writeZipWithClasses(com.android.tools.r8.DiagnosticsHandler):580:591 -> a
    31:31:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):591:591 -> a
    1:5:void finished(com.android.tools.r8.DiagnosticsHandler):569:573 -> finished
com.android.tools.r8.compatdx.CompatDx$DxCompatOptions -> com.android.tools.r8.compatdx.CompatDx$b:
    java.lang.String noOptimizeList -> j
    boolean noStrict -> k
    boolean forceJumbo -> u
    java.lang.String dumpTo -> n
    boolean dump -> q
    com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo positions -> e
    int minApiLevel -> y
    boolean noLocals -> f
    boolean statistics -> h
    boolean version -> b
    int numThreads -> s
    boolean $assertionsDisabled -> C
    boolean verbose -> d
    java.lang.String optimizeList -> i
    boolean verboseDump -> p
    java.lang.String output -> m
    boolean keepClasses -> l
    java.lang.String dumpMethod -> o
    boolean multiDex -> v
    boolean minimalMainDex -> x
    int maxIndexNumber -> B
    boolean noFiles -> r
    com.android.tools.r8.com.google.common.collect.ImmutableList inputs -> A
    boolean incremental -> t
    java.lang.String mainDexList -> w
    boolean backportStatics -> z
    boolean noOptimize -> g
    boolean help -> a
    boolean debug -> c
    1:1:void <clinit>():62:62 -> <clinit>
    1:21:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):243:263 -> <init>
    22:22:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):260:260 -> <init>
    23:23:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):257:257 -> <init>
    24:24:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):254:254 -> <init>
    25:74:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):251:300 -> <init>
    1:2:com.android.tools.r8.compatdx.CompatDx$DxCompatOptions parse(java.lang.String[]):304:305 -> a
    3:4:int lastIntOf(java.util.List):309:310 -> a
com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$DxUsageMessage -> com.android.tools.r8.compatdx.CompatDx$b$a:
    java.lang.String message -> a
    1:2:void <init>(java.lang.String):111:112 -> <init>
com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo -> com.android.tools.r8.compatdx.CompatDx$b$b:
    com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo THROWING -> d
    com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo LINES -> c
    com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo IMPORTANT -> b
    com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo NONE -> a
    1:1:void <clinit>():104:104 -> <clinit>
    1:1:void <init>(java.lang.String,int):103:103 -> <init>
com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec -> com.android.tools.r8.compatdx.CompatDx$b$c:
    com.android.tools.r8.joptsimple.OptionSpec output -> l
    com.android.tools.r8.joptsimple.OptionSpec dumpWidth -> n
    com.android.tools.r8.joptsimple.OptionSpec dump -> p
    com.android.tools.r8.joptsimple.OptionSpec noFiles -> r
    com.android.tools.r8.joptsimple.OptionSpec numThreads -> t
    com.android.tools.r8.joptsimple.OptionSpec forceJumbo -> v
    com.android.tools.r8.joptsimple.OptionSpec multiDex -> x
    com.android.tools.r8.joptsimple.OptionSpec minimalMainDex -> z
    com.android.tools.r8.joptsimple.OptionSpec debug -> b
    com.android.tools.r8.joptsimple.OptionSpec minApiLevel -> A
    com.android.tools.r8.joptsimple.OptionSpec positions -> d
    com.android.tools.r8.joptsimple.OptionSpec inputList -> C
    com.android.tools.r8.joptsimple.OptionSpec noOptimize -> f
    com.android.tools.r8.joptsimple.OptionSpec version -> E
    com.android.tools.r8.joptsimple.OptionSpec optimizeList -> h
    com.android.tools.r8.joptsimple.OptionSpec maxIndexNumber -> G
    com.android.tools.r8.joptsimple.OptionSpec noStrict -> j
    com.android.tools.r8.joptsimple.OptionSpec keepClasses -> k
    com.android.tools.r8.joptsimple.OptionSpec dumpTo -> m
    com.android.tools.r8.joptsimple.OptionSpec dumpMethod -> o
    com.android.tools.r8.joptsimple.OptionSpec verboseDump -> q
    com.android.tools.r8.joptsimple.OptionSpec coreLibrary -> s
    com.android.tools.r8.joptsimple.OptionSpec incremental -> u
    com.android.tools.r8.joptsimple.OptionSpec noWarning -> w
    com.android.tools.r8.joptsimple.OptionSpec mainDexList -> y
    com.android.tools.r8.joptsimple.OptionSpec backportStatics -> B
    com.android.tools.r8.joptsimple.OptionSpec inputs -> D
    com.android.tools.r8.joptsimple.OptionSpec verbose -> c
    com.android.tools.r8.joptsimple.OptionSpec help -> F
    com.android.tools.r8.joptsimple.OptionSpec noLocals -> e
    com.android.tools.r8.joptsimple.OptionParser parser -> a
    com.android.tools.r8.joptsimple.OptionSpec statistics -> g
    com.android.tools.r8.joptsimple.OptionSpec noOptimizeList -> i
    1:82:void <init>():158:239 -> <init>
com.android.tools.r8.compatdx.CompatDx$NamedDexFileConsumer -> com.android.tools.r8.compatdx.CompatDx$c:
    java.nio.file.Path output -> c
    1:2:void <init>(java.nio.file.Path):539:540 -> <init>
    1:6:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):546:551 -> accept
    7:10:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):549:552 -> accept
com.android.tools.r8.compatdx.CompatDx$SingleDexFileConsumer -> com.android.tools.r8.compatdx.CompatDx$d:
    byte[] bytes -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():505:505 -> <clinit>
    1:1:void <init>(com.android.tools.r8.DexIndexedConsumer):510:510 -> <init>
    2:2:void <init>(com.android.tools.r8.DexIndexedConsumer):507:507 -> <init>
    1:3:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):521:523 -> accept
    4:4:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):517:517 -> accept
    5:5:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> accept
    5:5:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):517 -> accept
    6:6:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):517:517 -> accept
    1:4:void finished(com.android.tools.r8.DiagnosticsHandler):528:531 -> finished
com.android.tools.r8.compatproguard.CompatProguard -> com.android.tools.r8.compatproguard.CompatProguard:
    1:21:void run(java.lang.String[]):190:210 -> a
    22:22:void run(java.lang.String[]):192:192 -> a
    23:23:void printVersion():176:176 -> a
    23:23:void printHelp():180 -> a
    23:23:void run(java.lang.String[]):193 -> a
    24:27:void printHelp():181:184 -> a
    24:27:void run(java.lang.String[]):193 -> a
    28:38:void com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions.print():161:171 -> a
    28:38:void printHelp():185 -> a
    28:38:void run(java.lang.String[]):193 -> a
    1:5:void main(java.lang.String[]):215:219 -> main
com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions -> com.android.tools.r8.compatproguard.CompatProguard$a:
    java.lang.String mainDexList -> g
    boolean printHelpAndExit -> i
    boolean disableVerticalClassMerging -> j
    boolean includeDataResources -> e
    boolean multiDex -> f
    java.lang.String output -> a
    java.util.List proguardConfig -> h
    int minApi -> c
    com.android.tools.r8.CompilationMode mode -> b
    boolean forceProguardCompatibility -> d
    1:11:void <init>(java.util.List,java.lang.String,com.android.tools.r8.CompilationMode,int,boolean,boolean,boolean,java.lang.String,boolean,boolean):58:68 -> <init>
    1:13:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):87:99 -> a
    14:14:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):97:97 -> a
    15:15:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    15:15:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):97 -> a
    16:23:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):97:104 -> a
    24:24:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):102:102 -> a
    25:25:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    25:25:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):102 -> a
    26:58:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):102:134 -> a
    59:59:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):128:128 -> a
    60:60:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    60:60:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):128 -> a
    61:81:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):128:148 -> a
com.android.tools.r8.dex.ApplicationReader -> com.android.tools.r8.dex.a:
    com.android.tools.r8.graph.DexItemFactory itemFactory -> b
    com.android.tools.r8.utils.Timing timing -> c
    com.android.tools.r8.utils.InternalOptions options -> a
    boolean $assertionsDisabled -> e
    com.android.tools.r8.utils.AndroidApp inputApp -> d
    1:1:void <clinit>():60:60 -> <clinit>
    1:5:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):71:75 -> <init>
    1:1:com.android.tools.r8.utils.InternalOptions access$000(com.android.tools.r8.dex.ApplicationReader):60:60 -> a
    2:2:com.android.tools.r8.graph.DexApplication read():79:79 -> a
    3:7:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource):83:87 -> a
    8:9:com.android.tools.r8.graph.DexApplication read(java.util.concurrent.ExecutorService):93:94 -> a
    10:10:com.android.tools.r8.graph.DexApplication read(java.util.concurrent.ExecutorService):93:93 -> a
    11:14:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService):99:102 -> a
    15:15:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService):99:99 -> a
    16:16:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):110:110 -> a
    17:26:boolean verifyMainDexOptionsCompatible(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):176:185 -> a
    17:26:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):110 -> a
    27:38:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):113:124 -> a
    39:39:void dumpInputToFile(com.android.tools.r8.utils.AndroidApp,java.nio.file.Path,com.android.tools.r8.utils.InternalOptions):171:171 -> a
    39:39:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):124 -> a
    40:47:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):126:133 -> a
    48:48:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):131:131 -> a
    49:51:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
    49:51:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):131 -> a
    52:83:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):136:167 -> a
    84:84:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):163:163 -> a
    85:87:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
    85:87:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):163 -> a
    88:92:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):161:165 -> a
    93:94:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):190:191 -> a
    93:94:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
    95:105:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):79:89 -> a
    95:105:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):193 -> a
    95:105:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
    106:106:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):87:87 -> a
    106:106:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):193 -> a
    106:106:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
    107:107:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):85:85 -> a
    107:107:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):193 -> a
    107:107:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
    108:108:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):83:83 -> a
    108:108:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):193 -> a
    108:108:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
    109:109:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):81:81 -> a
    109:109:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):193 -> a
    109:109:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
    110:113:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):193:196 -> a
    110:113:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
    114:114:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    114:114:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):196 -> a
    114:114:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
    115:115:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    115:115:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    115:115:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):196 -> a
    115:115:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
    116:116:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):196:196 -> a
    116:116:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
    117:117:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):190:190 -> a
    117:117:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):60 -> a
    118:119:void readProguardMap(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,java.util.List):211:212 -> a
    120:120:void readProguardMap(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,java.util.List):211:211 -> a
    121:124:void lambda$readProguardMap$0(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder):215:218 -> a
    125:125:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    125:125:void lambda$readProguardMap$0(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder):218 -> a
    126:126:void lambda$readProguardMap$0(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder):218:218 -> a
    127:128:void readMainDexList(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,java.util.List):225:226 -> a
    129:137:void lambda$readMainDexList$2(com.android.tools.r8.graph.DexApplication$Builder):227:235 -> a
    138:138:void lambda$readMainDexList$2(com.android.tools.r8.graph.DexApplication$Builder):231:231 -> a
    139:139:com.android.tools.r8.graph.DexType lambda$readMainDexList$1(java.lang.String):234:234 -> a
    1:1:com.android.tools.r8.utils.AndroidApp access$200(com.android.tools.r8.dex.ApplicationReader):60:60 -> b
com.android.tools.r8.dex.ApplicationReader$ClassReader -> com.android.tools.r8.dex.a$a:
    java.util.List futures -> b
    com.android.tools.r8.graph.JarApplicationReader application -> f
    java.util.Queue programClasses -> c
    java.util.Queue libraryClasses -> e
    java.util.Queue classpathClasses -> d
    com.android.tools.r8.dex.ApplicationReader this$0 -> g
    boolean $assertionsDisabled -> h
    java.util.concurrent.ExecutorService executorService -> a
    1:1:void <clinit>():240:240 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.ApplicationReader,java.util.concurrent.ExecutorService,java.util.List):252:252 -> <init>
    2:10:void <init>(com.android.tools.r8.dex.ApplicationReader,java.util.concurrent.ExecutorService,java.util.List):246:254 -> <init>
    1:2:void lambda$readDexSources$0(com.android.tools.r8.dex.DexParser,com.android.tools.r8.graph.ClassKind,java.util.Queue):279:280 -> a
    3:3:void lambda$readDexSources$0(com.android.tools.r8.dex.DexParser,com.android.tools.r8.graph.ClassKind,java.util.Queue):279:279 -> a
    4:9:com.android.tools.r8.graph.JarClassFileReader readClassSources(java.util.List,com.android.tools.r8.graph.ClassKind,java.util.Queue):289:294 -> a
    10:10:com.android.tools.r8.graph.JarClassFileReader readClassSources(java.util.List,com.android.tools.r8.graph.ClassKind,java.util.Queue):293:293 -> a
    11:13:java.lang.Object lambda$readClassSources$1(com.android.tools.r8.ProgramResource,com.android.tools.r8.graph.JarClassFileReader,com.android.tools.r8.graph.ClassKind):296:298 -> a
    14:16:java.lang.Object lambda$readClassSources$1(com.android.tools.r8.ProgramResource,com.android.tools.r8.graph.JarClassFileReader,com.android.tools.r8.graph.ClassKind):296:298 -> a
    17:29:com.android.tools.r8.graph.JarClassFileReader readSources():309:321 -> a
    30:47:com.android.tools.r8.utils.ClassProvider buildClassProvider(com.android.tools.r8.graph.ClassKind,java.util.Queue,java.util.List,com.android.tools.r8.graph.JarApplicationReader):327:344 -> a
    48:54:void initializeLazyClassCollection(com.android.tools.r8.graph.LazyLoadedDexApplication$Builder):349:355 -> a
    55:63:void initializeLazyClassCollection(com.android.tools.r8.graph.LazyLoadedDexApplication$Builder):354:362 -> a
    64:67:void initializeLazyClassCollection(com.android.tools.r8.graph.LazyLoadedDexApplication$Builder):361:364 -> a
    1:19:void readDexSources(java.util.List,com.android.tools.r8.graph.ClassKind,java.util.Queue):260:278 -> b
com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver -> com.android.tools.r8.dex.a$b:
    com.android.tools.r8.graph.DexProgramClass resolveClassConflict(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass) -> a
com.android.tools.r8.dex.ApplicationWriter -> com.android.tools.r8.dex.b:
    com.android.tools.r8.graph.DexApplication application -> a
    com.android.tools.r8.graph.AppView appView -> b
    com.android.tools.r8.DexIndexedConsumer programConsumer -> i
    boolean $assertionsDisabled -> k
    com.android.tools.r8.graph.GraphLense graphLense -> c
    com.android.tools.r8.dex.CodeToKeep desugaredLibraryCodeToKeep -> f
    com.android.tools.r8.utils.InternalOptions options -> e
    com.android.tools.r8.naming.NamingLens namingLens -> d
    java.util.List markerStrings -> h
    java.util.List markers -> g
    com.android.tools.r8.naming.ProguardMapSupplier proguardMapSupplier -> j
    1:1:void <clinit>():67:67 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,java.util.List,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.naming.ProguardMapSupplier):146:146 -> <init>
    2:13:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,java.util.List,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.naming.ProguardMapSupplier,com.android.tools.r8.DexIndexedConsumer):165:176 -> <init>
    1:1:java.lang.Iterable distribute(java.util.concurrent.ExecutorService):183:183 -> a
    2:2:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingDexFilePerClassFile():341:341 -> a
    2:2:java.lang.Iterable distribute(java.util.concurrent.ExecutorService):183 -> a
    3:3:java.lang.Iterable distribute(java.util.concurrent.ExecutorService):184:184 -> a
    4:4:com.android.tools.r8.DexFilePerClassFileConsumer com.android.tools.r8.utils.InternalOptions.getDexFilePerClassFileConsumer():353:353 -> a
    4:4:java.lang.Iterable distribute(java.util.concurrent.ExecutorService):185 -> a
    5:15:java.lang.Iterable distribute(java.util.concurrent.ExecutorService):185:195 -> a
    16:17:void encodeChecksums(java.lang.Iterable):206:207 -> a
    18:18:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap.<init>(int):110:110 -> a
    18:18:void encodeChecksums(java.lang.Iterable):207 -> a
    19:19:void encodeChecksums(java.lang.Iterable):208:208 -> a
    20:20:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> a
    20:20:void encodeChecksums(java.lang.Iterable):209 -> a
    21:29:void encodeChecksums(java.lang.Iterable):209:217 -> a
    30:30:void lambda$write$0(com.android.tools.r8.dex.ApplicationWriter$SortAnnotations,com.android.tools.r8.graph.DexProgramClass):255:255 -> a
    31:35:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):266:270 -> a
    36:36:com.android.tools.r8.DexFilePerClassFileConsumer com.android.tools.r8.utils.InternalOptions.getDexFilePerClassFileConsumer():353:353 -> a
    36:36:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):270 -> a
    37:44:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):273:280 -> a
    45:45:com.android.tools.r8.DexIndexedConsumer com.android.tools.r8.utils.InternalOptions.getDexIndexedConsumer():349:349 -> a
    45:45:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):280 -> a
    46:49:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):284:287 -> a
    50:50:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):286:286 -> a
    51:63:com.android.tools.r8.dex.FileWriter$ByteBufferResult writeDexFile(com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.dex.MethodToCodeObjectMapping,com.android.tools.r8.ByteBufferProvider):586:598 -> a
    51:63:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):289 -> a
    64:72:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):290:298 -> a
    73:83:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):295:305 -> a
    84:93:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):302:311 -> a
    94:97:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String):343:346 -> a
    98:104:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String):344:350 -> a
    105:107:boolean validateProguardMapParses(java.lang.String):453:455 -> a
    105:107:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String):350 -> a
    108:115:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String):350:357 -> a
    116:163:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String):356:403 -> a
    164:164:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String):402:402 -> a
    165:165:void lambda$supplyAdditionalConsumers$2(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.DataResourceConsumer,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexType,java.util.List):379:379 -> a
    166:175:void lambda$supplyAdditionalConsumers$2(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.DataResourceConsumer,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexType,java.util.List):378:387 -> a
    176:184:void lambda$supplyAdditionalConsumers$2(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.DataResourceConsumer,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexType,java.util.List):382:390 -> a
    185:185:void lambda$supplyAdditionalConsumers$2(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.DataResourceConsumer,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexType,java.util.List):381:381 -> a
    186:186:void lambda$supplyAdditionalConsumers$2(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.DataResourceConsumer,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexType,java.util.List):380:380 -> a
    187:220:void adaptAndPassDataResources(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.DataResourceConsumer,java.util.Collection,com.android.tools.r8.dex.ResourceAdapter):413:446 -> a
    221:234:void insertAttributeAnnotations():463:476 -> a
    235:235:void insertAttributeAnnotations():475:475 -> a
    236:244:void insertAttributeAnnotations():474:482 -> a
    245:245:void insertAttributeAnnotations():481:481 -> a
    246:262:void insertAttributeAnnotations():480:496 -> a
    263:269:void insertAttributeAnnotations():495:501 -> a
    270:279:com.android.tools.r8.graph.DexAnnotation com.android.tools.r8.graph.DexAnnotation.createInnerClassAnnotation(com.android.tools.r8.graph.DexString,int,com.android.tools.r8.graph.DexItemFactory):142:151 -> a
    270:279:void insertAttributeAnnotations():499 -> a
    280:288:void insertAttributeAnnotations():498:506 -> a
    289:289:void insertAttributeAnnotations():505:505 -> a
    290:301:void insertAttributeAnnotations():504:515 -> a
    302:312:void insertAttributeAnnotations():514:524 -> a
    313:313:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.concat(java.lang.Object[],java.lang.Object[],java.lang.Class):72:72 -> a
    313:313:void insertAttributeAnnotations():522 -> a
    314:314:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.newArray(java.lang.Class,int):49:49 -> a
    314:314:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.concat(java.lang.Object[],java.lang.Object[],java.lang.Class):72 -> a
    314:314:void insertAttributeAnnotations():522 -> a
    315:316:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.concat(java.lang.Object[],java.lang.Object[],java.lang.Class):73:74 -> a
    315:316:void insertAttributeAnnotations():522 -> a
    317:326:void insertAttributeAnnotations():522:531 -> a
    327:329:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):547:549 -> a
    330:330:com.android.tools.r8.dex.MethodToCodeObjectMapping com.android.tools.r8.dex.MethodToCodeObjectMapping.fromMethodBacking():21:21 -> a
    330:330:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):550 -> a
    331:332:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):553:554 -> a
    333:333:com.android.tools.r8.dex.MethodToCodeObjectMapping com.android.tools.r8.dex.MethodToCodeObjectMapping.fromMethodBacking():21:21 -> a
    333:333:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):555 -> a
    334:337:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):560:563 -> a
    338:338:com.android.tools.r8.dex.MethodToCodeObjectMapping com.android.tools.r8.dex.MethodToCodeObjectMapping.fromMapBacking(java.util.Map):25:25 -> a
    338:338:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):579 -> a
    339:349:void lambda$rewriteCodeWithJumboStrings$3(com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.graph.DexApplication,java.util.Map,boolean,com.android.tools.r8.graph.DexEncodedMethod):565:575 -> a
    350:351:java.lang.String mapMainDexListName(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.NamingLens):602:603 -> a
    350:351:void lambda$writeMainDexList$4(java.lang.StringBuilder,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexType):611 -> a
    352:352:void lambda$writeMainDexList$4(java.lang.StringBuilder,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexType):611:611 -> a
    353:358:java.lang.String writeMainDexList(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):607:612 -> a
    1:31:void write(java.util.concurrent.ExecutorService):222:252 -> b
    32:44:void write(java.util.concurrent.ExecutorService):250:262 -> b
    45:102:void write(java.util.concurrent.ExecutorService):261:318 -> b
    103:103:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> b
    103:103:void write(java.util.concurrent.ExecutorService):318 -> b
    104:116:void write(java.util.concurrent.ExecutorService):318:330 -> b
    117:125:void write(java.util.concurrent.ExecutorService):324:332 -> b
com.android.tools.r8.dex.ApplicationWriter$1 -> com.android.tools.r8.dex.b$a:
    com.android.tools.r8.dex.ResourceAdapter val$resourceAdapter -> a
    com.android.tools.r8.DataResourceConsumer val$dataResourceConsumer -> b
    java.util.Set val$generatedResourceNames -> d
    com.android.tools.r8.utils.InternalOptions val$options -> c
    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,com.android.tools.r8.DataResourceConsumer,com.android.tools.r8.utils.InternalOptions,java.util.Set):418:418 -> <init>
    1:4:void visit(com.android.tools.r8.DataDirectoryResource):421:424 -> visit
    5:5:void visit(com.android.tools.r8.DataEntryResource):430:430 -> visit
    6:6:boolean com.android.tools.r8.dex.ResourceAdapter.isService(com.android.tools.r8.DataEntryResource):97:97 -> visit
    6:6:void visit(com.android.tools.r8.DataEntryResource):430 -> visit
    7:12:void visit(com.android.tools.r8.DataEntryResource):435:440 -> visit
    13:16:void visit(com.android.tools.r8.DataEntryResource):439:442 -> visit
    17:17:boolean com.android.tools.r8.dex.ResourceAdapter.isService(com.android.tools.r8.DataEntryResource):97:97 -> visit
    17:17:void visit(com.android.tools.r8.DataEntryResource):430 -> visit
com.android.tools.r8.dex.ApplicationWriter$SortAnnotations -> com.android.tools.r8.dex.b$b:
    1:1:void <init>():81:81 -> <init>
    2:2:void <init>(com.android.tools.r8.dex.ApplicationWriter$1):81:81 -> <init>
    boolean add(com.android.tools.r8.graph.DexCode) -> a
    boolean add(com.android.tools.r8.graph.DexDebugInfo) -> a
    boolean add(com.android.tools.r8.graph.DexProgramClass) -> a
    boolean add(com.android.tools.r8.graph.DexTypeList) -> a
    boolean add(com.android.tools.r8.graph.ParameterAnnotationsList) -> a
    boolean setAnnotationsDirectoryForClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotationDirectory) -> a
    1:1:boolean add(com.android.tools.r8.graph.DexAnnotationSet):86:86 -> a
    2:2:boolean add(com.android.tools.r8.graph.DexAnnotation):93:93 -> a
    3:4:boolean add(com.android.tools.r8.graph.DexEncodedArray):100:101 -> a
com.android.tools.r8.dex.BinaryReader -> com.android.tools.r8.dex.c:
    com.android.tools.r8.origin.Origin origin -> a
    com.android.tools.r8.dex.CompatByteBuffer buffer -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():17:17 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ProgramResource):22:22 -> <init>
    2:5:void <init>(com.android.tools.r8.origin.Origin,byte[]):25:28 -> <init>
    1:2:int getUint(int):72:73 -> a
    3:3:byte get():97:97 -> a
    1:1:com.android.tools.r8.origin.Origin getOrigin():32:32 -> b
    2:2:void position(int):86:86 -> b
    1:2:int getUbyte():101:102 -> c
    1:2:int getUint():56:57 -> d
    1:1:int getUleb128():44:44 -> e
    1:1:int getUleb128p1():52 -> e
    1:2:int getUshort():62:63 -> f
com.android.tools.r8.dex.ClassesChecksum -> com.android.tools.r8.dex.d:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap dictionary -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void <init>():23:23 -> <init>
    2:8:void <init>():21:27 -> <init>
    1:2:void append(com.android.tools.r8.com.google.gson.JsonObject):31:32 -> a
    3:3:void lambda$append$0(java.util.Map$Entry):34:34 -> a
    4:4:void addChecksum(java.lang.String,long):38:38 -> a
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap getChecksums():42:42 -> a
    6:6:void lambda$toJsonString$1(com.android.tools.r8.com.google.gson.JsonObject,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap$Entry):52:52 -> a
    7:27:boolean definitelyPrecedesChecksumMarker(com.android.tools.r8.graph.DexString):83:103 -> a
    1:7:java.lang.String toJsonString():47:53 -> b
    8:14:void tryParseAndAppend(com.android.tools.r8.graph.DexString):58:64 -> b
    15:15:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonObject():55:55 -> b
    15:15:void tryParseAndAppend(com.android.tools.r8.graph.DexString):65 -> b
    16:16:void tryParseAndAppend(com.android.tools.r8.graph.DexString):66:66 -> b
com.android.tools.r8.dex.CodeToKeep -> com.android.tools.r8.dex.i:
    1:1:void <init>():20:20 -> <init>
    void generateKeepRules(com.android.tools.r8.utils.InternalOptions) -> a
    boolean isNop() -> a
    void recordClass(com.android.tools.r8.graph.DexType) -> a
    void recordField(com.android.tools.r8.graph.DexField) -> a
    void recordMethod(com.android.tools.r8.graph.DexMethod) -> a
    1:2:com.android.tools.r8.dex.CodeToKeep createCodeToKeep(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.NamingLens):23:24 -> a
    3:3:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    3:3:com.android.tools.r8.dex.CodeToKeep createCodeToKeep(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.NamingLens):25 -> a
    4:6:com.android.tools.r8.dex.CodeToKeep createCodeToKeep(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.NamingLens):26:28 -> a
    void recordClassAllAccesses(com.android.tools.r8.graph.DexType) -> b
com.android.tools.r8.dex.CodeToKeep$1 -> com.android.tools.r8.dex.e:
com.android.tools.r8.dex.CodeToKeep$DesugaredLibraryCodeToKeep -> com.android.tools.r8.dex.g:
    java.util.Map toKeep -> c
    com.android.tools.r8.naming.NamingLens namingLens -> a
    com.android.tools.r8.utils.InternalOptions options -> d
    java.util.Set emulatedInterfaces -> b
    1:1:void <init>(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):56:56 -> <init>
    2:8:void <init>(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):52:58 -> <init>
    9:12:void <init>(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):57:60 -> <init>
    boolean isNop() -> a
    1:10:void recordMethod(com.android.tools.r8.graph.DexMethod):69:78 -> a
    11:16:void recordField(com.android.tools.r8.graph.DexField):85:90 -> a
    17:18:void recordClass(com.android.tools.r8.graph.DexType):96:97 -> a
    19:58:void generateKeepRules(com.android.tools.r8.utils.InternalOptions):128:167 -> a
    1:3:void recordClassAllAccesses(com.android.tools.r8.graph.DexType):103:105 -> b
    1:3:java.lang.String convertType(com.android.tools.r8.graph.DexType):120:122 -> c
    1:1:void keepClass(com.android.tools.r8.graph.DexType):110:110 -> d
    2:9:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexType.lookupBaseType(com.android.tools.r8.graph.DexItemFactory):344:351 -> d
    2:9:void keepClass(com.android.tools.r8.graph.DexType):110 -> d
    10:14:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexType.lookupBaseType(com.android.tools.r8.graph.DexItemFactory):349:353 -> d
    10:14:void keepClass(com.android.tools.r8.graph.DexType):110 -> d
    15:15:void keepClass(com.android.tools.r8.graph.DexType):111:111 -> d
    1:1:boolean shouldKeep(com.android.tools.r8.graph.DexType):64:64 -> e
com.android.tools.r8.dex.CodeToKeep$DesugaredLibraryCodeToKeep$KeepStruct -> com.android.tools.r8.dex.f:
    java.util.Set fields -> a
    java.util.Set methods -> b
    boolean all -> c
    1:4:void <init>():45:48 -> <init>
    5:5:void <init>(com.android.tools.r8.dex.CodeToKeep$1):45:45 -> <init>
com.android.tools.r8.dex.CodeToKeep$NopCodeToKeep -> com.android.tools.r8.dex.h:
    1:1:void <init>():171:171 -> <init>
    boolean isNop() -> a
    void recordClass(com.android.tools.r8.graph.DexType) -> a
    void recordField(com.android.tools.r8.graph.DexField) -> a
    void recordMethod(com.android.tools.r8.graph.DexMethod) -> a
    1:1:void generateKeepRules(com.android.tools.r8.utils.InternalOptions):192:192 -> a
    void recordClassAllAccesses(com.android.tools.r8.graph.DexType) -> b
com.android.tools.r8.dex.CompatByteBuffer -> com.android.tools.r8.dex.j:
    java.nio.ByteBuffer buffer -> a
    1:2:void <init>(java.nio.ByteBuffer):21:22 -> <init>
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> a
    1:1:byte[] array():57 -> a
    2:2:byte[] array():57:57 -> a
    3:3:java.nio.ByteBuffer asByteBuffer():34:34 -> a
    3:3:byte get(int):101 -> a
    4:4:byte get(int):101:101 -> a
    5:5:java.nio.ByteBuffer asByteBuffer():34:34 -> a
    5:5:void get(byte[]):105 -> a
    6:6:void get(byte[]):105:105 -> a
    7:7:java.nio.ByteBuffer asByteBuffer():34:34 -> a
    7:7:void order(java.nio.ByteOrder):93 -> a
    8:8:void order(java.nio.ByteOrder):93:93 -> a
    9:9:java.nio.ByteBuffer asByteBuffer():34:34 -> a
    9:9:void put(byte):121 -> a
    10:10:void put(byte):121:121 -> a
    11:11:java.nio.ByteBuffer asByteBuffer():34:34 -> a
    11:11:void putShort(short):125 -> a
    12:12:void putShort(short):125:125 -> a
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> b
    1:1:int arrayOffset():61 -> b
    2:2:int arrayOffset():61:61 -> b
    3:3:java.nio.ByteBuffer asByteBuffer():34:34 -> b
    3:3:int getInt(int):113 -> b
    4:4:int getInt(int):113:113 -> b
    5:5:java.nio.ByteBuffer asByteBuffer():34:34 -> b
    5:5:void put(byte[]):133 -> b
    6:6:void put(byte[]):133:133 -> b
    1:1:com.android.tools.r8.dex.CompatByteBuffer wrap(byte[]):26:26 -> c
    2:2:java.nio.Buffer asBuffer():30:30 -> c
    2:2:void position(int):43 -> c
    3:3:void position(int):43:43 -> c
    4:4:java.nio.ByteBuffer asByteBuffer():34:34 -> c
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> d
    1:1:java.nio.ShortBuffer asShortBuffer():89 -> d
    2:2:java.nio.ShortBuffer asShortBuffer():89:89 -> d
    3:3:java.nio.ByteBuffer asByteBuffer():34:34 -> d
    3:3:void putInt(int):129 -> d
    4:4:void putInt(int):129:129 -> d
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> e
    1:1:int capacity():65 -> e
    2:2:int capacity():65:65 -> e
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> f
    1:1:byte get():97 -> f
    2:2:byte get():97:97 -> f
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> g
    1:1:int getInt():109 -> g
    2:2:int getInt():109:109 -> g
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> h
    1:1:short getShort():117 -> h
    2:2:short getShort():117:117 -> h
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> i
    1:1:boolean hasArray():69 -> i
    2:2:boolean hasArray():69:69 -> i
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> j
    1:1:boolean hasRemaining():73 -> j
    2:2:boolean hasRemaining():73:73 -> j
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> k
    1:1:int position():77 -> k
    2:2:int position():77:77 -> k
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> l
    1:1:int remaining():81 -> l
    2:2:int remaining():81:81 -> l
    1:1:java.nio.Buffer asBuffer():30:30 -> m
    1:1:void rewind():48 -> m
    2:2:void rewind():48:48 -> m
com.android.tools.r8.dex.Constants -> com.android.tools.r8.dex.k:
    byte[] VDEX_FILE_MAGIC_PREFIX -> b
    byte[] DEX_FILE_MAGIC_PREFIX -> a
    1:4:void <clinit>():8:11 -> <clinit>
com.android.tools.r8.dex.DebugBytecodeWriter -> com.android.tools.r8.dex.l:
    com.android.tools.r8.graph.ObjectToOffsetMapping mapping -> a
    com.android.tools.r8.graph.DexDebugInfo info -> b
    java.nio.ByteBuffer buffer -> c
    1:6:void <init>(com.android.tools.r8.graph.DexDebugInfo,com.android.tools.r8.graph.ObjectToOffsetMapping):21:26 -> <init>
    1:12:byte[] generate():31:42 -> a
    13:16:void maybeGrow(int):46:49 -> a
    17:17:void putNoIndex():75:75 -> a
    17:17:void putString(com.android.tools.r8.graph.DexString):89 -> a
    18:18:void putString(com.android.tools.r8.graph.DexString):91:91 -> a
    19:19:void putUleb128p1(int):71:71 -> a
    19:19:void putString(com.android.tools.r8.graph.DexString):92 -> a
    20:20:void putNoIndex():75:75 -> a
    20:20:void putType(com.android.tools.r8.graph.DexType):80 -> a
    21:21:void putType(com.android.tools.r8.graph.DexType):82:82 -> a
    22:22:void putUleb128p1(int):71:71 -> a
    22:22:void putType(com.android.tools.r8.graph.DexType):83 -> a
    1:2:void putByte(int):54:55 -> b
    1:3:void putSleb128(int):59:61 -> c
    1:3:void putUleb128(int):65:67 -> d
com.android.tools.r8.dex.DexOutputBuffer -> com.android.tools.r8.dex.m:
    com.android.tools.r8.dex.CompatByteBuffer byteBuffer -> b
    com.android.tools.r8.ByteBufferProvider byteBufferProvider -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():23:23 -> <clinit>
    1:1:void <init>():31:31 -> <init>
    2:4:void <init>(com.android.tools.r8.ByteBufferProvider):34:36 -> <init>
    1:21:void putInstructions(com.android.tools.r8.code.Instruction[],com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.dex.CodeToKeep):98:118 -> a
    22:23:void putByte(byte):122:123 -> a
    24:25:void putBytes(byte[]):127:128 -> a
    26:27:void putShort(short):132:133 -> a
    28:32:int align(int):148:152 -> a
    33:33:byte[] asArray():179:179 -> a
    1:20:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):51:70 -> b
    21:23:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):65:67 -> b
    24:24:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
    24:24:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):67 -> b
    25:25:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):67:67 -> b
    26:31:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):57:62 -> b
    32:32:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
    32:32:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):62 -> b
    33:33:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):62:62 -> b
    34:34:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):53:53 -> b
    35:35:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
    35:35:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):53 -> b
    36:36:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):53:53 -> b
    37:37:int position():157:157 -> b
    1:6:void ensureSpaceFor(int):40:45 -> c
    7:8:void freeByteBuffer(com.android.tools.r8.dex.CompatByteBuffer):75:76 -> c
    7:8:void ensureSpaceFor(int):45 -> c
    9:9:void ensureSpaceFor(int):46:46 -> c
    10:11:com.android.tools.r8.dex.CompatByteBuffer stealByteBuffer():183:184 -> c
    1:2:void forward(int):161:162 -> d
    1:1:boolean isAligned(int):175:175 -> e
    1:2:void moveTo(int):170:171 -> f
    1:2:void putInt(int):137:138 -> g
com.android.tools.r8.dex.DexOutputBuffer$1 -> com.android.tools.r8.dex.m$a:
    1:1:void <init>():31:31 -> <init>
com.android.tools.r8.dex.DexParser -> com.android.tools.r8.dex.n:
    com.android.tools.r8.graph.OffsetToObjectMapping indexedItems -> h
    com.android.tools.r8.graph.ClassKind classKind -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap checksums -> g
    com.android.tools.r8.origin.Origin origin -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap offsetMap -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap codes -> i
    com.android.tools.r8.dex.DexReader dexReader -> b
    com.android.tools.r8.dex.DexSection[] dexSections -> c
    int[] stringIDs -> d
    boolean $assertionsDisabled -> l
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> k
    com.android.tools.r8.utils.InternalOptions options -> f
    1:1:void <clinit>():83:83 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.DexReader,com.android.tools.r8.graph.ClassKind,com.android.tools.r8.utils.InternalOptions):128:128 -> <init>
    2:22:void <init>(com.android.tools.r8.dex.DexReader,com.android.tools.r8.graph.ClassKind,com.android.tools.r8.utils.InternalOptions):117:137 -> <init>
    1:1:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.nio.file.Path):95:95 -> a
    2:2:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.io.InputStream,com.android.tools.r8.origin.Origin):99:99 -> a
    2:2:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.nio.file.Path):95 -> a
    3:4:com.android.tools.r8.dex.DexSection[] parseMapFrom(com.android.tools.r8.dex.DexReader):103:104 -> a
    3:4:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.io.InputStream,com.android.tools.r8.origin.Origin):99 -> a
    3:4:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.nio.file.Path):95 -> a
    5:8:void checkName(com.android.tools.r8.graph.DexString):281:284 -> a
    9:9:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    9:9:void checkName(com.android.tools.r8.graph.DexString):284 -> a
    10:10:void checkName(com.android.tools.r8.graph.DexString):284:284 -> a
    11:20:java.lang.Object cacheAt(int,java.util.function.Supplier):412:421 -> a
    21:22:com.android.tools.r8.graph.DexAnnotation parseAnnotation():426:427 -> a
    23:23:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
    23:23:com.android.tools.r8.graph.DexAnnotation parseAnnotation():427 -> a
    24:24:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
    24:24:com.android.tools.r8.graph.DexAnnotation parseAnnotation():427 -> a
    25:25:com.android.tools.r8.graph.DexAnnotation parseAnnotation():429:429 -> a
    26:26:byte com.android.tools.r8.dex.BinaryReader.get():97:97 -> a
    26:26:com.android.tools.r8.graph.DexAnnotation parseAnnotation():429 -> a
    27:27:com.android.tools.r8.graph.DexAnnotation parseAnnotation():430:430 -> a
    28:28:com.android.tools.r8.graph.DexAnnotation annotationAt(int):434:434 -> a
    29:34:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):604:609 -> a
    35:35:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    35:35:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):609 -> a
    36:37:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):610:611 -> a
    38:38:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    38:38:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):611 -> a
    39:47:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):611:619 -> a
    48:48:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    48:48:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):611 -> a
    49:49:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    49:49:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):609 -> a
    50:57:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):630:637 -> a
    58:58:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    58:58:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):637 -> a
    59:59:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):638:638 -> a
    60:60:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    60:60:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):638 -> a
    61:62:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):638:639 -> a
    63:63:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    63:63:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):639 -> a
    64:78:void ensureCodesInited(int):145:159 -> a
    64:78:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    79:79:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
    79:79:void ensureCodesInited(int):159 -> a
    79:79:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    80:81:void ensureCodesInited(int):160:161 -> a
    80:81:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    82:85:void com.android.tools.r8.dex.BinaryReader.align(int):90:93 -> a
    82:85:void ensureCodesInited(int):161 -> a
    82:85:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    86:98:com.android.tools.r8.graph.DexCode parseCodeItem():837:849 -> a
    86:98:void ensureCodesInited(int):162 -> a
    86:98:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    99:99:short com.android.tools.r8.dex.BinaryReader.getShort():68:68 -> a
    99:99:com.android.tools.r8.graph.DexCode parseCodeItem():849 -> a
    99:99:void ensureCodesInited(int):162 -> a
    99:99:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    100:115:com.android.tools.r8.graph.DexCode parseCodeItem():849:864 -> a
    100:115:void ensureCodesInited(int):162 -> a
    100:115:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    116:116:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
    116:116:com.android.tools.r8.graph.DexCode parseCodeItem():864 -> a
    116:116:void ensureCodesInited(int):162 -> a
    116:116:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    117:117:com.android.tools.r8.graph.DexCode parseCodeItem():866:866 -> a
    117:117:void ensureCodesInited(int):162 -> a
    117:117:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    118:118:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    118:118:com.android.tools.r8.graph.DexCode parseCodeItem():866 -> a
    118:118:void ensureCodesInited(int):162 -> a
    118:118:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    119:123:com.android.tools.r8.graph.DexCode parseCodeItem():867:871 -> a
    119:123:void ensureCodesInited(int):162 -> a
    119:123:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    124:124:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
    124:124:com.android.tools.r8.graph.DexCode parseCodeItem():871 -> a
    124:124:void ensureCodesInited(int):162 -> a
    124:124:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    125:127:com.android.tools.r8.graph.DexCode parseCodeItem():872:874 -> a
    125:127:void ensureCodesInited(int):162 -> a
    125:127:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    128:128:int com.android.tools.r8.dex.BinaryReader.getSleb128():48:48 -> a
    128:128:com.android.tools.r8.graph.DexCode parseCodeItem():874 -> a
    128:128:void ensureCodesInited(int):162 -> a
    128:128:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    129:133:com.android.tools.r8.graph.DexCode parseCodeItem():875:879 -> a
    129:133:void ensureCodesInited(int):162 -> a
    129:133:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    134:134:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    134:134:com.android.tools.r8.graph.DexCode parseCodeItem():879 -> a
    134:134:void ensureCodesInited(int):162 -> a
    134:134:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    135:135:com.android.tools.r8.graph.DexCode parseCodeItem():880:880 -> a
    135:135:void ensureCodesInited(int):162 -> a
    135:135:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    136:136:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    136:136:com.android.tools.r8.graph.DexCode parseCodeItem():880 -> a
    136:136:void ensureCodesInited(int):162 -> a
    136:136:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    137:137:com.android.tools.r8.graph.DexCode parseCodeItem():881:881 -> a
    137:137:void ensureCodesInited(int):162 -> a
    137:137:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    138:138:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    138:138:com.android.tools.r8.graph.DexCode parseCodeItem():880 -> a
    138:138:void ensureCodesInited(int):162 -> a
    138:138:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    139:139:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    139:139:com.android.tools.r8.graph.DexCode parseCodeItem():879 -> a
    139:139:void ensureCodesInited(int):162 -> a
    139:139:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    140:140:com.android.tools.r8.graph.DexCode parseCodeItem():885:885 -> a
    140:140:void ensureCodesInited(int):162 -> a
    140:140:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    141:141:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    141:141:com.android.tools.r8.graph.DexCode parseCodeItem():885 -> a
    141:141:void ensureCodesInited(int):162 -> a
    141:141:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    142:142:com.android.tools.r8.graph.DexCode parseCodeItem():887:887 -> a
    142:142:void ensureCodesInited(int):162 -> a
    142:142:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    143:143:int com.android.tools.r8.dex.BinaryReader.getSleb128():48:48 -> a
    143:143:com.android.tools.r8.graph.DexCode parseCodeItem():874 -> a
    143:143:void ensureCodesInited(int):162 -> a
    143:143:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    144:144:com.android.tools.r8.graph.DexCode parseCodeItem():890:890 -> a
    144:144:void ensureCodesInited(int):162 -> a
    144:144:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    145:145:void com.android.tools.r8.graph.DexCode$Try.setHandlerIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap):464:464 -> a
    145:145:com.android.tools.r8.graph.DexCode parseCodeItem():891 -> a
    145:145:void ensureCodesInited(int):162 -> a
    145:145:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    146:146:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    146:146:com.android.tools.r8.graph.DexCode parseCodeItem():866 -> a
    146:146:void ensureCodesInited(int):162 -> a
    146:146:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    147:147:com.android.tools.r8.graph.DexCode parseCodeItem():896:896 -> a
    147:147:void ensureCodesInited(int):162 -> a
    147:147:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    148:148:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
    148:148:com.android.tools.r8.graph.DexCode parseCodeItem():896 -> a
    148:148:void ensureCodesInited(int):162 -> a
    148:148:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    149:154:com.android.tools.r8.graph.DexCode parseCodeItem():897:902 -> a
    149:154:void ensureCodesInited(int):162 -> a
    149:154:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    155:156:void ensureCodesInited(int):163:164 -> a
    155:156:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    157:157:void com.android.tools.r8.dex.BinaryReader.align(int):90:90 -> a
    157:157:void ensureCodesInited(int):161 -> a
    157:157:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):642 -> a
    158:172:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):643:657 -> a
    173:173:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    173:173:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):657 -> a
    174:177:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):658:661 -> a
    178:178:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    178:178:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):639 -> a
    179:179:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    179:179:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):638 -> a
    180:180:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    180:180:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean,boolean):637 -> a
    181:200:void addClassDefsTo(java.util.function.Consumer):667:686 -> a
    201:201:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> a
    201:201:void addClassDefsTo(java.util.function.Consumer):686 -> a
    202:202:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
    202:202:void addClassDefsTo(java.util.function.Consumer):686 -> a
    203:205:void addClassDefsTo(java.util.function.Consumer):688:690 -> a
    206:206:int com.android.tools.r8.dex.BinaryReader.getInt():78:78 -> a
    206:206:void addClassDefsTo(java.util.function.Consumer):690 -> a
    207:209:void addClassDefsTo(java.util.function.Consumer):690:692 -> a
    210:210:int com.android.tools.r8.dex.BinaryReader.getInt():78:78 -> a
    210:210:void addClassDefsTo(java.util.function.Consumer):692 -> a
    211:248:void addClassDefsTo(java.util.function.Consumer):692:729 -> a
    249:249:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    249:249:void addClassDefsTo(java.util.function.Consumer):729 -> a
    250:250:void addClassDefsTo(java.util.function.Consumer):730:730 -> a
    251:251:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    251:251:void addClassDefsTo(java.util.function.Consumer):730 -> a
    252:252:void addClassDefsTo(java.util.function.Consumer):731:731 -> a
    253:253:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    253:253:void addClassDefsTo(java.util.function.Consumer):731 -> a
    254:254:void addClassDefsTo(java.util.function.Consumer):732:732 -> a
    255:255:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    255:255:void addClassDefsTo(java.util.function.Consumer):732 -> a
    256:257:void addClassDefsTo(java.util.function.Consumer):734:735 -> a
    258:268:void addClassDefsTo(java.util.function.Consumer):734:744 -> a
    269:283:void addClassDefsTo(java.util.function.Consumer):738:752 -> a
    284:284:void addClassDefsTo(java.util.function.Consumer):746:746 -> a
    285:285:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    285:285:void addClassDefsTo(java.util.function.Consumer):732 -> a
    286:286:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    286:286:void addClassDefsTo(java.util.function.Consumer):731 -> a
    287:287:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    287:287:void addClassDefsTo(java.util.function.Consumer):730 -> a
    288:288:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> a
    288:288:void addClassDefsTo(java.util.function.Consumer):729 -> a
    289:314:void addClassDefsTo(java.util.function.Consumer):755:780 -> a
    315:334:void addClassDefsTo(java.util.function.Consumer):763:782 -> a
    335:335:void addClassDefsTo(java.util.function.Consumer):708:708 -> a
    336:336:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    336:336:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    336:336:void addClassDefsTo(java.util.function.Consumer):708 -> a
    337:337:void addClassDefsTo(java.util.function.Consumer):708:708 -> a
    338:338:long lambda$addClassDefsTo$0(java.lang.Long,com.android.tools.r8.graph.DexProgramClass):760:760 -> a
    1:2:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():438:439 -> b
    3:3:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> b
    3:3:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():439 -> b
    4:4:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> b
    4:4:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():439 -> b
    5:13:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():441:449 -> b
    14:15:boolean retainAnnotation(com.android.tools.r8.graph.DexAnnotation):468:469 -> b
    14:15:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():450 -> b
    16:29:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():451:464 -> b
    30:31:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():461:462 -> b
    32:32:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
    32:32:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():462 -> b
    33:33:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():462:462 -> b
    34:34:com.android.tools.r8.graph.DexAnnotationSet annotationSetAt(int):473:473 -> b
    35:37:java.lang.Object cacheAt(int,java.util.function.Supplier,java.util.function.Supplier):403:405 -> b
    35:37:com.android.tools.r8.graph.DexAnnotationSet annotationSetAt(int):473 -> b
    38:38:com.android.tools.r8.graph.DexAnnotationSet annotationSetAt(int):473:473 -> b
    1:1:com.android.tools.r8.graph.ParameterAnnotationsList annotationSetRefListAt(int):362:362 -> c
    2:11:com.android.tools.r8.graph.ParameterAnnotationsList parseAnnotationSetRefList():366:375 -> c
    12:12:void com.android.tools.r8.graph.ParameterAnnotationsList.<init>(com.android.tools.r8.graph.DexAnnotationSet[]):56:56 -> c
    12:12:com.android.tools.r8.graph.ParameterAnnotationsList parseAnnotationSetRefList():375 -> c
    1:1:com.android.tools.r8.dex.DexParser$AnnotationsDirectory annotationsDirectoryAt(int):477:477 -> d
    2:4:java.lang.Object cacheAt(int,java.util.function.Supplier,java.util.function.Supplier):403:405 -> d
    2:4:com.android.tools.r8.dex.DexParser$AnnotationsDirectory annotationsDirectoryAt(int):477 -> d
    5:5:com.android.tools.r8.dex.DexParser$AnnotationsDirectory annotationsDirectoryAt(int):477:477 -> d
    6:9:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():482:485 -> d
    10:16:com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[] parseFieldAnnotations(int):323:329 -> d
    10:16:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():486 -> d
    17:17:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> d
    17:17:com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[] parseFieldAnnotations(int):329 -> d
    17:17:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():486 -> d
    18:24:com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[] parseFieldAnnotations(int):330:336 -> d
    18:24:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():486 -> d
    25:31:com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[] parseMethodAnnotations(int):344:350 -> d
    25:31:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():487 -> d
    32:32:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> d
    32:32:com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[] parseMethodAnnotations(int):350 -> d
    32:32:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():487 -> d
    33:39:com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[] parseMethodAnnotations(int):351:357 -> d
    33:39:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():487 -> d
    40:46:com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[] parseParameterAnnotations(int):382:388 -> d
    40:46:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():488 -> d
    47:47:int com.android.tools.r8.dex.BinaryReader.position():82:82 -> d
    47:47:com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[] parseParameterAnnotations(int):388 -> d
    47:47:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():488 -> d
    48:56:com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[] parseParameterAnnotations(int):389:397 -> d
    48:56:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():488 -> d
    57:58:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():489:490 -> d
    1:1:com.android.tools.r8.graph.DexDebugInfo debugInfoAt(int):497:497 -> e
    2:2:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():501:501 -> e
    3:3:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> e
    3:3:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():501 -> e
    4:4:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():502:502 -> e
    5:5:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> e
    5:5:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():502 -> e
    6:68:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():503:565 -> e
    69:71:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():559:561 -> e
    72:72:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():555:555 -> e
    73:73:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():551:551 -> e
    74:74:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():547:547 -> e
    75:75:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> e
    75:75:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():547 -> e
    76:76:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():547:547 -> e
    77:77:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> e
    77:77:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():547 -> e
    78:78:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():543:543 -> e
    79:79:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> e
    79:79:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():543 -> e
    80:80:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():543:543 -> e
    81:81:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> e
    81:81:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():543 -> e
    82:82:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():531:531 -> e
    83:83:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> e
    83:83:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():531 -> e
    84:91:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():532:539 -> e
    92:92:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():535:535 -> e
    93:93:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> e
    93:93:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():531 -> e
    94:94:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():520:520 -> e
    95:95:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> e
    95:95:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():520 -> e
    96:101:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():521:526 -> e
    102:102:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():523:523 -> e
    103:103:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> e
    103:103:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():520 -> e
    104:104:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():517:517 -> e
    105:105:int com.android.tools.r8.dex.BinaryReader.getSleb128():48:48 -> e
    105:105:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():517 -> e
    106:106:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():517:517 -> e
    107:107:int com.android.tools.r8.dex.BinaryReader.getSleb128():48:48 -> e
    107:107:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():517 -> e
    108:108:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():514:514 -> e
    109:109:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> e
    109:109:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():514 -> e
    110:110:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():514:514 -> e
    111:111:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> e
    111:111:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():514 -> e
    112:113:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():565:566 -> e
    114:173:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():511:570 -> e
    174:174:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> e
    174:174:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():502 -> e
    175:175:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> e
    175:175:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():501 -> e
    1:1:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():290:290 -> f
    2:2:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    2:2:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():290 -> f
    3:3:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():291:291 -> f
    4:4:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    4:4:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():291 -> f
    5:7:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():292:294 -> f
    8:8:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    8:8:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():294 -> f
    9:10:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():295:296 -> f
    11:11:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    11:11:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():294 -> f
    12:12:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():298:298 -> f
    13:13:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    13:13:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():291 -> f
    14:14:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> f
    14:14:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():290 -> f
    15:15:com.android.tools.r8.graph.DexEncodedArray encodedArrayAt(int):316:316 -> f
    1:1:com.android.tools.r8.graph.DexEncodedArray parseEncodedArray():312:312 -> g
    2:8:com.android.tools.r8.dex.DexSection lookupSection(int):799:805 -> g
    1:3:com.android.tools.r8.graph.DexTypeList typeListAt(int):178:180 -> h
    4:4:com.android.tools.r8.graph.DexValue[] parseEncodedArrayValues():302:302 -> h
    5:5:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> h
    5:5:com.android.tools.r8.graph.DexValue[] parseEncodedArrayValues():302 -> h
    6:8:com.android.tools.r8.graph.DexValue[] parseEncodedArrayValues():303:305 -> h
    9:9:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> h
    9:9:com.android.tools.r8.graph.DexValue[] parseEncodedArrayValues():302 -> h
    1:1:com.android.tools.r8.graph.DexValue parseEncodedValue():184:184 -> i
    2:2:byte com.android.tools.r8.dex.BinaryReader.get():97:97 -> i
    2:2:com.android.tools.r8.graph.DexValue parseEncodedValue():184 -> i
    3:3:com.android.tools.r8.graph.DexValue parseEncodedValue():276:276 -> i
    4:4:com.android.tools.r8.graph.DexValue parseEncodedValue():263:263 -> i
    5:6:com.android.tools.r8.graph.DexValue parseEncodedValue():258:259 -> i
    7:8:com.android.tools.r8.graph.DexValue parseEncodedValue():254:255 -> i
    9:10:com.android.tools.r8.graph.DexValue parseEncodedValue():250:251 -> i
    11:12:com.android.tools.r8.graph.DexValue parseEncodedValue():246:247 -> i
    13:15:com.android.tools.r8.graph.DexValue parseEncodedValue():240:242 -> i
    16:18:com.android.tools.r8.graph.DexValue parseEncodedValue():234:236 -> i
    19:20:com.android.tools.r8.graph.DexValue parseEncodedValue():229:230 -> i
    21:71:com.android.tools.r8.graph.DexValue parseEncodedValue():223:273 -> i
    72:73:com.android.tools.r8.graph.DexValue parseEncodedValue():267:268 -> i
    74:74:com.android.tools.r8.graph.DexValue parseEncodedValue():219:219 -> i
    75:75:com.android.tools.r8.graph.DexValue parseEncodedValue():215:215 -> i
    76:77:com.android.tools.r8.graph.DexValue parseEncodedValue():205:206 -> i
    78:79:com.android.tools.r8.graph.DexValue parseEncodedValue():200:201 -> i
    80:96:com.android.tools.r8.graph.DexValue parseEncodedValue():195:211 -> i
    97:99:com.android.tools.r8.graph.DexValue parseEncodedValue():189:191 -> i
    1:17:com.android.tools.r8.dex.DexSection[] parseMap():810:826 -> j
    18:23:com.android.tools.r8.dex.DexSection[] parseMap():825:830 -> j
    24:24:void com.android.tools.r8.dex.DexSection.setEnd(int):0:0 -> j
    24:24:com.android.tools.r8.dex.DexSection[] parseMap():830 -> j
    25:25:com.android.tools.r8.dex.DexSection[] parseMap():832:832 -> j
    26:26:int com.android.tools.r8.dex.BinaryReader.end():107:107 -> j
    26:26:com.android.tools.r8.dex.DexSection[] parseMap():832 -> j
    27:27:void com.android.tools.r8.dex.DexSection.setEnd(int):0:0 -> j
    27:27:com.android.tools.r8.dex.DexSection[] parseMap():832 -> j
    1:8:void parseStringIDs():787:794 -> k
    1:5:com.android.tools.r8.graph.DexTypeList parseTypeList():169:173 -> l
    1:3:void populateStrings():918:920 -> m
    1:3:void populateIndexTables():907 -> m
    4:6:com.android.tools.r8.graph.DexString stringAt(int):1144:1146 -> m
    4:6:void populateStrings():920 -> m
    4:6:void populateIndexTables():907 -> m
    7:7:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> m
    7:7:com.android.tools.r8.graph.DexString stringAt(int):1146 -> m
    7:7:void populateStrings():920 -> m
    7:7:void populateIndexTables():907 -> m
    8:11:com.android.tools.r8.graph.DexString stringAt(int):1147:1150 -> m
    8:11:void populateStrings():920 -> m
    8:11:void populateIndexTables():907 -> m
    12:12:byte com.android.tools.r8.dex.BinaryReader.get():97:97 -> m
    12:12:com.android.tools.r8.graph.DexString stringAt(int):1150 -> m
    12:12:void populateStrings():920 -> m
    12:12:void populateIndexTables():907 -> m
    13:15:com.android.tools.r8.graph.DexString stringAt(int):1151:1153 -> m
    13:15:void populateStrings():920 -> m
    13:15:void populateIndexTables():907 -> m
    16:16:void populateStrings():920:920 -> m
    16:16:void populateIndexTables():907 -> m
    17:17:int com.android.tools.r8.dex.BinaryReader.getUleb128():44:44 -> m
    17:17:com.android.tools.r8.graph.DexString stringAt(int):1146 -> m
    17:17:void populateStrings():920 -> m
    17:17:void populateIndexTables():907 -> m
    18:26:void populateChecksums():950:958 -> m
    18:26:void populateIndexTables():908 -> m
    27:28:void populateTypes():941:942 -> m
    27:28:void populateIndexTables():909 -> m
    29:48:boolean verifyOrderOfTypeIds(com.android.tools.r8.dex.DexSection):967:986 -> m
    29:48:void populateTypes():942 -> m
    29:48:void populateIndexTables():909 -> m
    49:49:boolean verifyOrderOfTypeIds(com.android.tools.r8.dex.DexSection):981:981 -> m
    49:49:void populateTypes():942 -> m
    49:49:void populateIndexTables():909 -> m
    50:52:void populateTypes():943:945 -> m
    50:52:void populateIndexTables():909 -> m
    53:59:com.android.tools.r8.graph.DexType typeAt(int):1157:1163 -> m
    53:59:void populateTypes():945 -> m
    53:59:void populateIndexTables():909 -> m
    60:60:void populateTypes():945:945 -> m
    60:60:void populateIndexTables():909 -> m
    61:62:void populateFields():995:996 -> m
    61:62:void populateIndexTables():910 -> m
    63:98:boolean verifyOrderOfFieldIds(com.android.tools.r8.dex.DexSection):1011:1046 -> m
    63:98:void populateFields():996 -> m
    63:98:void populateIndexTables():910 -> m
    99:109:boolean verifyOrderOfFieldIds(com.android.tools.r8.dex.DexSection):1043:1053 -> m
    99:109:void populateFields():996 -> m
    99:109:void populateIndexTables():910 -> m
    110:114:boolean verifyOrderOfFieldIds(com.android.tools.r8.dex.DexSection):1050:1054 -> m
    110:114:void populateFields():996 -> m
    110:114:void populateIndexTables():910 -> m
    115:115:boolean verifyOrderOfFieldIds(com.android.tools.r8.dex.DexSection):1039:1039 -> m
    115:115:void populateFields():996 -> m
    115:115:void populateIndexTables():910 -> m
    116:118:void populateFields():997:999 -> m
    116:118:void populateIndexTables():910 -> m
    119:131:com.android.tools.r8.graph.DexField fieldAt(int):1167:1179 -> m
    119:131:void populateFields():999 -> m
    119:131:void populateIndexTables():910 -> m
    132:132:void populateFields():999:999 -> m
    132:132:void populateIndexTables():910 -> m
    133:136:void populateProtos():1065:1068 -> m
    133:136:void populateIndexTables():911 -> m
    137:149:com.android.tools.r8.graph.DexProto protoAt(int):1240:1252 -> m
    137:149:void populateProtos():1068 -> m
    137:149:void populateIndexTables():911 -> m
    150:150:void populateProtos():1068:1068 -> m
    150:150:void populateIndexTables():911 -> m
    151:152:void populateMethods():1073:1074 -> m
    151:152:void populateIndexTables():912 -> m
    153:188:boolean verifyOrderOfMethodIds(com.android.tools.r8.dex.DexSection):1090:1125 -> m
    153:188:void populateMethods():1074 -> m
    153:188:void populateIndexTables():912 -> m
    189:199:boolean verifyOrderOfMethodIds(com.android.tools.r8.dex.DexSection):1122:1132 -> m
    189:199:void populateMethods():1074 -> m
    189:199:void populateIndexTables():912 -> m
    200:204:boolean verifyOrderOfMethodIds(com.android.tools.r8.dex.DexSection):1129:1133 -> m
    200:204:void populateMethods():1074 -> m
    200:204:void populateIndexTables():912 -> m
    205:205:boolean verifyOrderOfMethodIds(com.android.tools.r8.dex.DexSection):1118:1118 -> m
    205:205:void populateMethods():1074 -> m
    205:205:void populateIndexTables():912 -> m
    206:208:void populateMethods():1075:1077 -> m
    206:208:void populateIndexTables():912 -> m
    209:221:com.android.tools.r8.graph.DexMethod methodAt(int):1256:1268 -> m
    209:221:void populateMethods():1077 -> m
    209:221:void populateIndexTables():912 -> m
    222:222:com.android.tools.r8.graph.DexMethod methodAt(int):1265:1265 -> m
    222:222:void populateMethods():1077 -> m
    222:222:void populateIndexTables():912 -> m
    223:223:void populateMethods():1077:1077 -> m
    223:223:void populateIndexTables():912 -> m
    224:227:void populateMethodHandles():925:928 -> m
    224:227:void populateIndexTables():913 -> m
    228:255:com.android.tools.r8.graph.DexMethodHandle methodHandleAt(int):1183:1210 -> m
    228:255:void populateMethodHandles():928 -> m
    228:255:void populateIndexTables():913 -> m
    256:256:com.android.tools.r8.graph.DexMethodHandle methodHandleAt(int):1206:1206 -> m
    256:256:void populateMethodHandles():928 -> m
    256:256:void populateIndexTables():913 -> m
    257:273:com.android.tools.r8.graph.DexMethodHandle methodHandleAt(int):1198:1214 -> m
    257:273:void populateMethodHandles():928 -> m
    257:273:void populateIndexTables():913 -> m
    274:274:void populateMethodHandles():928:928 -> m
    274:274:void populateIndexTables():913 -> m
    275:278:void populateCallSites():933:936 -> m
    275:278:void populateIndexTables():914 -> m
    279:296:com.android.tools.r8.graph.DexCallSite callSiteAt(int):1219:1236 -> m
    279:296:void populateCallSites():936 -> m
    279:296:void populateIndexTables():914 -> m
    297:297:com.android.tools.r8.graph.DexCallSite callSiteAt(int):1231:1231 -> m
    297:297:void populateCallSites():936 -> m
    297:297:void populateIndexTables():914 -> m
    298:298:void populateCallSites():936:936 -> m
    298:298:void populateIndexTables():914 -> m
com.android.tools.r8.dex.DexParser$1 -> com.android.tools.r8.dex.n$a:
com.android.tools.r8.dex.DexParser$AnnotationsDirectory -> com.android.tools.r8.dex.n$b:
    com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[] NO_METHOD_ANNOTATIONS -> g
    com.android.tools.r8.dex.DexParser$AnnotationsDirectory THE_EMPTY_ANNOTATIONS_DIRECTORY -> h
    com.android.tools.r8.graph.DexAnnotationSet clazz -> a
    com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[] fields -> b
    com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[] NO_PARAMETER_ANNOTATIONS -> e
    com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[] NO_FIELD_ANNOTATIONS -> f
    com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[] methods -> c
    com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[] parameters -> d
    1:11:void <clinit>():1273:1283 -> <clinit>
    1:5:void <init>(com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[]):1295:1299 -> <init>
    1:1:com.android.tools.r8.dex.DexParser$AnnotationsDirectory empty():1303:1303 -> a
com.android.tools.r8.dex.DexParser$AttributesAndAnnotations -> com.android.tools.r8.dex.n$c:
    com.android.tools.r8.graph.EnclosingMethodAttribute enclosingMethodAttribute -> b
    java.util.List lazyAnnotations -> d
    com.android.tools.r8.graph.DexAnnotationSet originalAnnotations -> a
    java.util.List innerClasses -> c
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():1307:1307 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1333:1333 -> <init>
    2:47:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1310:1355 -> <init>
    48:93:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1354:1399 -> <init>
    94:109:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1394:1409 -> <init>
    1:7:com.android.tools.r8.graph.DexAnnotationSet getAnnotations():1315:1321 -> a
    8:10:void ensureAnnotations(int):1415:1417 -> a
    11:12:void copyAnnotation(com.android.tools.r8.graph.DexAnnotation):1422:1423 -> a
    1:1:com.android.tools.r8.graph.EnclosingMethodAttribute getEnclosingMethodAttribute():1329:1329 -> b
    1:1:java.util.List getInnerClasses():1325:1325 -> c
com.android.tools.r8.dex.DexParser$MemberAnnotationIterator -> com.android.tools.r8.dex.n$d:
    java.util.function.Supplier emptyValue -> c
    com.android.tools.r8.graph.DexMemberAnnotation[] annotations -> b
    int index -> a
    1:1:void <init>(com.android.tools.r8.graph.DexMemberAnnotation[],java.util.function.Supplier,com.android.tools.r8.dex.DexParser$1):573:573 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexMemberAnnotation[],java.util.function.Supplier):580:580 -> <init>
    3:10:void <init>(com.android.tools.r8.graph.DexMemberAnnotation[],java.util.function.Supplier):575:582 -> <init>
    1:7:com.android.tools.r8.graph.DexItem getNextFor(com.android.tools.r8.graph.Descriptor):592:598 -> a
    8:8:com.android.tools.r8.graph.DexItem getNextFor(com.android.tools.r8.graph.Descriptor):596:596 -> a
com.android.tools.r8.dex.DexReader -> com.android.tools.r8.dex.o:
    com.android.tools.r8.utils.DexVersion version -> d
    1:2:void <init>(com.android.tools.r8.ProgramResource):26:27 -> <init>
    3:4:void <init>(com.android.tools.r8.origin.Origin,byte[]):36:37 -> <init>
    1:9:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):43:51 -> a
    10:10:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    10:10:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):51 -> a
    11:31:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):51:71 -> a
    32:32:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):69:69 -> a
    33:33:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    33:33:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):69 -> a
    34:34:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):69:69 -> a
    35:35:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):61:61 -> a
    36:36:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    36:36:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):61 -> a
    37:37:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):61:61 -> a
    38:38:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):46:46 -> a
    39:39:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    39:39:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):46 -> a
    40:40:com.android.tools.r8.utils.DexVersion parseMagic(com.android.tools.r8.dex.CompatByteBuffer):46:46 -> a
    1:1:com.android.tools.r8.utils.DexVersion getDexVersion():89:89 -> g
    1:7:void setByteOrder():77:83 -> h
    8:8:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> h
    8:8:void setByteOrder():83 -> h
    9:9:void setByteOrder():83:83 -> h
com.android.tools.r8.dex.DexSection -> com.android.tools.r8.dex.p:
    int length -> b
    int offset -> c
    boolean $assertionsDisabled -> d
    int type -> a
    1:1:void <clinit>():9:9 -> <clinit>
    1:5:void <init>(int,int,int,int):15:19 -> <init>
    1:1:java.lang.String toString():83:83 -> toString
    2:2:java.lang.String typeName():33:33 -> toString
    2:2:java.lang.String toString():83 -> toString
    3:3:java.lang.String toString():83:83 -> toString
com.android.tools.r8.dex.FileWriter -> com.android.tools.r8.dex.r:
    com.android.tools.r8.graph.ObjectToOffsetMapping mapping -> a
    boolean $assertionsDisabled -> i
    com.android.tools.r8.utils.InternalOptions options -> d
    com.android.tools.r8.dex.MethodToCodeObjectMapping codeMapping -> b
    com.android.tools.r8.dex.DexOutputBuffer dest -> f
    com.android.tools.r8.dex.CodeToKeep desugaredLibraryCodeToKeep -> h
    com.android.tools.r8.naming.NamingLens namingLens -> e
    com.android.tools.r8.dex.FileWriter$MixedSectionOffsets mixedSectionOffsets -> g
    com.android.tools.r8.graph.DexApplication application -> c
    1:1:void <clinit>():74:74 -> <clinit>
    1:9:void <init>(com.android.tools.r8.ByteBufferProvider,com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.dex.MethodToCodeObjectMapping,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.dex.CodeToKeep):105:113 -> <init>
    1:1:com.android.tools.r8.dex.FileWriter$MixedSectionOffsets access$300(com.android.tools.r8.dex.FileWriter):74:74 -> a
    2:3:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):118:119 -> a
    4:4:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
    4:4:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):119 -> a
    5:5:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):121:121 -> a
    6:6:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    6:6:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):121 -> a
    7:7:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):122:122 -> a
    8:8:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    8:8:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):122 -> a
    9:9:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):123:123 -> a
    10:10:boolean com.android.tools.r8.graph.PresortedComparable.isSorted(java.lang.Object[],java.util.function.Function):19:19 -> a
    10:10:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):123 -> a
    11:13:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):123:125 -> a
    14:14:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    14:14:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):125 -> a
    15:15:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):126:126 -> a
    16:16:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    16:16:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):121 -> a
    17:17:com.android.tools.r8.graph.DexString lambda$writeEncodedAnnotation$0(com.android.tools.r8.graph.DexAnnotationElement):123:123 -> a
    18:38:com.android.tools.r8.dex.FileWriter collect():132:152 -> a
    39:76:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):251:288 -> a
    77:77:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    77:77:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):288 -> a
    78:78:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):288:288 -> a
    79:80:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):264:265 -> a
    81:81:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    81:81:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):265 -> a
    82:82:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):265:265 -> a
    83:88:void lambda$sortDexCodesByClassName$1(java.util.List,java.util.Map,com.android.tools.r8.graph.DexEncodedMethod):319:324 -> a
    89:95:void addSignaturesFromMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexCode,java.util.Map,com.android.tools.r8.naming.ClassNameMapper):340:346 -> a
    89:95:void lambda$sortDexCodesByClassName$1(java.util.List,java.util.Map,com.android.tools.r8.graph.DexEncodedMethod):323 -> a
    96:98:void writeFixedSectionItems(java.util.Collection,int,java.util.function.Consumer):351:353 -> a
    99:103:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer,int):372:376 -> a
    104:105:void writeTypeItem(com.android.tools.r8.graph.DexType):425:426 -> a
    106:108:void writeProtoItem(com.android.tools.r8.graph.DexProto):430:432 -> a
    109:116:void writeFieldItem(com.android.tools.r8.graph.DexField):436:443 -> a
    117:124:void writeMethodItem(com.android.tools.r8.graph.DexMethod):447:454 -> a
    125:126:void writeDebugItem(com.android.tools.r8.graph.DexDebugInfo):472:473 -> a
    127:141:void writeCodeItem(com.android.tools.r8.graph.DexCode):477:491 -> a
    142:142:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):166:166 -> a
    142:142:void writeCodeItem(com.android.tools.r8.graph.DexCode):491 -> a
    143:151:void writeCodeItem(com.android.tools.r8.graph.DexCode):492:500 -> a
    152:152:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    152:152:void writeCodeItem(com.android.tools.r8.graph.DexCode):500 -> a
    153:158:void writeCodeItem(com.android.tools.r8.graph.DexCode):501:506 -> a
    159:159:void com.android.tools.r8.dex.DexOutputBuffer.putSleb128(int):84:84 -> a
    159:159:void writeCodeItem(com.android.tools.r8.graph.DexCode):506 -> a
    160:161:void writeCodeItem(com.android.tools.r8.graph.DexCode):507:508 -> a
    162:162:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    162:162:void writeCodeItem(com.android.tools.r8.graph.DexCode):508 -> a
    163:163:void writeCodeItem(com.android.tools.r8.graph.DexCode):509:509 -> a
    164:164:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    164:164:void writeCodeItem(com.android.tools.r8.graph.DexCode):509 -> a
    165:165:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    165:165:void writeCodeItem(com.android.tools.r8.graph.DexCode):508 -> a
    166:166:void writeCodeItem(com.android.tools.r8.graph.DexCode):512:512 -> a
    167:167:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    167:167:void writeCodeItem(com.android.tools.r8.graph.DexCode):512 -> a
    168:168:void com.android.tools.r8.dex.DexOutputBuffer.putSleb128(int):84:84 -> a
    168:168:void writeCodeItem(com.android.tools.r8.graph.DexCode):506 -> a
    169:178:void writeCodeItem(com.android.tools.r8.graph.DexCode):515:524 -> a
    179:179:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    179:179:void writeCodeItem(com.android.tools.r8.graph.DexCode):500 -> a
    180:185:void writeTypeList(com.android.tools.r8.graph.DexTypeList):529:534 -> a
    186:187:void writeStringData(com.android.tools.r8.graph.DexString):539:540 -> a
    188:188:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    188:188:void writeStringData(com.android.tools.r8.graph.DexString):540 -> a
    189:189:void writeStringData(com.android.tools.r8.graph.DexString):541:541 -> a
    190:190:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    190:190:void writeStringData(com.android.tools.r8.graph.DexString):540 -> a
    191:191:com.android.tools.r8.graph.DexType lambda$writeAnnotationSet$2(com.android.tools.r8.graph.DexAnnotation):554:554 -> a
    192:192:void writeAnnotationSet(com.android.tools.r8.graph.DexAnnotationSet):554:554 -> a
    193:193:boolean com.android.tools.r8.graph.PresortedComparable.isSorted(java.lang.Object[],java.util.function.Function):19:19 -> a
    193:193:void writeAnnotationSet(com.android.tools.r8.graph.DexAnnotationSet):554 -> a
    194:198:void writeAnnotationSet(com.android.tools.r8.graph.DexAnnotationSet):554:558 -> a
    199:199:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
    199:199:void writeAnnotationSet(com.android.tools.r8.graph.DexAnnotationSet):558 -> a
    200:202:void writeAnnotationSet(com.android.tools.r8.graph.DexAnnotationSet):560:562 -> a
    203:212:void writeAnnotationSetRefList(com.android.tools.r8.graph.ParameterAnnotationsList):567:576 -> a
    213:215:void writeMemberAnnotations(java.util.List,java.util.function.ToIntFunction):582:584 -> a
    216:228:void writeAnnotationDirectory(com.android.tools.r8.graph.DexAnnotationDirectory):589:601 -> a
    229:229:int lambda$writeAnnotationDirectory$3(com.android.tools.r8.graph.DexEncodedField):598:598 -> a
    230:235:void writeEncodedFields(java.util.List):606:611 -> a
    236:236:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    236:236:void writeEncodedFields(java.util.List):611 -> a
    237:237:void writeEncodedFields(java.util.List):613:613 -> a
    238:238:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    238:238:void writeEncodedFields(java.util.List):613 -> a
    239:239:void writeEncodedFields(java.util.List):614:614 -> a
    240:240:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    240:240:void writeEncodedFields(java.util.List):613 -> a
    241:241:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    241:241:void writeEncodedFields(java.util.List):611 -> a
    242:247:void writeEncodedMethods(java.util.List,boolean):619:624 -> a
    248:248:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    248:248:void writeEncodedMethods(java.util.List,boolean):624 -> a
    249:249:void writeEncodedMethods(java.util.List,boolean):626:626 -> a
    250:250:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    250:250:void writeEncodedMethods(java.util.List,boolean):626 -> a
    251:255:void writeEncodedMethods(java.util.List,boolean):627:631 -> a
    256:256:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    256:256:void writeEncodedMethods(java.util.List,boolean):631 -> a
    257:257:void writeEncodedMethods(java.util.List,boolean):633:633 -> a
    258:258:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    258:258:void writeEncodedMethods(java.util.List,boolean):633 -> a
    259:259:void writeEncodedMethods(java.util.List,boolean):636:636 -> a
    260:260:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    260:260:void writeEncodedMethods(java.util.List,boolean):633 -> a
    261:261:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    261:261:void writeEncodedMethods(java.util.List,boolean):626 -> a
    262:262:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    262:262:void writeEncodedMethods(java.util.List,boolean):624 -> a
    263:269:void addStaticFieldValues(com.android.tools.r8.graph.DexProgramClass):660:666 -> a
    270:272:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):703:705 -> a
    273:273:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
    273:273:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):705 -> a
    274:274:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):707:707 -> a
    275:275:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    275:275:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):707 -> a
    276:277:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):708:709 -> a
    278:278:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    278:278:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):707 -> a
    279:285:int writeMapItem(int,int,int):717:723 -> a
    286:286:void checkThatInvokeCustomIsAllowed():1365:1365 -> a
    286:286:void writeCallSite(com.android.tools.r8.graph.DexCallSite):697 -> a
    287:288:void writeCallSite(com.android.tools.r8.graph.DexCallSite):698:699 -> a
    289:289:void checkThatInvokeCustomIsAllowed():1366:1366 -> a
    289:289:void writeCallSite(com.android.tools.r8.graph.DexCallSite):697 -> a
    290:290:void checkThatInvokeCustomIsAllowed():1365:1365 -> a
    290:290:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):671 -> a
    291:296:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):673:678 -> a
    297:305:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):675:683 -> a
    306:306:boolean com.android.tools.r8.graph.DexMethodHandle.isMethodHandle():297:297 -> a
    306:306:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):685 -> a
    307:309:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):686:688 -> a
    310:310:boolean com.android.tools.r8.graph.DexMethodHandle.isFieldHandle():293:293 -> a
    310:310:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):688 -> a
    311:316:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):688:693 -> a
    317:317:void checkThatInvokeCustomIsAllowed():1366:1366 -> a
    317:317:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):671 -> a
    1:7:void checkInterfaceMethods():232:238 -> b
    1:7:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():159 -> b
    8:8:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():162:162 -> b
    9:22:boolean verifyNames():293:306 -> b
    9:22:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():162 -> b
    23:33:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():164:174 -> b
    34:34:int sizeOfCodeItems(java.lang.Iterable):382:382 -> b
    34:34:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():174 -> b
    35:57:int sizeOfCodeItem(com.android.tools.r8.graph.DexCode):392:414 -> b
    35:57:int sizeOfCodeItems(java.lang.Iterable):384 -> b
    35:57:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():174 -> b
    58:58:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> b
    58:58:int sizeOfCodeItem(com.android.tools.r8.graph.DexCode):415 -> b
    58:58:int sizeOfCodeItems(java.lang.Iterable):384 -> b
    58:58:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():174 -> b
    59:60:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():174:175 -> b
    61:61:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):367:367 -> b
    61:61:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():175 -> b
    62:72:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():179:189 -> b
    73:73:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):367:367 -> b
    73:73:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():189 -> b
    74:74:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():190:190 -> b
    75:75:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):367:367 -> b
    75:75:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():190 -> b
    76:76:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():192:192 -> b
    77:77:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):367:367 -> b
    77:77:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():192 -> b
    78:78:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():194:194 -> b
    79:79:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):367:367 -> b
    79:79:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():194 -> b
    80:80:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():196:196 -> b
    81:81:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):367:367 -> b
    81:81:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():196 -> b
    82:90:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():198:206 -> b
    91:96:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):728:733 -> b
    91:96:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    97:100:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):732:735 -> b
    97:100:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    101:104:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):734:737 -> b
    101:104:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    105:108:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):736:739 -> b
    105:108:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    109:112:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):738:741 -> b
    109:112:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    113:116:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):740:743 -> b
    113:116:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    117:120:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):742:745 -> b
    117:120:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    121:124:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):744:747 -> b
    121:124:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    125:128:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):746:749 -> b
    125:128:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    129:132:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):748:751 -> b
    129:132:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    133:136:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):750:753 -> b
    133:136:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    137:140:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):752:755 -> b
    137:140:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    141:144:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):754:757 -> b
    141:144:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    145:148:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):756:759 -> b
    145:148:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    149:152:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):758:761 -> b
    149:152:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    153:156:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):760:763 -> b
    153:156:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    157:161:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):762:766 -> b
    157:161:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    162:167:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):764:769 -> b
    162:167:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    168:174:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):767:773 -> b
    168:174:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():207 -> b
    175:184:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():208:217 -> b
    185:187:void writeFixedSectionItems(com.android.tools.r8.graph.DexProgramClass[],int,java.util.function.Consumer):359:361 -> b
    185:187:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():217 -> b
    188:190:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():218:220 -> b
    191:191:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():219:219 -> b
    192:198:void writeHeader(com.android.tools.r8.dex.FileWriter$Layout):777:783 -> b
    192:198:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():223 -> b
    199:200:void writeHeader(com.android.tools.r8.dex.FileWriter$Layout):782:783 -> b
    199:200:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():223 -> b
    201:235:void writeHeader(com.android.tools.r8.dex.FileWriter$Layout):779:813 -> b
    201:235:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():223 -> b
    236:238:void writeSignature(com.android.tools.r8.dex.FileWriter$Layout):818:820 -> b
    236:238:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():224 -> b
    239:241:void writeSignature(com.android.tools.r8.dex.FileWriter$Layout):819:821 -> b
    239:241:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():224 -> b
    242:244:void writeChecksum(com.android.tools.r8.dex.FileWriter$Layout):828:830 -> b
    242:244:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():225 -> b
    245:248:void writeChecksum(com.android.tools.r8.dex.FileWriter$Layout):829:832 -> b
    245:248:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():225 -> b
    249:249:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():228:228 -> b
    250:250:void writeSignature(com.android.tools.r8.dex.FileWriter$Layout):823:823 -> b
    250:250:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():224 -> b
    251:251:void writeStringItem(com.android.tools.r8.graph.DexString):421:421 -> b
    252:254:void writeAnnotation(com.android.tools.r8.graph.DexAnnotation):545:547 -> b
    255:255:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> b
    255:255:void writeAnnotation(com.android.tools.r8.graph.DexAnnotation):547 -> b
    256:257:void writeAnnotation(com.android.tools.r8.graph.DexAnnotation):549:550 -> b
    258:258:int lambda$writeAnnotationDirectory$4(com.android.tools.r8.graph.DexEncodedMethod):600:600 -> b
    259:265:void writeClassData(com.android.tools.r8.graph.DexProgramClass):642:648 -> b
    266:266:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> b
    266:266:void writeClassData(com.android.tools.r8.graph.DexProgramClass):648 -> b
    267:267:void writeClassData(com.android.tools.r8.graph.DexProgramClass):649:649 -> b
    268:268:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> b
    268:268:void writeClassData(com.android.tools.r8.graph.DexProgramClass):649 -> b
    269:269:void writeClassData(com.android.tools.r8.graph.DexProgramClass):650:650 -> b
    270:270:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> b
    270:270:void writeClassData(com.android.tools.r8.graph.DexProgramClass):650 -> b
    271:271:void writeClassData(com.android.tools.r8.graph.DexProgramClass):651:651 -> b
    272:272:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> b
    272:272:void writeClassData(com.android.tools.r8.graph.DexProgramClass):651 -> b
    273:277:void writeClassData(com.android.tools.r8.graph.DexProgramClass):652:656 -> b
    278:278:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> b
    278:278:void writeClassData(com.android.tools.r8.graph.DexProgramClass):651 -> b
    279:279:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> b
    279:279:void writeClassData(com.android.tools.r8.graph.DexProgramClass):650 -> b
    280:280:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> b
    280:280:void writeClassData(com.android.tools.r8.graph.DexProgramClass):649 -> b
    281:281:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> b
    281:281:void writeClassData(com.android.tools.r8.graph.DexProgramClass):648 -> b
    1:15:java.util.List sortDexCodesByClassName():314:328 -> c
    16:19:void writeClassDefItem(com.android.tools.r8.graph.DexProgramClass):458:461 -> c
    20:24:void writeClassDefItem(com.android.tools.r8.graph.DexProgramClass):460:464 -> c
    25:29:void writeClassDefItem(com.android.tools.r8.graph.DexProgramClass):463:467 -> c
    30:32:void writeClassDefItem(com.android.tools.r8.graph.DexProgramClass):466:468 -> c
    33:33:int lambda$writeAnnotationDirectory$5(com.android.tools.r8.graph.DexEncodedMethod):602:602 -> c
com.android.tools.r8.dex.FileWriter$1 -> com.android.tools.r8.dex.q:
com.android.tools.r8.dex.FileWriter$ByteBufferResult -> com.android.tools.r8.dex.r$a:
    com.android.tools.r8.dex.CompatByteBuffer buffer -> a
    int length -> b
    1:1:void <init>(com.android.tools.r8.dex.CompatByteBuffer,int,com.android.tools.r8.dex.FileWriter$1):77:77 -> <init>
    2:4:void <init>(com.android.tools.r8.dex.CompatByteBuffer,int):83:85 -> <init>
com.android.tools.r8.dex.FileWriter$Layout -> com.android.tools.r8.dex.s:
    int annotationsOffset -> n
    int annotationSetsOffset -> o
    int typeListsOffset -> l
    int stringDataOffsets -> m
    int codesOffset -> j
    int debugInfosOffset -> k
    int methodHandleIdsOffset -> h
    int dataSectionOffset -> i
    int classDefsOffset -> f
    boolean $assertionsDisabled -> v
    int callSiteIdsOffset -> g
    int fieldIdsOffset -> d
    int methodIdsOffset -> e
    int typeIdsOffset -> b
    int protoIdsOffset -> c
    int stringIdsOffset -> a
    int mapOffset -> t
    int endOfFile -> u
    int classDataOffset -> r
    int encodedArrarysOffset -> s
    int annotationSetRefListsOffset -> p
    int annotationDirectoriesOffset -> q
    1:1:void <clinit>():840:840 -> <clinit>
    1:1:void <init>(int,int,int,int,int,int,int,int,int):872:872 -> <init>
    2:35:void <init>(int,int,int,int,int,int,int,int,int):856:889 -> <init>
    void alreadySetOffset(int) -> a
    1:10:com.android.tools.r8.dex.FileWriter$Layout from(com.android.tools.r8.graph.ObjectToOffsetMapping):894:903 -> a
    11:11:boolean isValidOffset(int,boolean):913:913 -> a
    12:13:int getAnnotationDirectoriesOffset():991:992 -> a
    1:2:int getAnnotationSetRefListsOffset():981:982 -> b
    3:4:void setAnnotationDirectoriesOffset(int):996:997 -> b
    1:2:int getAnnotationSetsOffset():967:968 -> c
    3:4:void setAnnotationSetRefListsOffset(int):986:987 -> c
    1:2:int getAnnotationsOffset():957:958 -> d
    3:4:void setAnnotationSetsOffset(int):976:977 -> d
    1:2:void setAnnotationsOffset(int):962:963 -> e
    3:4:int getClassDataOffset():1001:1002 -> e
    1:2:int getCodesOffset():917:918 -> f
    3:4:void setClassDataOffset(int):1006:1007 -> f
    1:2:void setCodesOffset(int):922:923 -> g
    3:3:int getEndOfFile():1029:1029 -> g
    3:3:int getDataSectionSize():907 -> g
    4:5:int getDataSectionSize():907:908 -> g
    1:2:int getDebugInfosOffset():927:928 -> h
    3:4:void setDebugInfosOffset(int):932:933 -> h
    1:2:int getEncodedArrarysOffset():1011:1012 -> i
    3:4:void setEncodedArrarysOffset(int):1016:1017 -> i
    1:1:int getEndOfFile():1029:1029 -> j
    2:2:void setEndOfFile(int):1033:1033 -> j
    1:1:int getMapOffset():1021:1021 -> k
    2:2:void setMapOffset(int):1025:1025 -> k
    1:2:int getStringDataOffsets():947:948 -> l
    3:4:void setStringDataOffsets(int):952:953 -> l
    1:2:int getTypeListsOffset():937:938 -> m
    3:4:void setTypeListsOffset(int):942:943 -> m
com.android.tools.r8.dex.FileWriter$MixedSectionOffsets -> com.android.tools.r8.dex.t:
    boolean $assertionsDisabled -> n
    int minApiLevel -> m
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap debugInfos -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap typeLists -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap annotations -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap stringData -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap codes -> b
    com.android.tools.r8.dex.MethodToCodeObjectMapping codeMapping -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap annotationSets -> g
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap annotationSetRefLists -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap annotationDirectories -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap classesWithData -> j
    java.util.Map clazzToAnnotationDirectory -> l
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap encodedArrays -> k
    1:1:void <clinit>():1044:1044 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.dex.MethodToCodeObjectMapping,com.android.tools.r8.dex.FileWriter$1):1044:1044 -> <init>
    2:2:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.dex.MethodToCodeObjectMapping):1080:1080 -> <init>
    3:34:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.dex.MethodToCodeObjectMapping):1051:1082 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap access$100(com.android.tools.r8.dex.FileWriter$MixedSectionOffsets):1044:1044 -> a
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap createObject2IntMap():1069:1070 -> a
    4:5:boolean add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,java.lang.Object):1086:1087 -> a
    6:6:boolean add(com.android.tools.r8.graph.DexProgramClass):1103:1103 -> a
    7:7:boolean add(com.android.tools.r8.graph.DexEncodedArray):1108:1108 -> a
    8:11:boolean add(com.android.tools.r8.graph.DexAnnotationSet):1115:1118 -> a
    12:12:void visit(com.android.tools.r8.graph.DexEncodedMethod):1123:1123 -> a
    13:13:boolean add(com.android.tools.r8.graph.DexCode):1128:1128 -> a
    14:15:boolean add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,java.lang.Object):1094:1095 -> a
    14:15:boolean add(com.android.tools.r8.graph.DexCode):1128 -> a
    16:16:boolean add(com.android.tools.r8.graph.DexDebugInfo):1133:1133 -> a
    17:20:boolean add(com.android.tools.r8.graph.DexTypeList):1138:1141 -> a
    21:24:boolean add(com.android.tools.r8.graph.ParameterAnnotationsList):1146:1149 -> a
    25:25:boolean add(com.android.tools.r8.graph.DexAnnotation):1154:1154 -> a
    26:28:boolean setAnnotationsDirectoryForClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotationDirectory):1160:1162 -> a
    29:29:boolean add(com.android.tools.r8.graph.DexString):1166:1166 -> a
    30:31:boolean add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,java.lang.Object):1094:1095 -> a
    30:31:boolean add(com.android.tools.r8.graph.DexString):1166 -> a
    32:33:int lookup(java.lang.Object,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap):1213:1214 -> a
    34:35:int lookup(java.lang.Object,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1222:1223 -> a
    36:37:void setOffsetFor(java.lang.Object,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap):1285:1286 -> a
    38:38:void setOffsetFor(com.android.tools.r8.graph.DexDebugInfo,int):1295:1295 -> a
    39:39:void setOffsetFor(com.android.tools.r8.graph.DexCode,int):1299:1299 -> a
    40:41:void setOffsetFor(java.lang.Object,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1290:1291 -> a
    40:41:void setOffsetFor(com.android.tools.r8.graph.DexCode,int):1299 -> a
    42:43:void setOffsetFor(com.android.tools.r8.graph.DexTypeList,int):1303:1304 -> a
    44:44:void setOffsetFor(com.android.tools.r8.graph.DexString,int):1308:1308 -> a
    45:46:void setOffsetFor(java.lang.Object,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1290:1291 -> a
    45:46:void setOffsetFor(com.android.tools.r8.graph.DexString,int):1308 -> a
    47:47:void setOffsetFor(com.android.tools.r8.graph.DexAnnotation,int):1312:1312 -> a
    48:49:void setOffsetFor(com.android.tools.r8.graph.DexAnnotationSet,int):1318:1319 -> a
    50:50:void setOffsetForAnnotationsDirectory(com.android.tools.r8.graph.DexAnnotationDirectory,int):1323:1323 -> a
    51:51:void setOffsetFor(com.android.tools.r8.graph.DexProgramClass,int):1327:1327 -> a
    52:52:void setOffsetFor(com.android.tools.r8.graph.DexEncodedArray,int):1331:1331 -> a
    53:54:void setOffsetFor(com.android.tools.r8.graph.ParameterAnnotationsList,int):1335:1336 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createReference2IntMap():1075:1075 -> b
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.<init>():176:176 -> b
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createReference2IntMap():1075 -> b
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createReference2IntMap():1076:1076 -> b
    4:4:int getOffsetFor(com.android.tools.r8.graph.DexString):1228:1228 -> b
    5:8:int getOffsetFor(com.android.tools.r8.graph.DexTypeList):1232:1235 -> b
    9:9:int getOffsetFor(com.android.tools.r8.graph.DexProgramClass):1239:1239 -> b
    10:10:int getOffsetFor(com.android.tools.r8.graph.DexEncodedArray):1243:1243 -> b
    11:11:int getOffsetFor(com.android.tools.r8.graph.DexDebugInfo):1247:1247 -> b
    12:12:int getOffsetFor(com.android.tools.r8.graph.DexAnnotation):1261:1261 -> b
    13:16:int getOffsetFor(com.android.tools.r8.graph.DexAnnotationSet):1267:1270 -> b
    17:20:int getOffsetFor(com.android.tools.r8.graph.ParameterAnnotationsList):1274:1277 -> b
    21:21:int getOffsetFor(com.android.tools.r8.graph.DexCode):1281:1281 -> b
    1:1:java.util.Collection getAnnotationDirectories():1202:1202 -> c
    2:6:int getOffsetForAnnotationsDirectory(com.android.tools.r8.graph.DexProgramClass):1252:1256 -> c
    1:1:java.util.Collection getAnnotationSetRefLists():1194:1194 -> d
    1:1:java.util.Collection getAnnotationSets():1190:1190 -> e
    1:1:java.util.Collection getAnnotations():1186:1186 -> f
    1:1:java.util.Collection getClassesWithData():1198:1198 -> g
    1:1:java.util.Collection getCodes():1170:1170 -> h
    1:1:java.util.Collection getDebugInfos():1174:1174 -> i
    1:1:java.util.Collection getEncodedArrays():1206:1206 -> j
    1:1:java.util.Collection getStringData():1182:1182 -> k
    1:1:java.util.Collection getTypeLists():1178:1178 -> l
com.android.tools.r8.dex.FileWriter$ProgramClassDependencyCollector -> com.android.tools.r8.dex.u:
    java.util.Set includedClasses -> c
    com.android.tools.r8.dex.FileWriter this$0 -> d
    1:2:void <init>(com.android.tools.r8.dex.FileWriter,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexProgramClass[]):1344:1345 -> <init>
    3:7:void <init>(com.android.tools.r8.dex.FileWriter,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexProgramClass[]):1342:1346 -> <init>
    void visit(com.android.tools.r8.graph.DexType) -> b
    1:4:void visit(com.android.tools.r8.graph.DexClass):1357:1360 -> b
com.android.tools.r8.dex.IndexedItemCollection -> com.android.tools.r8.dex.v:
com.android.tools.r8.dex.InheritanceClassInDexDistributor -> com.android.tools.r8.dex.z:
    com.android.tools.r8.dex.VirtualFile mainDex -> b
    com.android.tools.r8.dex.InheritanceClassInDexDistributor$DirectSubClassesInfo directSubClasses -> i
    java.util.Comparator DEX_PROGRAM_CLASS_COMPARATOR -> j
    boolean $assertionsDisabled -> k
    java.util.Set classes -> e
    java.util.List dexes -> c
    int dexIndexOffset -> g
    com.android.tools.r8.naming.NamingLens namingLens -> h
    java.util.concurrent.ExecutorService executorService -> a
    java.util.BitSet fullDex -> d
    com.android.tools.r8.graph.DexApplication app -> f
    1:3:void <clinit>():43:45 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.VirtualFile,java.util.List,java.util.Set,java.util.Map,int,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):297:297 -> <init>
    2:26:void <init>(com.android.tools.r8.dex.VirtualFile,java.util.List,java.util.Set,java.util.Map,int,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):282:306 -> <init>
    1:1:com.android.tools.r8.naming.NamingLens access$000(com.android.tools.r8.dex.InheritanceClassInDexDistributor):43:43 -> a
    2:2:java.util.List access$100(java.util.Collection):43:43 -> a
    3:3:java.util.Comparator access$200():43:43 -> a
    4:4:int lambda$static$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):46:46 -> a
    5:6:int getTotalClassNumber(java.util.List):366:367 -> a
    7:9:java.util.Collection assignGroup(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup,java.util.List):373:375 -> a
    10:10:boolean com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup.canFitInOneDex():82:82 -> a
    10:10:java.util.Collection assignGroup(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup,java.util.List):376 -> a
    11:35:java.util.Collection assignGroup(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup,java.util.List):379:403 -> a
    36:36:boolean lambda$assignGroup$1(java.util.List,com.android.tools.r8.dex.VirtualFile):379:379 -> a
    37:37:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> a
    37:37:boolean lambda$assignGroup$1(java.util.List,com.android.tools.r8.dex.VirtualFile):379 -> a
    38:38:boolean lambda$assignClassesWithLinkingError$3(java.util.Set,com.android.tools.r8.dex.VirtualFile):432:432 -> a
    39:39:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> a
    39:39:boolean lambda$assignClassesWithLinkingError$3(java.util.Set,com.android.tools.r8.dex.VirtualFile):432 -> a
    40:40:java.util.List collectNoDirectInheritanceGroups(java.util.Set):478:478 -> a
    40:40:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):416 -> a
    41:45:java.util.List getTopologicalOrder(java.util.Set):691:695 -> a
    41:45:java.util.List collectNoDirectInheritanceGroups(java.util.Set):479 -> a
    41:45:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):416 -> a
    46:70:java.util.List collectNoDirectInheritanceGroups(java.util.Set):480:504 -> a
    46:70:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):416 -> a
    71:90:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):418:437 -> a
    91:91:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> a
    91:91:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):438 -> a
    92:99:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):439:446 -> a
    100:100:void markDexFull(com.android.tools.r8.dex.VirtualFile):716:716 -> a
    100:100:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):447 -> a
    101:104:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):450:453 -> a
    105:105:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):442:442 -> a
    106:106:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():716:716 -> a
    106:106:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):443 -> a
    107:107:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):443:443 -> a
    108:108:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    108:108:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):443 -> a
    109:109:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    109:109:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    109:109:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):443 -> a
    110:122:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):443:455 -> a
    123:123:void lambda$updateGroupsNumberOfIds$5(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):540:540 -> a
    124:144:void collectGroup(java.util.Collection,com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup,com.android.tools.r8.graph.DexProgramClass):562:582 -> a
    145:149:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):591:595 -> a
    150:150:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> a
    150:150:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):597 -> a
    151:152:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):598:599 -> a
    153:153:void markDexFull(com.android.tools.r8.dex.VirtualFile):716:716 -> a
    153:153:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):600 -> a
    154:160:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):602:608 -> a
    161:161:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):607:607 -> a
    162:169:com.android.tools.r8.graph.DexProgramClass findOneRootInSetFrom(com.android.tools.r8.graph.DexProgramClass,java.util.Set):702:709 -> a
    170:170:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> a
    1:1:com.android.tools.r8.dex.VirtualFile access$300(com.android.tools.r8.dex.InheritanceClassInDexDistributor):43:43 -> b
    2:2:boolean lambda$assignGroup$2(java.util.List,com.android.tools.r8.dex.VirtualFile):393:393 -> b
    3:3:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> b
    3:3:boolean lambda$assignGroup$2(java.util.List,com.android.tools.r8.dex.VirtualFile):393 -> b
    4:4:boolean lambda$assignClassesWithLinkingError$4(java.util.Set,com.android.tools.r8.dex.VirtualFile):451:451 -> b
    5:5:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> b
    5:5:boolean lambda$assignClassesWithLinkingError$4(java.util.Set,com.android.tools.r8.dex.VirtualFile):451 -> b
    6:17:java.util.List collectInheritanceGroups():522:533 -> b
    6:17:void distribute():310 -> b
    18:28:void distribute():312:322 -> b
    29:29:boolean com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup.canFitInOneDex():82:82 -> b
    29:29:void distribute():325 -> b
    30:64:void distribute():325:359 -> b
    65:79:void updateGroupsNumberOfIds(java.util.List):538:552 -> b
    80:80:void updateGroupsNumberOfIds(java.util.List):547:547 -> b
    81:90:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):619:628 -> b
    91:95:boolean hasDirectInheritanceInCollection(com.android.tools.r8.graph.DexProgramClass,java.util.Set):660:664 -> b
    91:95:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):629 -> b
    96:96:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):632:632 -> b
    97:97:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> b
    97:97:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):633 -> b
    98:106:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):634:642 -> b
    107:107:void markDexFull(com.android.tools.r8.dex.VirtualFile):716:716 -> b
    107:107:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):643 -> b
    108:108:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):637:637 -> b
    109:109:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():716:716 -> b
    109:109:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):638 -> b
    110:110:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):638:638 -> b
    111:111:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
    111:111:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):638 -> b
    112:112:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> b
    112:112:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> b
    112:112:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):638 -> b
    113:123:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):638:648 -> b
    124:148:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):630:654 -> b
    149:149:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):653:653 -> b
    150:151:java.util.List getSortedCopy(java.util.Collection):682:683 -> b
    1:1:com.android.tools.r8.graph.DexApplication access$400(com.android.tools.r8.dex.InheritanceClassInDexDistributor):43:43 -> c
com.android.tools.r8.dex.InheritanceClassInDexDistributor$CategorizedInheritanceGroupWithMainDexDependency -> com.android.tools.r8.dex.w:
    com.android.tools.r8.dex.InheritanceClassInDexDistributor this$0 -> d
    java.util.Set dependentsOfMainDexIndependents -> c
    boolean $assertionsDisabled -> e
    java.util.Set mainDexIndependents -> a
    java.util.Set independentsFromMainDexIndependents -> b
    1:1:void <clinit>():124:124 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor,com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):133:133 -> <init>
    2:30:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor,com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):127:155 -> <init>
    31:31:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor,com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):152:152 -> <init>
    1:12:boolean isDependingOnMainDexClass(java.util.Set,com.android.tools.r8.graph.DexProgramClass):166:177 -> a
    13:28:boolean isDependingOnMainDexClass(java.util.Set,com.android.tools.r8.graph.DexProgramClass):176:191 -> a
    29:56:boolean isDependingOnMainDexIndependents(com.android.tools.r8.graph.DexProgramClass):203:230 -> a
com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup -> com.android.tools.r8.dex.x:
    com.android.tools.r8.dex.InheritanceClassInDexDistributor this$0 -> e
    boolean $assertionsDisabled -> f
    java.util.Set members -> a
    int numberOfFieldIds -> b
    int numberOfMethodIds -> c
    boolean dependsOnMainDexClasses -> d
    1:1:void <clinit>():54:54 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor):61:61 -> <init>
    2:7:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor):57:62 -> <init>
    8:8:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor,java.util.Set):65:65 -> <init>
    9:19:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor,java.util.Set):57:67 -> <init>
    1:7:void updateNumbersOfIds():72:78 -> a
    1:1:int compareTo(java.lang.Object):54:54 -> compareTo
    2:4:int compareTo(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):89:91 -> compareTo
    2:4:int compareTo(java.lang.Object):54 -> compareTo
    5:25:int compareTo(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):89:109 -> compareTo
    5:25:int compareTo(java.lang.Object):54 -> compareTo
    26:29:int compareTo(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):107:110 -> compareTo
    26:29:int compareTo(java.lang.Object):54 -> compareTo
com.android.tools.r8.dex.InheritanceClassInDexDistributor$DirectSubClassesInfo -> com.android.tools.r8.dex.y:
    java.util.Map directSubClasses -> a
    java.util.Set classes -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():241:241 -> <clinit>
    1:11:void <init>(com.android.tools.r8.graph.DexApplication,java.util.Set):246:256 -> <init>
    1:2:java.util.Collection getDirectSubClasses(com.android.tools.r8.graph.DexProgramClass):260:261 -> a
    3:8:void addDirectSubClass(com.android.tools.r8.graph.DexApplication,java.util.Set,java.util.Map,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):269:274 -> a
    1:1:java.util.Collection lambda$addDirectSubClass$0(com.android.tools.r8.graph.DexProgramClass):273:273 -> b
com.android.tools.r8.dex.JumboStringRewriter -> com.android.tools.r8.dex.A:
    com.android.tools.r8.graph.DexItemFactory factory -> c
    com.android.tools.r8.graph.DexString firstJumboString -> b
    java.util.Map instructionTargets -> d
    com.android.tools.r8.graph.DexEncodedMethod method -> a
    boolean $assertionsDisabled -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap tryRangeStartAndEndTargets -> h
    java.util.Map handlerTargets -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap debugEventTargets -> e
    java.util.Map payloadToSwitch -> f
    java.util.Map tryTargets -> g
    1:1:void <clinit>():55:55 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):104:104 -> <init>
    2:15:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):94:107 -> <init>
    com.android.tools.r8.code.Instruction lambda$replaceTarget$0(com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction) -> a
    1:12:int rewriteIfToIfAndGoto(int,java.util.ListIterator,com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction):423:434 -> a
    13:25:void replaceTarget(com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction):439:451 -> a
    26:41:void recordTargets():567:582 -> a
    26:41:com.android.tools.r8.graph.DexCode rewrite():113 -> a
    42:72:void recordInstructionTargets(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):456:486 -> a
    42:72:void recordTargets():586 -> a
    42:72:com.android.tools.r8.graph.DexCode rewrite():113 -> a
    73:87:void recordInstructionTargets(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):485:499 -> a
    73:87:void recordTargets():586 -> a
    73:87:com.android.tools.r8.graph.DexCode rewrite():113 -> a
    88:103:void recordDebugEventTargets(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):505:520 -> a
    88:103:void recordTargets():587 -> a
    88:103:com.android.tools.r8.graph.DexCode rewrite():113 -> a
    104:104:void recordTargets():588:588 -> a
    104:104:com.android.tools.r8.graph.DexCode rewrite():113 -> a
    105:137:void recordTryAndHandlerTargets(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.code.Instruction):529:561 -> a
    105:137:void recordTargets():589 -> a
    105:137:com.android.tools.r8.graph.DexCode rewrite():113 -> a
    138:150:java.util.List expandCode():275:287 -> a
    138:150:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    151:151:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):255:255 -> a
    151:151:java.util.List expandCode():287 -> a
    151:151:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    152:156:java.util.List expandCode():288:292 -> a
    152:156:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    157:157:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):255:255 -> a
    157:157:java.util.List expandCode():287 -> a
    157:157:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    158:181:java.util.List expandCode():294:317 -> a
    158:181:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    182:182:java.util.List expandCode():314:314 -> a
    182:182:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    183:183:java.util.List expandCode():311:311 -> a
    183:183:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    184:184:java.util.List expandCode():308:308 -> a
    184:184:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    185:185:java.util.List expandCode():305:305 -> a
    185:185:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    186:229:java.util.List expandCode():302:345 -> a
    186:229:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    230:230:java.util.List expandCode():342:342 -> a
    230:230:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    231:231:java.util.List expandCode():339:339 -> a
    231:231:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    232:232:java.util.List expandCode():336:336 -> a
    232:232:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    233:233:java.util.List expandCode():333:333 -> a
    233:233:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    234:263:java.util.List expandCode():330:359 -> a
    234:263:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    264:316:java.util.List expandCode():357:409 -> a
    264:316:com.android.tools.r8.graph.DexCode rewrite():115 -> a
    317:354:void rewriteInstructionOffsets(java.util.List):140:177 -> a
    317:354:com.android.tools.r8.graph.DexCode rewrite():118 -> a
    355:361:com.android.tools.r8.graph.DexCode$Try[] rewriteTryOffsets():184:190 -> a
    355:361:com.android.tools.r8.graph.DexCode rewrite():119 -> a
    362:380:com.android.tools.r8.graph.DexCode$TryHandler[] rewriteHandlerOffsets():196:214 -> a
    362:380:com.android.tools.r8.graph.DexCode rewrite():120 -> a
    381:399:com.android.tools.r8.graph.DexDebugInfo rewriteDebugInfoOffsets():220:238 -> a
    381:399:com.android.tools.r8.graph.DexCode rewrite():121 -> a
    400:411:void addDefaultEvent(int,int,java.util.List):260:271 -> a
    400:411:com.android.tools.r8.graph.DexDebugInfo rewriteDebugInfoOffsets():239 -> a
    400:411:com.android.tools.r8.graph.DexCode rewrite():121 -> a
    412:422:com.android.tools.r8.graph.DexDebugInfo rewriteDebugInfoOffsets():240:250 -> a
    412:422:com.android.tools.r8.graph.DexCode rewrite():121 -> a
    423:435:com.android.tools.r8.graph.DexCode rewrite():123:135 -> a
    com.android.tools.r8.code.Instruction lambda$replaceTarget$1(com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction) -> b
com.android.tools.r8.dex.JumboStringRewriter$TryTargets -> com.android.tools.r8.dex.A$a:
    com.android.tools.r8.code.Instruction start -> a
    com.android.tools.r8.code.Instruction end -> b
    boolean endsAfterLastInstruction -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():57:57 -> <clinit>
    1:6:void <init>(com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction,boolean):62:67 -> <init>
    1:5:void replaceTarget(com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction):71:75 -> a
    6:6:int getStartOffset():80:80 -> a
    1:4:int getStartToEndDelta():84:87 -> b
com.android.tools.r8.dex.Marker -> com.android.tools.r8.dex.B:
    com.android.tools.r8.dex.Marker$Tool tool -> b
    boolean $assertionsDisabled -> f
    java.lang.String D8_PREFIX -> c
    java.lang.String L8_PREFIX -> e
    com.android.tools.r8.com.google.gson.JsonObject jsonObject -> a
    java.lang.String R8_PREFIX -> d
    1:24:void <clinit>():18:41 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.Marker$Tool):47:47 -> <init>
    2:4:void <init>(com.android.tools.r8.dex.Marker$Tool,com.android.tools.r8.com.google.gson.JsonObject):50:52 -> <init>
    1:2:com.android.tools.r8.dex.Marker setMinApi(long):86:87 -> a
    3:3:java.lang.String getCompilationMode():102:102 -> a
    4:5:com.android.tools.r8.dex.Marker setCompilationMode(com.android.tools.r8.CompilationMode):106:107 -> a
    6:7:com.android.tools.r8.dex.Marker setHasChecksums(boolean):116:117 -> a
    8:9:com.android.tools.r8.dex.Marker setPgMapId(java.lang.String):126:127 -> a
    10:10:void lambda$toString$0(com.android.tools.r8.com.google.gson.JsonObject,java.util.Map$Entry):138:138 -> a
    11:22:com.android.tools.r8.dex.Marker parse(com.android.tools.r8.graph.DexString):159:170 -> a
    23:23:com.android.tools.r8.dex.Marker internalParse(com.android.tools.r8.dex.Marker$Tool,java.lang.String):178:178 -> a
    24:24:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonObject():55:55 -> a
    24:24:com.android.tools.r8.dex.Marker internalParse(com.android.tools.r8.dex.Marker$Tool,java.lang.String):179 -> a
    25:25:com.android.tools.r8.dex.Marker internalParse(com.android.tools.r8.dex.Marker$Tool,java.lang.String):180:180 -> a
    1:2:com.android.tools.r8.dex.Marker setSha1(java.lang.String):96:97 -> b
    3:3:boolean getHasChecksums():112:112 -> b
    1:2:com.android.tools.r8.dex.Marker setVersion(java.lang.String):76:77 -> c
    3:3:java.lang.Long getMinApi():82:82 -> c
    1:1:java.lang.String getPgMapId():122:122 -> d
    1:1:com.android.tools.r8.dex.Marker$Tool getTool():56:56 -> e
    1:3:boolean equals(java.lang.Object):144:146 -> equals
    1:1:java.lang.String getVersion():72:72 -> f
    1:1:boolean isD8():60:60 -> g
    1:1:int hashCode():153:153 -> hashCode
    1:6:java.lang.String toString():134:139 -> toString
com.android.tools.r8.dex.Marker$Tool -> com.android.tools.r8.dex.B$a:
    com.android.tools.r8.dex.Marker$Tool R8 -> b
    com.android.tools.r8.dex.Marker$Tool D8 -> a
    com.android.tools.r8.dex.Marker$Tool L8 -> c
    1:3:void <clinit>():28:30 -> <clinit>
    1:1:void <init>(java.lang.String,int):27:27 -> <init>
    1:1:com.android.tools.r8.dex.Marker$Tool[] valuesR8andD8():33:33 -> a
com.android.tools.r8.dex.MethodToCodeObjectMapping -> com.android.tools.r8.dex.E:
    1:1:void <init>():12:12 -> <init>
    void clearCode(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> a
    com.android.tools.r8.graph.DexCode getCode(com.android.tools.r8.graph.DexEncodedMethod) -> a
    boolean verifyCodeObjects(java.util.Collection) -> a
com.android.tools.r8.dex.MethodToCodeObjectMapping$MapBacking -> com.android.tools.r8.dex.C:
    java.util.Map codes -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():53:53 -> <clinit>
    1:2:void <init>(java.util.Map):57:58 -> <init>
    1:1:com.android.tools.r8.graph.DexCode getCode(com.android.tools.r8.graph.DexEncodedMethod):63:63 -> a
    2:2:void clearCode(com.android.tools.r8.graph.DexEncodedMethod,boolean):69:69 -> a
    3:3:boolean verifyCodeObjects(java.util.Collection):74:74 -> a
com.android.tools.r8.dex.MethodToCodeObjectMapping$MethodBacking -> com.android.tools.r8.dex.D:
    com.android.tools.r8.dex.MethodToCodeObjectMapping$MethodBacking INSTANCE -> a
    boolean $assertionsDisabled -> b
    1:3:void <clinit>():28:30 -> <clinit>
    1:1:void <init>():28:28 -> <init>
    boolean verifyCodeObjects(java.util.Collection) -> a
    1:1:com.android.tools.r8.dex.MethodToCodeObjectMapping$MethodBacking access$000():28:28 -> a
    2:4:com.android.tools.r8.graph.DexCode getCode(com.android.tools.r8.graph.DexEncodedMethod):34:36 -> a
    5:5:void clearCode(com.android.tools.r8.graph.DexEncodedMethod,boolean):43:43 -> a
com.android.tools.r8.dex.MixedSectionCollection -> com.android.tools.r8.dex.F:
    1:1:void <init>():27:27 -> <init>
    boolean add(com.android.tools.r8.graph.DexAnnotation) -> a
    boolean add(com.android.tools.r8.graph.DexAnnotationSet) -> a
    boolean add(com.android.tools.r8.graph.DexCode) -> a
    boolean add(com.android.tools.r8.graph.DexDebugInfo) -> a
    boolean add(com.android.tools.r8.graph.DexEncodedArray) -> a
    boolean add(com.android.tools.r8.graph.DexProgramClass) -> a
    boolean add(com.android.tools.r8.graph.DexTypeList) -> a
    boolean add(com.android.tools.r8.graph.ParameterAnnotationsList) -> a
    boolean setAnnotationsDirectoryForClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotationDirectory) -> a
    1:1:com.android.tools.r8.dex.MethodToCodeObjectMapping com.android.tools.r8.dex.MethodToCodeObjectMapping.fromMethodBacking():21:21 -> a
    1:1:void visit(com.android.tools.r8.graph.DexEncodedMethod):63 -> a
    2:2:void visit(com.android.tools.r8.graph.DexEncodedMethod):62:62 -> a
com.android.tools.r8.dex.ResourceAdapter -> com.android.tools.r8.dex.M:
    com.android.tools.r8.naming.NamingLens namingLense -> c
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.GraphLense graphLense -> b
    com.android.tools.r8.utils.InternalOptions options -> d
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> a
    1:1:void <clinit>():30:30 -> <clinit>
    1:6:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):43:48 -> <init>
    1:1:com.android.tools.r8.graph.DexItemFactory access$000(com.android.tools.r8.dex.ResourceAdapter):30:30 -> a
    2:7:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):53:58 -> a
    8:14:java.lang.String adaptFileName(com.android.tools.r8.DataEntryResource):102:108 -> a
    8:14:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):59 -> a
    15:23:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):60:68 -> a
    24:32:byte[] adaptFileContents(com.android.tools.r8.DataEntryResource):122:130 -> a
    24:32:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):69 -> a
    33:45:byte[] adaptFileContents(com.android.tools.r8.DataEntryResource):122:134 -> a
    33:45:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):69 -> a
    46:47:byte[] adaptFileContents(com.android.tools.r8.DataEntryResource):131:132 -> a
    46:47:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):69 -> a
    48:48:byte[] adaptFileContents(com.android.tools.r8.DataEntryResource):131:131 -> a
    48:48:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):69 -> a
    49:53:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):76:80 -> a
    54:56:com.android.tools.r8.DataDirectoryResource adaptIfNeeded(com.android.tools.r8.DataDirectoryResource):88:90 -> a
    57:61:java.lang.String adaptDirectoryName(com.android.tools.r8.DataDirectoryResource):112:116 -> a
    57:61:com.android.tools.r8.DataDirectoryResource adaptIfNeeded(com.android.tools.r8.DataDirectoryResource):93 -> a
    62:62:com.android.tools.r8.DataDirectoryResource adaptIfNeeded(com.android.tools.r8.DataDirectoryResource):93:93 -> a
    1:1:com.android.tools.r8.graph.GraphLense access$100(com.android.tools.r8.dex.ResourceAdapter):30:30 -> b
    1:1:com.android.tools.r8.naming.NamingLens access$200(com.android.tools.r8.dex.ResourceAdapter):30:30 -> c
com.android.tools.r8.dex.ResourceAdapter$DefaultFileNameAdapter -> com.android.tools.r8.dex.G:
    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):408:408 -> <init>
    1:1:boolean com.android.tools.r8.dex.ResourceAdapter$StringAdapter.eof(int):335:335 -> b
    1:1:boolean isRenamingCandidate(int,int):413 -> b
com.android.tools.r8.dex.ResourceAdapter$DirectoryNameAdapter -> com.android.tools.r8.dex.H:
    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):440:440 -> <init>
    boolean isRenamingCandidate(int,int) -> b
com.android.tools.r8.dex.ResourceAdapter$FileContentsAdapter -> com.android.tools.r8.dex.I:
    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):342:342 -> <init>
    boolean allowRenamingOfPrefixes() -> a
    1:1:boolean shouldRecordPrefix(char):357:357 -> a
    2:2:boolean handlePrefix(int,int):362:362 -> a
    char getClassNameSeparator() -> b
    1:1:boolean isRenamingCandidate(int,int):368:368 -> b
    2:2:boolean com.android.tools.r8.dex.ResourceAdapter$StringAdapter.eof(int):335:335 -> b
    2:2:boolean isRenamingCandidate(int,int):369 -> b
    3:3:boolean isRenamingCandidate(int,int):369:369 -> b
com.android.tools.r8.dex.ResourceAdapter$FileNameAdapter -> com.android.tools.r8.dex.J:
    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):379:379 -> <init>
    boolean allowRenamingOfPrefixes() -> a
    1:1:boolean com.android.tools.r8.dex.ResourceAdapter$StringAdapter.eof(int):335:335 -> a
    1:1:boolean handlePrefix(int,int):399 -> a
    2:5:boolean handlePrefix(int,int):399:402 -> a
    6:6:boolean handlePrefix(int,int):400:400 -> a
    7:7:boolean shouldRecordPrefix(char):394:394 -> a
    char getClassNameSeparator() -> b
com.android.tools.r8.dex.ResourceAdapter$ServiceFileNameAdapter -> com.android.tools.r8.dex.K:
    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):419:419 -> <init>
    boolean allowRenamingOfPrefixes() -> a
    char getClassNameSeparator() -> b
    1:1:boolean com.android.tools.r8.dex.ResourceAdapter$StringAdapter.eof(int):335:335 -> b
    1:1:boolean isRenamingCandidate(int,int):434 -> b
com.android.tools.r8.dex.ResourceAdapter$StringAdapter -> com.android.tools.r8.dex.L:
    java.lang.StringBuilder result -> b
    java.lang.String contents -> a
    int outputFrom -> d
    com.android.tools.r8.dex.ResourceAdapter this$0 -> g
    boolean $assertionsDisabled -> h
    int position -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntStack prefixEndPositionsExclusive -> f
    boolean changed -> c
    1:1:void <clinit>():141:141 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):164:164 -> <init>
    2:24:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):144:166 -> <init>
    boolean allowRenamingOfPrefixes() -> a
    boolean handlePrefix(int,int) -> a
    boolean shouldRecordPrefix(char) -> a
    1:1:boolean eof(int):335:335 -> a
    char getClassNameSeparator() -> b
    boolean isRenamingCandidate(int,int) -> b
    1:2:java.lang.String getResult():188:189 -> c
    3:3:void outputRangeFromInput(int,int):322:322 -> c
    1:10:boolean renameJavaPackageInRange(int,int):292:301 -> d
    11:11:void outputJavaType(java.lang.String):327:327 -> d
    11:11:boolean renameJavaPackageInRange(int,int):299 -> d
    12:13:boolean renameJavaPackageInRange(int,int):303:304 -> d
    14:14:boolean eof():331:331 -> d
    14:14:void handleMisc():194 -> d
    14:14:boolean run():171 -> d
    15:16:void handleMisc():194:195 -> d
    15:16:boolean run():171 -> d
    17:17:boolean eof():331:331 -> d
    17:17:void handleJavaType():202 -> d
    17:17:boolean run():172 -> d
    18:21:void handleJavaType():206:209 -> d
    18:21:boolean run():172 -> d
    22:22:boolean eof():331:331 -> d
    22:22:void handleJavaType():210 -> d
    22:22:boolean run():172 -> d
    23:28:void handleJavaType():211:216 -> d
    23:28:boolean run():172 -> d
    29:29:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.push(int):487:487 -> d
    29:29:void handleJavaType():216 -> d
    29:29:boolean run():172 -> d
    30:40:void handleJavaType():218:228 -> d
    30:40:boolean run():172 -> d
    41:41:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.push(int):487:487 -> d
    41:41:void handleJavaType():228 -> d
    41:41:boolean run():172 -> d
    42:50:void handleJavaType():231:239 -> d
    42:50:boolean run():172 -> d
    51:51:boolean eof():331:331 -> d
    51:51:void handleJavaType():239 -> d
    51:51:boolean run():172 -> d
    52:53:void handleJavaType():239:240 -> d
    52:53:boolean run():172 -> d
    54:54:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.push(int):487:487 -> d
    54:54:void handleJavaType():240 -> d
    54:54:boolean run():172 -> d
    55:59:void handleJavaType():243:247 -> d
    55:59:boolean run():172 -> d
    60:61:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.popInt():492:493 -> d
    60:61:void handleJavaType():247 -> d
    60:61:boolean run():172 -> d
    62:63:void handleJavaType():248:249 -> d
    62:63:boolean run():172 -> d
    64:64:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.popInt():492:492 -> d
    64:64:void handleJavaType():247 -> d
    64:64:boolean run():172 -> d
    65:67:void handleJavaType():253:255 -> d
    65:67:boolean run():172 -> d
    68:69:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.popInt():492:493 -> d
    68:69:void handleJavaType():255 -> d
    68:69:boolean run():172 -> d
    70:70:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.popInt():492:492 -> d
    70:70:void handleJavaType():255 -> d
    70:70:boolean run():172 -> d
    71:71:boolean eof():331:331 -> d
    71:71:boolean run():173 -> d
    72:82:boolean run():174:184 -> d
    1:7:boolean renameJavaTypeInRange(int,int):262:268 -> e
    8:21:boolean renameJavaTypeInRange(int,int):267:280 -> e
    22:22:void outputJavaType(java.lang.String):327:327 -> e
    22:22:boolean renameJavaTypeInRange(int,int):278 -> e
    23:24:boolean renameJavaTypeInRange(int,int):282:283 -> e
com.android.tools.r8.dex.VDexParser -> com.android.tools.r8.dex.N:
    java.util.List dexFiles -> b
    com.android.tools.r8.dex.VDexReader vDexReader -> a
    1:1:void <init>(com.android.tools.r8.dex.VDexReader):26:26 -> <init>
    2:12:void <init>(com.android.tools.r8.dex.VDexReader):19:29 -> <init>
    1:1:java.util.List getDexFiles():33:33 -> a
    1:12:void parseDexFiles():37:48 -> b
    13:14:byte[] com.android.tools.r8.dex.BinaryReader.getByteArray(int):38:39 -> b
    13:14:void parseDexFiles():48 -> b
    15:15:void parseDexFiles():48:48 -> b
    16:16:byte[] com.android.tools.r8.dex.BinaryReader.getByteArray(int):38:38 -> b
    16:16:void parseDexFiles():48 -> b
    17:17:void parseDexFiles():53:53 -> b
    18:18:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
    18:18:void parseDexFiles():53 -> b
    19:19:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> b
    19:19:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> b
    19:19:void parseDexFiles():53 -> b
    20:20:void parseDexFiles():53:53 -> b
com.android.tools.r8.dex.VDexReader -> com.android.tools.r8.dex.O:
    boolean $assertionsDisabled -> e
    int version -> d
    1:1:void <clinit>():22:22 -> <clinit>
    1:4:void <init>(com.android.tools.r8.origin.Origin,java.io.InputStream):27:30 -> <init>
    1:3:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):41:43 -> a
    4:4:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    4:4:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):43 -> a
    5:13:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):43:51 -> a
    14:14:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):49:49 -> a
    15:15:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    15:15:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):49 -> a
    16:28:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):49:61 -> a
    29:29:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    29:29:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):61 -> a
    30:30:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):61:61 -> a
    31:31:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):54:54 -> a
    32:32:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    32:32:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):54 -> a
    33:33:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):54:54 -> a
    int firstDexOffset(int) -> c
    boolean supportedVersion(int) -> d
    1:13:void setByteOrder():75:87 -> g
    14:14:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> g
    14:14:void setByteOrder():87 -> g
    15:15:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> g
    15:15:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> g
    15:15:void setByteOrder():87 -> g
    16:16:void setByteOrder():87:87 -> g
com.android.tools.r8.dex.VirtualFile -> com.android.tools.r8.dex.P:
    com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection indexedItems -> b
    boolean $assertionsDisabled -> f
    com.android.tools.r8.dex.VirtualFile$IndexedItemTransaction transaction -> c
    com.android.tools.r8.graph.DexProgramClass primaryClass -> e
    com.android.tools.r8.FeatureSplit featureSplit -> d
    int id -> a
    1:1:void <clinit>():51:51 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.dex.VirtualFile$1):51:51 -> <init>
    2:2:void <init>(int,com.android.tools.r8.naming.NamingLens):79:79 -> <init>
    3:3:void <init>(int,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.FeatureSplit):83:83 -> <init>
    4:4:void <init>(int,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass):87:87 -> <init>
    5:10:void <init>(int,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.FeatureSplit):91:96 -> <init>
    1:1:java.util.Map access$1000(java.util.Collection,com.android.tools.r8.naming.ClassNameMapper):51:51 -> a
    2:2:com.android.tools.r8.dex.VirtualFile$IndexedItemTransaction access$1100(com.android.tools.r8.dex.VirtualFile):51:51 -> a
    3:21:java.lang.String deriveCommonPrefixAndSanityCheck(java.util.List):121:139 -> a
    22:22:java.lang.String deriveCommonPrefixAndSanityCheck(java.util.List):134:134 -> a
    23:23:java.lang.String deriveCommonPrefixAndSanityCheck(java.util.List):131:131 -> a
    24:24:java.lang.String deriveCommonPrefixAndSanityCheck(java.util.List):124:124 -> a
    25:25:void injectString(com.android.tools.r8.graph.DexString):146:146 -> a
    26:26:void commitTransaction():230:230 -> a
    26:26:void injectString(com.android.tools.r8.graph.DexString):147 -> a
    27:28:void lambda$computeOriginalNameMapping$0(java.util.Map,com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.graph.DexProgramClass):155:156 -> a
    29:29:void lambda$computeOriginalNameMapping$0(java.util.Map,com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.graph.DexProgramClass):155:155 -> a
    30:35:java.lang.String extractPrefixToken(int,java.lang.String,boolean):167:172 -> a
    30:35:java.lang.String access$1300(int,java.lang.String,boolean):51 -> a
    36:46:com.android.tools.r8.graph.ObjectToOffsetMapping computeMapping(com.android.tools.r8.graph.DexApplication):178:188 -> a
    47:47:void addClass(com.android.tools.r8.graph.DexProgramClass):192:192 -> a
    48:48:void com.android.tools.r8.dex.VirtualFile$IndexedItemTransaction.addClassAndDependencies(com.android.tools.r8.graph.DexProgramClass):644:644 -> a
    48:48:void addClass(com.android.tools.r8.graph.DexProgramClass):192 -> a
    49:50:boolean isFull(int):196:197 -> a
    51:51:boolean isFull():201:201 -> a
    51:51:void throwIfFull(boolean,com.android.tools.r8.utils.Reporter):213 -> a
    52:54:void throwIfFull(boolean,com.android.tools.r8.utils.Reporter):216:218 -> a
    55:57:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
    55:57:void throwIfFull(boolean,com.android.tools.r8.utils.Reporter):216 -> a
    58:58:boolean isFilledEnough(com.android.tools.r8.dex.VirtualFile$FillStrategy):222:222 -> a
    58:58:boolean access$1500(com.android.tools.r8.dex.VirtualFile,com.android.tools.r8.dex.VirtualFile$FillStrategy):51 -> a
    59:59:void abortTransaction():226:226 -> a
    1:1:int access$1200(com.android.tools.r8.dex.VirtualFile):51:51 -> b
    2:3:java.util.Map computeOriginalNameMapping(java.util.Collection,com.android.tools.r8.naming.ClassNameMapper):152:153 -> b
    4:4:java.util.Collection classes():238:238 -> b
    1:1:void commitTransaction():230:230 -> c
    1:4:java.util.Set getClassDescriptors():104:107 -> d
    1:1:com.android.tools.r8.FeatureSplit getFeatureSplit():113:113 -> e
    1:1:int getId():100:100 -> f
    1:1:int getNumberOfFields():209:209 -> g
    1:1:int getNumberOfMethods():205:205 -> h
    1:1:java.lang.String getPrimaryClassDescriptor():117:117 -> i
    1:1:boolean isEmpty():234:234 -> j
com.android.tools.r8.dex.VirtualFile$1 -> com.android.tools.r8.dex.P$a:
com.android.tools.r8.dex.VirtualFile$Distributor -> com.android.tools.r8.dex.P$b:
    com.android.tools.r8.graph.DexApplication application -> a
    java.util.List virtualFiles -> c
    com.android.tools.r8.dex.ApplicationWriter writer -> b
    1:1:void <init>(com.android.tools.r8.dex.ApplicationWriter):246:246 -> <init>
    2:6:void <init>(com.android.tools.r8.dex.ApplicationWriter):244:248 -> <init>
    java.util.Collection run() -> a
com.android.tools.r8.dex.VirtualFile$DistributorBase -> com.android.tools.r8.dex.P$c:
    com.android.tools.r8.dex.VirtualFile mainDexFile -> f
    java.util.Set classes -> d
    boolean $assertionsDisabled -> h
    com.android.tools.r8.utils.InternalOptions options -> g
    java.util.Map originalNames -> e
    1:1:void <clinit>():298:298 -> <clinit>
    1:11:void <init>(com.android.tools.r8.dex.ApplicationWriter,com.android.tools.r8.utils.InternalOptions):305:315 -> <init>
    1:5:void addMarkers(com.android.tools.r8.dex.VirtualFile):319:323 -> a
    6:32:java.util.TreeSet sortClassesByPackage(java.util.Set,java.util.Map):363:389 -> a
    33:55:int lambda$sortClassesByPackage$0(java.util.Map,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):365:387 -> a
    56:79:void addFeatureSplitFiles(java.util.Map,com.android.tools.r8.dex.VirtualFile$FillStrategy):418:441 -> a
    1:8:java.util.Map removeFeatureSplitClassesGetMapping():394:401 -> b
    9:13:java.util.Map removeFeatureSplitClassesGetMapping():400:404 -> b
com.android.tools.r8.dex.VirtualFile$FilePerInputClassDistributor -> com.android.tools.r8.dex.P$d:
    boolean combineSyntheticClassesWithPrimaryClass -> d
    1:2:void <init>(com.android.tools.r8.dex.ApplicationWriter,boolean):265:266 -> <init>
    1:14:java.util.Collection run():271:284 -> a
    15:33:java.util.Collection run():276:294 -> a
com.android.tools.r8.dex.VirtualFile$FillFilesDistributor -> com.android.tools.r8.dex.P$e:
    com.android.tools.r8.dex.VirtualFile$FillStrategy fillStrategy -> i
    java.util.concurrent.ExecutorService executorService -> j
    boolean $assertionsDisabled -> k
    1:1:void <clinit>():446:446 -> <clinit>
    1:3:void <init>(com.android.tools.r8.dex.ApplicationWriter,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):452:454 -> <init>
    1:3:java.util.Collection run():459:461 -> a
    4:17:void com.android.tools.r8.dex.VirtualFile$DistributorBase.fillForMainDexList(java.util.Set):328:341 -> a
    4:17:java.util.Collection run():461 -> a
    18:30:void com.android.tools.r8.dex.VirtualFile$DistributorBase.fillForMainDexList(java.util.Set):338:350 -> a
    18:30:java.util.Collection run():461 -> a
    31:36:void com.android.tools.r8.dex.VirtualFile$DistributorBase.fillForMainDexList(java.util.Set):348:353 -> a
    31:36:java.util.Collection run():461 -> a
    37:41:void com.android.tools.r8.dex.VirtualFile$DistributorBase.fillForMainDexList(java.util.Set):351:355 -> a
    37:41:java.util.Collection run():461 -> a
    42:45:void com.android.tools.r8.dex.VirtualFile$DistributorBase.fillForMainDexList(java.util.Set):354:357 -> a
    42:45:java.util.Collection run():461 -> a
    46:82:java.util.Collection run():462:498 -> a
    1:1:int lambda$run$0(com.android.tools.r8.dex.VirtualFile):497:497 -> b
com.android.tools.r8.dex.VirtualFile$FillStrategy -> com.android.tools.r8.dex.P$f:
    com.android.tools.r8.dex.VirtualFile$FillStrategy FILL_MAX -> a
    com.android.tools.r8.dex.VirtualFile$FillStrategy LEAVE_SPACE_FOR_GROWTH -> b
    1:4:void <clinit>():56:59 -> <clinit>
    1:1:void <init>(java.lang.String,int):54:54 -> <init>
com.android.tools.r8.dex.VirtualFile$IndexedItemTransaction -> com.android.tools.r8.dex.P$g:
    java.util.Set protos -> g
    java.util.Set strings -> h
    java.util.Set callSites -> i
    java.util.Set methodHandles -> j
    com.android.tools.r8.naming.NamingLens namingLens -> b
    java.util.Set classes -> c
    com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection base -> a
    java.util.Set fields -> d
    boolean $assertionsDisabled -> k
    java.util.Set methods -> e
    java.util.Set types -> f
    1:1:void <clinit>():615:615 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.dex.VirtualFile$1):615:615 -> <init>
    2:2:void <init>(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection,com.android.tools.r8.naming.NamingLens):630:630 -> <init>
    3:15:void <init>(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection,com.android.tools.r8.naming.NamingLens):620:632 -> <init>
    1:1:java.util.Set access$1400(com.android.tools.r8.dex.VirtualFile$IndexedItemTransaction):615:615 -> a
    2:5:boolean maybeInsert(com.android.tools.r8.graph.DexItem,java.util.Set,java.util.Set):636:639 -> a
    6:10:void commitItemsIn(java.util.Set,java.util.function.Function):712:716 -> a
    11:12:void lambda$commitItemsIn$0(java.util.function.Function,com.android.tools.r8.graph.DexItem):713:714 -> a
    13:18:void abort():731:736 -> a
    1:1:boolean addCallSite(com.android.tools.r8.graph.DexCallSite):679:679 -> addCallSite
    1:1:boolean addClass(com.android.tools.r8.graph.DexProgramClass):649:649 -> addClass
    1:1:boolean addField(com.android.tools.r8.graph.DexField):654:654 -> addField
    1:1:boolean addMethod(com.android.tools.r8.graph.DexMethod):659:659 -> addMethod
    1:1:boolean addMethodHandle(com.android.tools.r8.graph.DexMethodHandle):684:684 -> addMethodHandle
    1:1:boolean addProto(com.android.tools.r8.graph.DexProto):669:669 -> addProto
    1:1:boolean addString(com.android.tools.r8.graph.DexString):664:664 -> addString
    1:1:boolean addType(com.android.tools.r8.graph.DexType):674:674 -> addType
    1:8:void commit():720:727 -> b
    1:1:int getNumberOfClasses():745:745 -> c
    1:1:int getNumberOfFields():708:708 -> d
    1:1:int getNumberOfMethods():704:704 -> e
    1:2:boolean isEmpty():740:741 -> f
    1:1:com.android.tools.r8.graph.DexString getRenamedDescriptor(com.android.tools.r8.graph.DexType):689:689 -> getRenamedDescriptor
    1:2:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexMethod):694:695 -> getRenamedName
    3:3:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexField):700:700 -> getRenamedName
com.android.tools.r8.dex.VirtualFile$MonoDexDistributor -> com.android.tools.r8.dex.P$h:
    1:1:void <init>(com.android.tools.r8.dex.ApplicationWriter,com.android.tools.r8.utils.InternalOptions):504:504 -> <init>
    1:9:java.util.Collection run():510:518 -> a
    10:10:void com.android.tools.r8.dex.VirtualFile$DistributorBase.addFeatureSplitFiles(java.util.Map):412:412 -> a
    10:10:java.util.Collection run():520 -> a
    11:11:java.util.Collection run():523:523 -> a
com.android.tools.r8.dex.VirtualFile$PackageSplitPopulator -> com.android.tools.r8.dex.P$i:
    java.util.List classes -> a
    java.util.Map originalNames -> b
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
    com.android.tools.r8.dex.VirtualFile$FillStrategy fillStrategy -> d
    boolean $assertionsDisabled -> f
    com.android.tools.r8.dex.VirtualFile$VirtualFileCycler cycler -> e
    1:1:void <clinit>():851:851 -> <clinit>
    1:6:void <init>(java.util.List,java.util.Set,java.util.Map,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.dex.VirtualFile$FillStrategy,int,com.android.tools.r8.naming.NamingLens):878:883 -> <init>
    1:5:java.util.Map call():908:912 -> a
    6:6:java.lang.String getOriginalName(com.android.tools.r8.graph.DexProgramClass):899:899 -> a
    6:6:java.util.Map call():913 -> a
    7:11:boolean coveredByPrefix(java.lang.String,java.lang.String):890:894 -> a
    7:11:java.util.Map call():914 -> a
    12:50:java.util.Map call():916:954 -> a
    51:51:boolean com.android.tools.r8.dex.VirtualFile.isFilledEnough(com.android.tools.r8.dex.VirtualFile$FillStrategy):222:222 -> a
    51:51:boolean com.android.tools.r8.dex.VirtualFile.access$1500(com.android.tools.r8.dex.VirtualFile,com.android.tools.r8.dex.VirtualFile$FillStrategy):51 -> a
    51:51:java.util.Map call():954 -> a
    52:52:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> a
    52:52:java.util.Map call():954 -> a
    53:82:java.util.Map call():955:984 -> a
    83:128:java.util.Map call():948:993 -> a
    129:136:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1000:1007 -> a
    129:136:java.util.Map call():993 -> a
    137:137:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> a
    137:137:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1008 -> a
    137:137:java.util.Map call():993 -> a
    138:141:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1010:1013 -> a
    138:141:java.util.Map call():993 -> a
    142:142:boolean com.android.tools.r8.dex.VirtualFile.isFull():201:201 -> a
    142:142:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1014 -> a
    142:142:java.util.Map call():993 -> a
    143:147:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):1015:1019 -> a
    143:147:java.util.Map call():993 -> a
    148:151:com.android.tools.r8.dex.VirtualFile getVirtualFile(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler):1025:1028 -> a
    1:1:java.lang.Object call():851:851 -> call
com.android.tools.r8.dex.VirtualFile$VirtualFileCycler -> com.android.tools.r8.dex.P$j:
    java.util.Iterator allFilesCyclic -> d
    java.util.List files -> a
    com.android.tools.r8.FeatureSplit featuresplit -> f
    java.util.Iterator activeFiles -> e
    com.android.tools.r8.naming.NamingLens namingLens -> b
    boolean $assertionsDisabled -> g
    int nextFileId -> c
    1:1:void <clinit>():760:760 -> <clinit>
    1:10:void <init>(java.util.List,com.android.tools.r8.naming.NamingLens,int):770:779 -> <init>
    1:1:boolean hasNext():788:788 -> a
    1:1:com.android.tools.r8.dex.VirtualFile nextOrCreate():799 -> a
    1:1:com.android.tools.r8.dex.VirtualFile nextOrCreate(java.util.function.Predicate):817 -> a
    2:6:com.android.tools.r8.dex.VirtualFile nextOrCreate():800:804 -> a
    2:6:com.android.tools.r8.dex.VirtualFile nextOrCreate(java.util.function.Predicate):817 -> a
    7:10:com.android.tools.r8.dex.VirtualFile nextOrCreate(java.util.function.Predicate):818:821 -> a
    11:14:com.android.tools.r8.dex.VirtualFile addFile():833:836 -> a
    1:1:boolean hasNext():788:788 -> b
    1:1:com.android.tools.r8.dex.VirtualFile next():792:792 -> c
    1:2:void reset():783:784 -> d
    1:1:void restart():829:829 -> e
com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection -> com.android.tools.r8.dex.P$k:
    java.util.Set strings -> g
    java.util.Set callSites -> h
    java.util.Set methodHandles -> i
    java.util.Set protos -> c
    boolean $assertionsDisabled -> j
    java.util.Set types -> d
    java.util.Set methods -> e
    com.android.tools.r8.naming.NamingLens namingLens -> a
    java.util.Set fields -> f
    java.util.Set classes -> b
    1:1:void <clinit>():527:527 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.NamingLens):541:541 -> <init>
    2:13:void <init>(com.android.tools.r8.naming.NamingLens):531:542 -> <init>
    1:1:java.util.Set access$100(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):527:527 -> a
    2:2:int getNumberOfFields():591:591 -> a
    1:1:boolean addCallSite(com.android.tools.r8.graph.DexCallSite):578:578 -> addCallSite
    1:1:boolean addClass(com.android.tools.r8.graph.DexProgramClass):548:548 -> addClass
    1:1:boolean addField(com.android.tools.r8.graph.DexField):553:553 -> addField
    1:1:boolean addMethod(com.android.tools.r8.graph.DexMethod):558:558 -> addMethod
    1:1:boolean addMethodHandle(com.android.tools.r8.graph.DexMethodHandle):583:583 -> addMethodHandle
    1:1:boolean addProto(com.android.tools.r8.graph.DexProto):568:568 -> addProto
    1:1:boolean addString(com.android.tools.r8.graph.DexString):563:563 -> addString
    1:1:boolean addType(com.android.tools.r8.graph.DexType):573:573 -> addType
    1:1:java.util.Set access$200(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):527:527 -> b
    2:2:int getNumberOfMethods():587:587 -> b
    1:1:java.util.Set access$300(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):527:527 -> c
    1:1:java.util.Set access$400(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):527:527 -> d
    1:1:java.util.Set access$500(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):527:527 -> e
    1:1:java.util.Set access$600(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):527:527 -> f
    1:1:java.util.Set access$700(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):527:527 -> g
    1:1:com.android.tools.r8.graph.DexString getRenamedDescriptor(com.android.tools.r8.graph.DexType):600:600 -> getRenamedDescriptor
    1:2:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexMethod):605:606 -> getRenamedName
    3:3:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexField):611:611 -> getRenamedName
    1:1:java.util.Set access$800(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):527:527 -> h
com.android.tools.r8.dexfilemerger.DexFileMerger -> com.android.tools.r8.dexfilemerger.DexFileMerger:
    1:40:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):107:146 -> a
    1:40:void run(java.lang.String[]):312 -> a
    41:51:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy.parse(java.lang.String):78:88 -> a
    41:51:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):148 -> a
    41:51:void run(java.lang.String[]):312 -> a
    52:52:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy.parse(java.lang.String):86:86 -> a
    52:52:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):148 -> a
    52:52:void run(java.lang.String[]):312 -> a
    53:53:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy.parse(java.lang.String):84:84 -> a
    53:53:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):148 -> a
    53:53:void run(java.lang.String[]):312 -> a
    54:54:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy.parse(java.lang.String):82:82 -> a
    54:54:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):148 -> a
    54:54:void run(java.lang.String[]):312 -> a
    55:55:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy.parse(java.lang.String):80:80 -> a
    55:55:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):148 -> a
    55:55:void run(java.lang.String[]):312 -> a
    56:96:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):148:188 -> a
    56:96:void run(java.lang.String[]):312 -> a
    97:97:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):134:134 -> a
    97:97:void run(java.lang.String[]):312 -> a
    98:107:void run(java.lang.String[]):314:323 -> a
    108:116:boolean com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy.isMultidexAllowed():66:74 -> a
    108:116:void run(java.lang.String[]):323 -> a
    117:125:void run(java.lang.String[]):324:332 -> a
    126:163:void run(java.lang.String[]):325:362 -> a
    164:167:void run(java.lang.String[]):352:355 -> a
    168:176:int parseFileIndexFromShardFilename(java.lang.String):295:303 -> a
    168:176:void run(java.lang.String[]):355 -> a
    177:177:void run(java.lang.String[]):355:355 -> a
    178:179:int parseFileIndexFromShardFilename(java.lang.String):305:306 -> a
    178:179:void run(java.lang.String[]):355 -> a
    180:181:int parseFileIndexFromShardFilename(java.lang.String):299:300 -> a
    180:181:void run(java.lang.String[]):355 -> a
    182:182:void run(java.lang.String[]):353:353 -> a
    183:214:void run(java.lang.String[]):349:380 -> a
    215:215:void run(java.lang.String[]):315:315 -> a
    1:4:void main(java.lang.String[]):389:392 -> main
com.android.tools.r8.dexfilemerger.DexFileMerger$1 -> com.android.tools.r8.dexfilemerger.DexFileMerger$a:
com.android.tools.r8.dexfilemerger.DexFileMerger$ArchiveConsumer -> com.android.tools.r8.dexfilemerger.DexFileMerger$b:
    java.lang.Integer singleFixedFileIndex -> c
    java.util.zip.ZipOutputStream stream -> e
    com.android.tools.r8.origin.Origin origin -> d
    int highestIndexWritten -> f
    boolean hasWrittenSomething -> h
    java.nio.file.Path path -> a
    java.lang.String prefix -> b
    java.util.Map writers -> g
    1:1:void <init>(java.nio.file.Path,java.lang.String,java.lang.Integer,com.android.tools.r8.dexfilemerger.DexFileMerger$1):198:198 -> <init>
    2:2:void <init>(java.nio.file.Path,java.lang.String,java.lang.Integer):210:210 -> <init>
    3:14:void <init>(java.nio.file.Path,java.lang.String,java.lang.Integer):203:214 -> <init>
    1:1:boolean hasWrittenSomething():218:218 -> a
    1:1:boolean access$200(com.android.tools.r8.dexfilemerger.DexFileMerger$ArchiveConsumer):198 -> a
    2:12:java.util.zip.ZipOutputStream getStream(com.android.tools.r8.DiagnosticsHandler):248:258 -> a
    13:13:void writeEntry(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):265:265 -> a
    13:13:void lambda$accept$0(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):237 -> a
    14:17:java.lang.String getDexFileName(int):222:225 -> a
    14:17:void writeEntry(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):266 -> a
    14:17:void lambda$accept$0(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):237 -> a
    18:18:void writeEntry(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):267:267 -> a
    18:18:void lambda$accept$0(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):237 -> a
    19:26:void writeEntry(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):264:271 -> a
    19:26:void lambda$accept$0(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):237 -> a
    1:12:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):231:242 -> accept
    1:13:void finished(com.android.tools.r8.DiagnosticsHandler):277:289 -> finished
com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy -> com.android.tools.r8.dexfilemerger.DexFileMerger$c:
    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy MINIMAL -> c
    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy BEST_EFFORT -> d
    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy[] $VALUES -> e
    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy OFF -> a
    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy GIVEN_SHARD -> b
    1:13:void <clinit>():51:63 -> <clinit>
    14:14:void <clinit>():49:49 -> <clinit>
    1:1:void <init>(java.lang.String,int):49:49 -> <init>
com.android.tools.r8.dexfilemerger.DexFileMerger$Options -> com.android.tools.r8.dexfilemerger.DexFileMerger$d:
    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy multidexMode -> c
    java.util.List inputArchives -> a
    java.lang.String dexPrefix -> f
    boolean minimalMainDex -> e
    java.lang.String outputArchive -> b
    java.lang.String mainDexListFile -> d
    1:8:void <init>():94:101 -> <init>
    9:9:void <init>(com.android.tools.r8.dexfilemerger.DexFileMerger$1):94:94 -> <init>
com.android.tools.r8.dexsplitter.DexSplitter -> com.android.tools.r8.dexsplitter.DexSplitter:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():36:36 -> <clinit>
    1:1:void <init>():37:37 -> <init>
    1:6:com.android.tools.r8.dexsplitter.DexSplitter$FeatureJar parseFeatureJarArgument(java.lang.String):201:206 -> a
    1:6:void lambda$parseArguments$0(com.android.tools.r8.dexsplitter.DexSplitter$Options,java.lang.String):222 -> a
    7:11:com.android.tools.r8.dexsplitter.DexSplitter$FeatureJar parseFeatureJarArgument(java.lang.String):204:208 -> a
    7:11:void lambda$parseArguments$0(com.android.tools.r8.dexsplitter.DexSplitter$Options,java.lang.String):222 -> a
    12:12:void lambda$parseArguments$0(com.android.tools.r8.dexsplitter.DexSplitter$Options,java.lang.String):222:222 -> a
    13:14:void run(java.lang.String[]):280:281 -> a
    13:14:void lambda$main$1(java.lang.String[]):362 -> a
    15:16:void lambda$main$1(java.lang.String[]):365:366 -> a
    17:17:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):347:347 -> a
    1:51:com.android.tools.r8.dexsplitter.DexSplitter$Options parseArguments(java.lang.String[]):212:262 -> b
    1:1:void main(java.lang.String[]):359:359 -> main
    1:27:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):287:313 -> run
    28:30:com.android.tools.r8.utils.FeatureClassMapping createFeatureClassMapping(com.android.tools.r8.dexsplitter.DexSplitter$Options):269:271 -> run
    28:30:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):316 -> run
    31:36:com.android.tools.r8.utils.FeatureClassMapping createFeatureClassMapping(com.android.tools.r8.dexsplitter.DexSplitter$Options):270:275 -> run
    31:36:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):316 -> run
    37:37:com.android.tools.r8.utils.FeatureClassMapping createFeatureClassMapping(com.android.tools.r8.dexsplitter.DexSplitter$Options):274:274 -> run
    37:37:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):316 -> run
    38:38:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):319:319 -> run
    39:42:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):318:321 -> run
    43:59:void splitNonClassResources(com.android.tools.r8.dexsplitter.DexSplitter$Options,com.android.tools.r8.utils.FeatureClassMapping):328:344 -> run
    43:59:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):322 -> run
    60:70:void splitNonClassResources(com.android.tools.r8.dexsplitter.DexSplitter$Options,com.android.tools.r8.utils.FeatureClassMapping):337:347 -> run
    60:70:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):322 -> run
    71:91:void splitNonClassResources(com.android.tools.r8.dexsplitter.DexSplitter$Options,com.android.tools.r8.utils.FeatureClassMapping):329:349 -> run
    71:91:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):322 -> run
    92:94:void splitNonClassResources(com.android.tools.r8.dexsplitter.DexSplitter$Options,com.android.tools.r8.utils.FeatureClassMapping):348:350 -> run
    92:94:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):322 -> run
    95:95:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):300:300 -> run
com.android.tools.r8.dexsplitter.DexSplitter$FeatureJar -> com.android.tools.r8.dexsplitter.DexSplitter$a:
    java.lang.String jar -> a
    java.lang.String outputName -> b
    1:3:void <init>(java.lang.String,java.lang.String):48:50 -> <init>
    4:4:void <init>(java.lang.String):54:54 -> <init>
    1:1:java.lang.String getJar():58:58 -> a
    2:5:java.lang.String featureNameFromJar(java.lang.String):66:69 -> a
    1:1:java.lang.String getOutputName():62:62 -> b
com.android.tools.r8.dexsplitter.DexSplitter$Options -> com.android.tools.r8.dexsplitter.DexSplitter$Options:
    java.util.List inputArchives -> b
    java.lang.String featureSplitMapping -> g
    com.android.tools.r8.DiagnosticsHandler diagnosticsHandler -> a
    java.lang.String output -> f
    java.lang.String mainDexList -> i
    java.lang.String proguardMap -> h
    boolean splitNonClassResources -> j
    java.util.List baseJars -> d
    java.util.List featureJars -> c
    java.lang.String baseOutputName -> e
    1:1:void <init>():101:101 -> <init>
    2:2:void <init>(com.android.tools.r8.DiagnosticsHandler):104:104 -> <init>
    3:18:void <init>(com.android.tools.r8.DiagnosticsHandler):90:105 -> <init>
    1:1:com.android.tools.r8.DiagnosticsHandler access$000(com.android.tools.r8.dexsplitter.DexSplitter$Options):88:88 -> a
    2:2:void addFeatureJar(com.android.tools.r8.dexsplitter.DexSplitter$FeatureJar):161:161 -> a
    2:2:void access$300(com.android.tools.r8.dexsplitter.DexSplitter$Options,com.android.tools.r8.dexsplitter.DexSplitter$FeatureJar):88 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList getBaseJars():185:185 -> a
    1:1:void addBaseJar(java.lang.String):157:157 -> addBaseJar
    1:1:void addFeatureJar(java.lang.String):165:165 -> addFeatureJar
    2:2:void addFeatureJar(java.lang.String,java.lang.String):169:169 -> addFeatureJar
    1:1:void addInputArchive(java.lang.String):153:153 -> addInputArchive
    1:1:java.util.List access$100(com.android.tools.r8.dexsplitter.DexSplitter$Options):88:88 -> b
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList getFeatureJars():181:181 -> b
    1:1:boolean access$200(com.android.tools.r8.dexsplitter.DexSplitter$Options):88:88 -> c
    1:1:void error(java.lang.String):190:190 -> error
    1:1:java.lang.String getBaseOutputName():145:145 -> getBaseOutputName
    1:1:com.android.tools.r8.DiagnosticsHandler getDiagnosticsHandler():109:109 -> getDiagnosticsHandler
    1:1:java.lang.String getFeatureSplitMapping():129:129 -> getFeatureSplitMapping
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList getInputArchives():177:177 -> getInputArchives
    1:1:java.lang.String getMainDexList():113:113 -> getMainDexList
    1:1:java.lang.String getOutput():121:121 -> getOutput
    1:1:java.lang.String getProguardMap():137:137 -> getProguardMap
    1:1:void setBaseOutputName(java.lang.String):149:149 -> setBaseOutputName
    1:1:void setFeatureSplitMapping(java.lang.String):133:133 -> setFeatureSplitMapping
    1:1:void setMainDexList(java.lang.String):117:117 -> setMainDexList
    1:1:void setOutput(java.lang.String):125:125 -> setOutput
    1:1:void setProguardMap(java.lang.String):141:141 -> setProguardMap
    1:1:void setSplitNonClassResources(boolean):173:173 -> setSplitNonClassResources
com.android.tools.r8.dexsplitter.DexSplitter$Options$1 -> com.android.tools.r8.dexsplitter.DexSplitter$Options$a:
    1:1:void <init>():101:101 -> <init>
com.android.tools.r8.dexsplitter.DexSplitter$ZipFileOrigin -> com.android.tools.r8.dexsplitter.DexSplitter$b:
    1:1:void <init>(java.nio.file.Path):78:78 -> <init>
    1:1:java.lang.String part():83:83 -> part
com.android.tools.r8.errors.CompilationError -> com.android.tools.r8.errors.a:
    com.android.tools.r8.origin.Origin origin -> a
    com.android.tools.r8.position.Position position -> b
    1:1:void <init>(java.lang.String):22:22 -> <init>
    2:2:void <init>(java.lang.String,java.lang.Throwable):26:26 -> <init>
    3:3:void <init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> <init>
    4:4:void <init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> <init>
    5:7:void <init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):38:40 -> <init>
    1:6:com.android.tools.r8.errors.CompilationError withAdditionalOriginAndPositionInfo(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):44:49 -> a
    7:7:com.android.tools.r8.Diagnostic toStringDiagnostic():56:56 -> a
com.android.tools.r8.errors.DexFileOverflowDiagnostic -> com.android.tools.r8.errors.DexFileOverflowDiagnostic:
    long numOfMethods -> b
    long numOfFields -> c
    boolean hasMainDexSpecification -> a
    1:4:void <init>(boolean,long,long):26:29 -> <init>
    1:26:java.lang.String getDiagnosticMessage():71:96 -> getDiagnosticMessage
    1:1:long getNumberOfFields():34:34 -> getNumberOfFields
    1:1:long getNumberOfMethods():39:39 -> getNumberOfMethods
    1:1:com.android.tools.r8.origin.Origin getOrigin():60:60 -> getOrigin
    1:1:boolean hasMainDexSpecification():54:54 -> hasMainDexSpecification
com.android.tools.r8.errors.DuplicateTypesDiagnostic -> com.android.tools.r8.errors.DuplicateTypesDiagnostic:
    com.android.tools.r8.references.ClassReference type -> a
    java.util.Collection origins -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():15:15 -> <clinit>
    1:5:void <init>(com.android.tools.r8.references.ClassReference,java.util.Collection):21:25 -> <init>
    1:2:java.lang.String getDiagnosticMessage():66:67 -> getDiagnosticMessage
    1:1:com.android.tools.r8.origin.Origin getOrigin():56:56 -> getOrigin
    1:1:java.util.Collection getOrigins():43:43 -> getOrigins
    1:1:com.android.tools.r8.position.Position getPosition():61:61 -> getPosition
    1:1:com.android.tools.r8.references.ClassReference getType():30:30 -> getType
com.android.tools.r8.errors.IncompleteNestNestDesugarDiagnosic -> com.android.tools.r8.errors.IncompleteNestNestDesugarDiagnosic:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String):15:15 -> <init>
com.android.tools.r8.errors.InterfaceDesugarMissingTypeDiagnostic -> com.android.tools.r8.errors.InterfaceDesugarMissingTypeDiagnostic:
    com.android.tools.r8.references.ClassReference implementingContextType -> e
    com.android.tools.r8.origin.Origin origin -> a
    com.android.tools.r8.references.ClassReference missingType -> c
    com.android.tools.r8.position.Position position -> b
    com.android.tools.r8.references.ClassReference contextType -> d
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():14:14 -> <clinit>
    1:11:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,com.android.tools.r8.references.ClassReference,com.android.tools.r8.references.ClassReference,com.android.tools.r8.references.ClassReference):31:41 -> <init>
    1:1:com.android.tools.r8.references.ClassReference getContextType():63:63 -> getContextType
    1:19:java.lang.String getDiagnosticMessage():68:86 -> getDiagnosticMessage
    1:1:com.android.tools.r8.references.ClassReference getMissingType():58:58 -> getMissingType
    1:1:com.android.tools.r8.origin.Origin getOrigin():47:47 -> getOrigin
    1:1:com.android.tools.r8.position.Position getPosition():53:53 -> getPosition
com.android.tools.r8.errors.InternalCompilerError -> com.android.tools.r8.errors.b:
    1:1:void <init>():14:14 -> <init>
    2:2:void <init>(java.lang.String):18:18 -> <init>
    3:3:void <init>(java.lang.String,java.lang.Throwable):22:22 -> <init>
    4:4:void <init>(java.lang.Throwable):26:26 -> <init>
com.android.tools.r8.errors.InvalidDebugInfoException -> com.android.tools.r8.errors.c:
    1:1:void <init>(java.lang.String):8:8 -> <init>
com.android.tools.r8.errors.MissingNestHostNestDesugarDiagnostic -> com.android.tools.r8.errors.MissingNestHostNestDesugarDiagnostic:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String):15:15 -> <init>
com.android.tools.r8.errors.NestDesugarDiagnostic -> com.android.tools.r8.errors.NestDesugarDiagnostic:
    com.android.tools.r8.origin.Origin origin -> a
    com.android.tools.r8.position.Position position -> b
    java.lang.String message -> c
    1:4:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String):18:21 -> <init>
    1:1:java.lang.String getDiagnosticMessage():36:36 -> getDiagnosticMessage
    1:1:com.android.tools.r8.origin.Origin getOrigin():26:26 -> getOrigin
    1:1:com.android.tools.r8.position.Position getPosition():31:31 -> getPosition
com.android.tools.r8.errors.Unimplemented -> com.android.tools.r8.errors.d:
    1:1:void <init>():11:11 -> <init>
    2:2:void <init>(java.lang.String):15:15 -> <init>
com.android.tools.r8.errors.Unreachable -> com.android.tools.r8.errors.e:
    1:1:void <init>():11:11 -> <init>
    2:2:void <init>(java.lang.String):15:15 -> <init>
    3:3:void <init>(java.lang.Throwable):19:19 -> <init>
com.android.tools.r8.experimental.graphinfo.AnnotationGraphNode -> com.android.tools.r8.experimental.graphinfo.AnnotationGraphNode:
    com.android.tools.r8.experimental.graphinfo.GraphNode annotatedNode -> c
    1:2:void <init>(com.android.tools.r8.experimental.graphinfo.GraphNode):14:15 -> <init>
    1:3:boolean equals(java.lang.Object):24:26 -> equals
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getAnnotatedNode():19:19 -> getAnnotatedNode
    1:1:int hashCode():31:31 -> hashCode
    1:1:java.lang.String toString():36:36 -> toString
com.android.tools.r8.experimental.graphinfo.ClassGraphNode -> com.android.tools.r8.experimental.graphinfo.ClassGraphNode:
    com.android.tools.r8.references.ClassReference reference -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():9:9 -> <clinit>
    1:3:void <init>(boolean,com.android.tools.r8.references.ClassReference):15:17 -> <init>
    1:1:boolean equals(java.lang.Object):26:26 -> equals
    1:1:com.android.tools.r8.references.ClassReference getReference():21:21 -> getReference
    1:1:int hashCode():32:32 -> hashCode
    1:1:java.lang.String toString():37:37 -> toString
com.android.tools.r8.experimental.graphinfo.FieldGraphNode -> com.android.tools.r8.experimental.graphinfo.FieldGraphNode:
    com.android.tools.r8.references.FieldReference reference -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():9:9 -> <clinit>
    1:3:void <init>(boolean,com.android.tools.r8.references.FieldReference):15:17 -> <init>
    1:1:boolean equals(java.lang.Object):26:26 -> equals
    1:1:com.android.tools.r8.references.FieldReference getReference():21:21 -> getReference
    1:1:int hashCode():32:32 -> hashCode
    1:1:java.lang.String toString():37:37 -> toString
com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo -> com.android.tools.r8.experimental.graphinfo.a:
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo UNKNOWN -> b
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind kind -> a
    boolean $assertionsDisabled -> c
    1:3:void <clinit>():6:8 -> <clinit>
    1:2:void <init>(com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind):41:42 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():46:46 -> a
    1:40:java.lang.String getInfoPrefix():50:89 -> b
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo unknown():11:11 -> c
    1:1:boolean equals(java.lang.Object):103:103 -> equals
    1:1:int hashCode():108:108 -> hashCode
    1:1:java.lang.String toString():98:98 -> toString
com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind -> com.android.tools.r8.experimental.graphinfo.a$a:
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind[] $VALUES -> u
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind Unknown -> t
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind ReachableFromLiveType -> m
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind ReflectiveUseFrom -> l
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind IsLibraryMethod -> o
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind ReferencedInAnnotation -> n
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind MethodHandleUseFrom -> q
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind OverridingMethod -> p
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind CompanionMethod -> s
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind CompanionClass -> r
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind InstantiatedIn -> e
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind KeepRulePrecondition -> d
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind TargetedBySuper -> g
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind InvokedViaSuper -> f
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind InvokedFromLambdaCreatedIn -> i
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind InvokedFrom -> h
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind ReferencedFrom -> k
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind AnnotatedOn -> j
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind KeepRule -> a
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind ConditionalKeepRule -> c
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind CompatibilityRule -> b
    1:20:void <clinit>():17:36 -> <clinit>
    21:21:void <clinit>():15:15 -> <clinit>
    1:1:void <init>(java.lang.String,int):15:15 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind[] values():15:15 -> a
com.android.tools.r8.experimental.graphinfo.GraphNode -> com.android.tools.r8.experimental.graphinfo.GraphNode:
    boolean isLibraryNode -> a
    com.android.tools.r8.experimental.graphinfo.GraphNode CYCLE -> b
    1:1:void <clinit>():11:11 -> <clinit>
    1:2:void <init>(boolean):31:32 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode cycle():36:36 -> cycle
    1:1:boolean isCycle():40:40 -> isCycle
    1:1:boolean isLibraryNode():44:44 -> isLibraryNode
com.android.tools.r8.experimental.graphinfo.GraphNode$1 -> com.android.tools.r8.experimental.graphinfo.GraphNode$a:
    1:1:void <init>(boolean):12:12 -> <init>
com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode -> com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode:
    com.android.tools.r8.origin.Origin origin -> c
    com.android.tools.r8.position.Position position -> d
    java.util.Set preconditions -> f
    boolean $assertionsDisabled -> g
    java.lang.String content -> e
    1:1:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardKeepRule):28:28 -> <init>
    2:8:void <init>(com.android.tools.r8.shaking.ProguardKeepRuleBase,java.util.Set):32:38 -> <init>
    1:8:boolean equals(java.lang.Object):46:53 -> equals
    1:1:java.lang.String getContent():70:70 -> getContent
    1:1:com.android.tools.r8.origin.Origin getOrigin():62:62 -> getOrigin
    1:1:com.android.tools.r8.position.Position getPosition():66:66 -> getPosition
    1:1:java.util.Set getPreconditions():74:74 -> getPreconditions
    1:1:int hashCode():58:58 -> hashCode
    1:3:java.lang.String toString():85:87 -> toString
    4:12:java.lang.String shortPositionInfo(com.android.tools.r8.position.Position):91:99 -> toString
    4:12:java.lang.String toString():87 -> toString
    13:13:java.lang.String toString():87:87 -> toString
com.android.tools.r8.experimental.graphinfo.MethodGraphNode -> com.android.tools.r8.experimental.graphinfo.MethodGraphNode:
    com.android.tools.r8.references.MethodReference reference -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():9:9 -> <clinit>
    1:3:void <init>(boolean,com.android.tools.r8.references.MethodReference):15:17 -> <init>
    1:1:boolean equals(java.lang.Object):26:26 -> equals
    1:1:com.android.tools.r8.references.MethodReference getReference():21:21 -> getReference
    1:1:int hashCode():32:32 -> hashCode
    1:1:java.lang.String toString():37:37 -> toString
com.android.tools.r8.features.FeatureSplitConfiguration -> com.android.tools.r8.s.a:
    java.util.List featureSplits -> a
    java.util.Map javaTypeToFeatureSplitMapping -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(java.util.List,com.android.tools.r8.utils.Reporter):33:33 -> <init>
    2:13:void <init>(java.util.List,com.android.tools.r8.utils.Reporter):31:42 -> <init>
    14:19:void <init>(java.util.List,com.android.tools.r8.utils.Reporter):41:46 -> <init>
    1:8:java.util.Map getFeatureSplitClasses(java.util.Set,com.android.tools.r8.naming.ClassNameMapper):54:61 -> a
    9:9:java.util.Set lambda$getFeatureSplitClasses$0(com.android.tools.r8.FeatureSplit):61:61 -> a
    10:25:java.util.Collection getDataResourceProvidersAndConsumers():87:102 -> a
    26:27:boolean isInFeature(com.android.tools.r8.graph.DexProgramClass):111:112 -> a
    28:28:boolean isInFeature(com.android.tools.r8.graph.DexProgramClass):111:111 -> a
    29:29:boolean inSameFeatureOrBase(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):116:116 -> a
    30:36:boolean inSameFeatureOrBase(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):120:126 -> a
    30:36:boolean inSameFeatureOrBase(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):116 -> a
    37:40:boolean inSameFeatureOrBase(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):125:128 -> a
    37:40:boolean inSameFeatureOrBase(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):116 -> a
    41:41:boolean inSameFeatureOrBase(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):127:127 -> a
    41:41:boolean inSameFeatureOrBase(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):116 -> a
    1:1:java.util.List getFeatureSplits():132:132 -> b
com.android.tools.r8.features.FeatureSplitConfiguration$DataResourceProvidersAndConsumer -> com.android.tools.r8.s.a$a:
    com.android.tools.r8.DataResourceConsumer consumer -> b
    java.util.Set providers -> a
    1:3:void <init>(java.util.Set,com.android.tools.r8.DataResourceConsumer):72:74 -> <init>
    1:1:com.android.tools.r8.DataResourceConsumer getConsumer():82:82 -> a
    1:1:java.util.Set getProviders():78:78 -> b
com.android.tools.r8.graph.AccessControl -> com.android.tools.r8.graph.a:
    1:1:boolean isClassAccessible(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass):15:15 -> a
    1:1:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):42 -> a
    2:2:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> a
    2:2:boolean isClassAccessible(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass):18 -> a
    2:2:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):42 -> a
    3:3:boolean isClassAccessible(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass):18:18 -> a
    3:3:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):42 -> a
    4:7:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):45:48 -> a
    8:11:boolean isNestMate(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass):64:67 -> a
    8:11:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):49 -> a
    12:12:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> a
    12:12:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):51 -> a
    13:13:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> a
    13:13:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):51 -> a
    14:17:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):51:54 -> a
    18:18:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> a
    18:18:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):57 -> a
    19:19:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> a
    19:19:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):57 -> a
    20:20:boolean isMemberAccessible(com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):57:57 -> a
    21:21:boolean isMethodAccessible(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):26:26 -> a
    22:22:boolean isFieldAccessible(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithSubtyping):34:34 -> a
com.android.tools.r8.graph.AccessFlags -> com.android.tools.r8.graph.b:
    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag[] EMPTY_FLAG -> a
    java.util.List NAMES -> d
    boolean $assertionsDisabled -> e
    int originalFlags -> b
    int modifiedFlags -> c
    1:14:void <clinit>():16:29 -> <clinit>
    1:1:void <init>(int,int):57:57 -> <init>
    2:43:void <init>(int,int):18:59 -> <init>
    1:7:int visibilityOrdinal():136:142 -> A
    1:5:boolean isMoreVisibleThan(com.android.tools.r8.graph.AccessFlags,java.lang.String,java.lang.String):114:118 -> a
    6:6:boolean isVisibilityDependingOnPackage():150:150 -> a
    6:6:boolean isMoreVisibleThan(com.android.tools.r8.graph.AccessFlags,java.lang.String,java.lang.String):119 -> a
    7:7:boolean isMoreVisibleThan(com.android.tools.r8.graph.AccessFlags,java.lang.String,java.lang.String):120:120 -> a
    8:8:boolean isAtLeastAsVisibleAs(com.android.tools.r8.graph.AccessFlags):127:127 -> a
    9:9:boolean isSet(int):254:254 -> a
    10:10:void demote(int):276:276 -> a
    10:10:void demoteFromFinal():233 -> a
    11:24:java.lang.String toStringInternal(boolean):289:302 -> a
    1:1:java.util.List getNames():51:51 -> b
    2:2:boolean isSameVisibility(com.android.tools.r8.graph.AccessFlags):131:131 -> b
    3:3:void promote(int):272:272 -> b
    1:1:int getOriginalAccessFlags():95:95 -> c
    2:3:void set(int):258:259 -> c
    1:1:java.util.List getPredicates():40:40 -> d
    2:3:void unset(int):263:264 -> d
    1:1:boolean isFinal():205:205 -> e
    1:3:boolean equals(java.lang.Object):100:102 -> equals
    1:1:boolean isPrivate():167:167 -> f
    1:1:boolean wasSet(int):250:250 -> g
    1:1:boolean isPromoted(int):268 -> g
    1:1:boolean isPromotedToPublic():237 -> g
    2:2:boolean isSet(int):254:254 -> g
    2:2:boolean isPromoted(int):268 -> g
    2:2:boolean isPromotedToPublic():237 -> g
    1:1:boolean isProtected():180:180 -> h
    1:1:int hashCode():109:109 -> hashCode
    1:1:boolean isPublic():154:154 -> i
    1:1:boolean isStatic():193:193 -> j
    1:1:boolean isSynthetic():217:217 -> k
    1:1:int materialize():67:67 -> l
    1:1:void promoteToFinal():229:229 -> m
    1:1:void demote(int):276:276 -> n
    1:1:void promoteToPublic():241 -> n
    2:2:void promoteToPublic():242:242 -> n
    1:1:void promoteToStatic():246:246 -> o
    1:1:void setFinal():209:209 -> p
    1:2:void setPrivate():171:172 -> q
    1:2:void setProtected():184:185 -> r
    1:2:void setPublic():158:159 -> s
    1:1:void setStatic():197:197 -> t
    1:1:java.lang.String toString():285:285 -> toString
    1:1:void setSynthetic():221:221 -> u
    1:1:java.lang.String toSmaliString():280:280 -> v
    1:1:void unsetPrivate():176:176 -> w
    1:1:void unsetProtected():189:189 -> x
    1:1:void unsetPublic():163:163 -> y
    1:1:void unsetSynthetic():225:225 -> z
com.android.tools.r8.graph.AppInfo -> com.android.tools.r8.graph.c:
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication):42:42 -> <init>
    2:14:void <init>(com.android.tools.r8.graph.DexApplication):32:44 -> <init>
    15:15:void <init>(com.android.tools.r8.graph.AppInfo):47:47 -> <init>
    16:36:void <init>(com.android.tools.r8.graph.AppInfo):32:52 -> <init>
    1:1:com.android.tools.r8.graph.DexItemFactory access$000(com.android.tools.r8.graph.AppInfo):28:28 -> a
    2:8:java.util.Map computeDefinitions(com.android.tools.r8.graph.DexType):105:111 -> a
    9:9:com.android.tools.r8.graph.DexField com.android.tools.r8.graph.DexEncodedField.getKey():115:115 -> a
    9:9:void lambda$computeDefinitions$1(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder,com.android.tools.r8.graph.DexEncodedField):109 -> a
    10:10:void lambda$computeDefinitions$1(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder,com.android.tools.r8.graph.DexEncodedField):109:109 -> a
    11:16:com.android.tools.r8.graph.ResolutionResult resolveMethodOnArray(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):313:318 -> a
    17:17:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):371:371 -> a
    18:24:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.lookupSignaturePolymorphicMethod(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):586:592 -> a
    18:24:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):371 -> a
    25:27:boolean com.android.tools.r8.graph.DexClass.isSignaturePolymorphicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexItemFactory):608:610 -> a
    25:27:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.lookupSignaturePolymorphicMethod(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):599 -> a
    25:27:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):371 -> a
    28:28:boolean com.android.tools.r8.graph.MethodAccessFlags.isVarargs():148:148 -> a
    28:28:boolean com.android.tools.r8.graph.DexClass.isSignaturePolymorphicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexItemFactory):610 -> a
    28:28:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.lookupSignaturePolymorphicMethod(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):599 -> a
    28:28:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):371 -> a
    29:31:boolean com.android.tools.r8.graph.DexClass.isSignaturePolymorphicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexItemFactory):610:612 -> a
    29:31:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.lookupSignaturePolymorphicMethod(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):599 -> a
    29:31:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):371 -> a
    32:51:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):373:392 -> a
    52:59:void resolveMethodStep3Helper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.AppInfo$MaximallySpecificMethodsBuilder):413:420 -> a
    60:60:boolean isMaximallySpecificCandidate(com.android.tools.r8.graph.DexEncodedMethod):444:444 -> a
    60:60:void resolveMethodStep3Helper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.AppInfo$MaximallySpecificMethodsBuilder):421 -> a
    61:71:void resolveMethodStep3Helper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.AppInfo$MaximallySpecificMethodsBuilder):423:433 -> a
    72:72:com.android.tools.r8.graph.DexMethod com.android.tools.r8.graph.DexEncodedMethod.getKey():1168:1168 -> a
    72:72:void lambda$computeDefinitions$0(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder,com.android.tools.r8.graph.DexEncodedMethod):108 -> a
    73:73:void lambda$computeDefinitions$0(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder,com.android.tools.r8.graph.DexEncodedMethod):108:108 -> a
    1:5:void addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass):92:96 -> addSynthesizedClass
    1:2:com.android.tools.r8.graph.DexApplication app():81:82 -> app
    1:7:java.util.Map getDefinitions(com.android.tools.r8.graph.DexType):190:196 -> b
    1:1:boolean checkIfObsolete():76:76 -> checkIfObsolete
    1:2:java.lang.Iterable classes():115:116 -> classes
    1:2:java.lang.Iterable classesWithDeterministicOrder():120:121 -> classesWithDeterministicOrder
    1:1:void copyMetadataFromPrevious(com.android.tools.r8.graph.AppInfo):60:60 -> copyMetadataFromPrevious
    1:9:com.android.tools.r8.graph.DexDefinition definitionFor(com.android.tools.r8.graph.DexReference):126:134 -> definitionFor
    10:16:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):139:145 -> definitionFor
    17:22:com.android.tools.r8.graph.DexEncodedMethod definitionFor(com.android.tools.r8.graph.DexMethod):173:178 -> definitionFor
    23:24:com.android.tools.r8.graph.DexEncodedField definitionFor(com.android.tools.r8.graph.DexField):185:186 -> definitionFor
    1:7:com.android.tools.r8.graph.DexClass definitionForDesugarDependency(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):149:155 -> definitionForDesugarDependency
    8:8:com.android.tools.r8.graph.DexClass definitionForDesugarDependency(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):154:154 -> definitionForDesugarDependency
    1:1:com.android.tools.r8.graph.DexProgramClass definitionForProgramType(com.android.tools.r8.graph.DexType):162:162 -> definitionForProgramType
    1:2:com.android.tools.r8.graph.DexItemFactory dexItemFactory():87:88 -> dexItemFactory
    1:2:java.util.Collection getSynthesizedClassesForSanityCheck():100:101 -> getSynthesizedClassesForSanityCheck
    1:1:boolean hasClassHierarchy():545:545 -> hasClassHierarchy
    1:1:boolean hasLiveness():565:565 -> hasLiveness
    1:1:boolean hasSubtyping():555:555 -> hasSubtyping
    1:1:void invalidateTypeCacheFor(com.android.tools.r8.graph.DexType):201:201 -> invalidateTypeCacheFor
    1:2:boolean isInMainDexList(com.android.tools.r8.graph.DexType):575:576 -> isInMainDexList
    1:1:boolean isObsolete():64:64 -> isObsolete
    1:1:com.android.tools.r8.graph.DexEncodedMethod lookupDirectTargetOnItself(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):244:244 -> lookupDirectTargetOnItself
    2:6:com.android.tools.r8.graph.DexEncodedMethod lookupDirectTargetOnItself(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass):249:253 -> lookupDirectTargetOnItself
    1:1:com.android.tools.r8.graph.DexEncodedMethod lookupStaticTargetOnItself(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):220:220 -> lookupStaticTargetOnItself
    2:6:com.android.tools.r8.graph.DexEncodedMethod lookupStaticTargetOnItself(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass):225:229 -> lookupStaticTargetOnItself
    1:1:void markObsolete():68:68 -> markObsolete
    1:1:com.android.tools.r8.utils.InternalOptions options():56:56 -> options
    1:3:com.android.tools.r8.origin.Origin originFor(com.android.tools.r8.graph.DexType):166:168 -> originFor
    1:2:com.android.tools.r8.graph.DexEncodedField resolveField(com.android.tools.r8.graph.DexField):503:504 -> resolveField
    1:3:com.android.tools.r8.graph.DexEncodedField resolveFieldOn(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):514:516 -> resolveFieldOn
    4:20:com.android.tools.r8.graph.DexEncodedField resolveFieldOn(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexField):520:536 -> resolveFieldOn
    1:9:com.android.tools.r8.graph.ResolutionResult resolveMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):270:278 -> resolveMethod
    10:12:com.android.tools.r8.graph.ResolutionResult resolveMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):282:284 -> resolveMethod
    13:16:com.android.tools.r8.graph.ResolutionResult resolveMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,boolean):299:302 -> resolveMethod
    1:13:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):334:346 -> resolveMethodOnClass
    14:22:com.android.tools.r8.graph.ResolutionResult resolveMethodOnClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):350:358 -> resolveMethodOnClass
    1:15:com.android.tools.r8.graph.ResolutionResult resolveMethodOnInterface(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):459:473 -> resolveMethodOnInterface
    16:34:com.android.tools.r8.graph.ResolutionResult resolveMethodOnInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):477:495 -> resolveMethodOnInterface
    1:3:com.android.tools.r8.graph.ResolutionResult resolveMethodStep3(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):405:407 -> resolveMethodStep3
    1:2:com.android.tools.r8.graph.DexProgramClass toProgramClass(com.android.tools.r8.graph.DexType):207:208 -> toProgramClass
    1:1:void unsetObsolete():72:72 -> unsetObsolete
    1:1:com.android.tools.r8.graph.AppInfoWithClassHierarchy withClassHierarchy():550:550 -> withClassHierarchy
    1:1:com.android.tools.r8.shaking.AppInfoWithLiveness withLiveness():570:570 -> withLiveness
    1:1:com.android.tools.r8.graph.AppInfoWithSubtyping withSubtyping():560:560 -> withSubtyping
com.android.tools.r8.graph.AppInfo$MaximallySpecificMethodsBuilder -> com.android.tools.r8.graph.c$a:
    com.android.tools.r8.graph.DexClass initialResolutionHolder -> a
    java.util.LinkedHashMap maximallySpecificMethods -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():579:579 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexClass):591:591 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.DexClass):589:592 -> <init>
    1:9:void addCandidate(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppInfo):597:605 -> a
    10:24:void markShadowed(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppInfo):613:627 -> a
    25:65:com.android.tools.r8.graph.ResolutionResult resolve():632:672 -> a
com.android.tools.r8.graph.AppInfoWithClassHierarchy -> com.android.tools.r8.graph.d:
    1:1:void <clinit>():15:15 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication):18:18 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.AppInfo):22:22 -> <init>
    1:1:boolean hasClassHierarchy():27:27 -> hasClassHierarchy
    1:3:boolean isRelatedBySubtyping(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):87:89 -> isRelatedBySubtyping
    1:36:boolean isStrictSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):44:79 -> isStrictSubtypeOf
    1:3:boolean isSubtype(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):38:40 -> isSubtype
    1:2:com.android.tools.r8.graph.DexEncodedMethod lookupDirectTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):187:188 -> lookupDirectTarget
    3:4:com.android.tools.r8.graph.DexEncodedMethod lookupDirectTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass):192:193 -> lookupDirectTarget
    1:4:com.android.tools.r8.graph.DexEncodedField lookupInstanceTarget(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):115:118 -> lookupInstanceTarget
    1:4:com.android.tools.r8.graph.DexEncodedField lookupStaticTarget(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):128:131 -> lookupStaticTarget
    5:6:com.android.tools.r8.graph.DexEncodedMethod lookupStaticTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):145:146 -> lookupStaticTarget
    7:8:com.android.tools.r8.graph.DexEncodedMethod lookupStaticTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass):151:152 -> lookupStaticTarget
    1:2:com.android.tools.r8.graph.DexEncodedMethod lookupSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):167:168 -> lookupSuperTarget
    3:4:com.android.tools.r8.graph.DexEncodedMethod lookupSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass):173:174 -> lookupSuperTarget
    1:9:com.android.tools.r8.graph.ResolutionResult resolveMaximallySpecificMethods(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):97:105 -> resolveMaximallySpecificMethods
    1:1:com.android.tools.r8.graph.AppInfoWithClassHierarchy withClassHierarchy():33:33 -> withClassHierarchy
com.android.tools.r8.graph.AppInfoWithSubtyping -> com.android.tools.r8.graph.e:
    1:8:void <clinit>():29:36 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication):135:135 -> <init>
    2:23:void <init>(com.android.tools.r8.graph.DexApplication):117:138 -> <init>
    24:24:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping):142:142 -> <init>
    25:55:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping):117:147 -> <init>
    1:1:java.util.Set access$000():29:29 -> a
    2:25:void populateAllSuperTypes(java.util.Map,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,java.util.function.Function):248:271 -> a
    26:34:void populateSubtypeMap(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.DexItemFactory):277:285 -> a
    35:69:boolean validateLevelsAreCorrect(java.util.function.Function,com.android.tools.r8.graph.DexItemFactory):290:324 -> a
    35:69:void populateSubtypeMap(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.DexItemFactory):285 -> a
    70:72:void registerNewType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):432:434 -> a
    73:85:void implementedInterfaces(com.android.tools.r8.graph.DexType,java.util.Set):543:555 -> a
    86:119:boolean computeMayHaveFinalizeMethodDirectlyOrIndirectlyIfAbsent(com.android.tools.r8.graph.DexType,boolean):646:679 -> a
    1:20:void addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass):152:171 -> addSynthesizedClass
    21:46:void addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass):170:195 -> addSynthesizedClass
    1:9:java.lang.Iterable allImmediateExtendsSubtypes(com.android.tools.r8.graph.DexType):482:490 -> allImmediateExtendsSubtypes
    1:5:java.lang.Iterable allImmediateImplementsSubtypes(com.android.tools.r8.graph.DexType):506:510 -> allImmediateImplementsSubtypes
    1:1:java.util.Set allImmediateSubtypes(com.android.tools.r8.graph.DexType):455:455 -> allImmediateSubtypes
    1:4:void populateSuperType(java.util.Map,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,java.util.function.Function):230:233 -> b
    1:2:com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo getTypeInfo(com.android.tools.r8.graph.DexType):239:240 -> c
    1:49:com.android.tools.r8.graph.DexType computeLeastUpperBoundOfClasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):574:622 -> computeLeastUpperBoundOfClasses
    1:1:boolean lambda$allImmediateExtendsSubtypes$1(com.android.tools.r8.graph.DexType):485:485 -> d
    1:1:boolean lambda$allImmediateExtendsSubtypes$2(com.android.tools.r8.graph.DexType):488:488 -> e
    1:1:boolean lambda$allImmediateImplementsSubtypes$3(com.android.tools.r8.graph.DexType):508:508 -> f
    1:1:void forAllImmediateExtendsSubtypes(com.android.tools.r8.graph.DexType,java.util.function.Consumer):478:478 -> forAllImmediateExtendsSubtypes
    1:1:void forAllImmediateImplementsSubtypes(com.android.tools.r8.graph.DexType,java.util.function.Consumer):502:502 -> forAllImmediateImplementsSubtypes
    1:1:java.util.Set lambda$populateSuperType$0(com.android.tools.r8.graph.DexType):230:230 -> g
    1:2:java.util.Set getMissingClasses():216:217 -> getMissingClasses
    1:4:com.android.tools.r8.graph.DexType getSingleSubtype(com.android.tools.r8.graph.DexType):560:563 -> getSingleSubtype
    5:5:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getFirst(java.lang.Iterable,java.lang.Object):809:809 -> getSingleSubtype
    5:5:com.android.tools.r8.graph.DexType getSingleSubtype(com.android.tools.r8.graph.DexType):563 -> getSingleSubtype
    6:6:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.getNext(java.util.Iterator,java.lang.Object):888:888 -> getSingleSubtype
    6:6:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getFirst(java.lang.Iterable,java.lang.Object):809 -> getSingleSubtype
    6:6:com.android.tools.r8.graph.DexType getSingleSubtype(com.android.tools.r8.graph.DexType):563 -> getSingleSubtype
    7:7:com.android.tools.r8.graph.DexType getSingleSubtype(com.android.tools.r8.graph.DexType):563:563 -> getSingleSubtype
    1:1:boolean hasAnyInstantiatedLambdas(com.android.tools.r8.graph.DexProgramClass):332:332 -> hasAnyInstantiatedLambdas
    1:1:boolean hasSubtypes(com.android.tools.r8.graph.DexType):467:467 -> hasSubtypes
    1:1:boolean hasSubtyping():444:444 -> hasSubtyping
    1:12:java.util.Set implementedInterfaces(com.android.tools.r8.graph.DexType):528:539 -> implementedInterfaces
    13:13:java.util.Set implementedInterfaces(com.android.tools.r8.graph.DexType):538:538 -> implementedInterfaces
    1:1:boolean inDifferentHierarchy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):628:628 -> inDifferentHierarchy
    1:1:boolean isExternalizable(com.android.tools.r8.graph.DexType):519:519 -> isExternalizable
    1:1:boolean isMarkedAsInterface(com.android.tools.r8.graph.DexType):463:463 -> isMarkedAsInterface
    1:1:boolean isMissingOrHasMissingSuperType(com.android.tools.r8.graph.DexType):514:514 -> isMissingOrHasMissingSuperType
    2:6:boolean com.android.tools.r8.graph.DexClass.hasMissingSuperType(com.android.tools.r8.graph.AppInfoWithSubtyping):746:750 -> isMissingOrHasMissingSuperType
    2:6:boolean isMissingOrHasMissingSuperType(com.android.tools.r8.graph.DexType):515 -> isMissingOrHasMissingSuperType
    1:1:boolean isSerializable(com.android.tools.r8.graph.DexType):523:523 -> isSerializable
    1:4:boolean isStringConcat(com.android.tools.r8.graph.DexMethodHandle):425:428 -> isStringConcat
    1:1:boolean isUnknown(com.android.tools.r8.graph.DexType):459:459 -> isUnknown
    2:2:boolean com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo.isUnknown():104:104 -> isUnknown
    2:2:boolean isUnknown(com.android.tools.r8.graph.DexType):459 -> isUnknown
    1:1:java.lang.Iterable libraryClasses():211:211 -> libraryClasses
    2:2:com.android.tools.r8.graph.DirectMappedDexApplication getDirectApplication():207:207 -> libraryClasses
    2:2:java.lang.Iterable libraryClasses():212 -> libraryClasses
    3:3:java.lang.Iterable libraryClasses():212:212 -> libraryClasses
    1:11:java.util.Set lookupLambdaImplementedMethods(com.android.tools.r8.graph.DexCallSite):384:394 -> lookupLambdaImplementedMethods
    12:12:boolean com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo.isUnknown():104:104 -> lookupLambdaImplementedMethods
    12:12:java.util.Set lookupLambdaImplementedMethods(com.android.tools.r8.graph.DexCallSite):394 -> lookupLambdaImplementedMethods
    13:26:java.util.Set lookupLambdaImplementedMethods(com.android.tools.r8.graph.DexCallSite):405:418 -> lookupLambdaImplementedMethods
    27:27:java.util.Set lookupLambdaImplementedMethods(com.android.tools.r8.graph.DexCallSite):387:387 -> lookupLambdaImplementedMethods
    1:10:boolean mayHaveFinalizeMethodDirectlyOrIndirectly(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):632:641 -> mayHaveFinalizeMethodDirectlyOrIndirectly
    1:7:boolean methodDefinedInInterface(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):350:356 -> methodDefinedInInterface
    8:8:boolean com.android.tools.r8.graph.DexMethod.hasSameProtoAndName(com.android.tools.r8.graph.DexMethod):103:103 -> methodDefinedInInterface
    8:8:boolean methodDefinedInInterface(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):356 -> methodDefinedInInterface
    9:15:boolean methodDefinedInInterface(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):356:362 -> methodDefinedInInterface
    1:6:boolean methodDefinedInInterfaces(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):337:342 -> methodDefinedInInterfaces
    1:1:void registerNewTypeForTesting(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):439:439 -> registerNewTypeForTesting
    1:4:java.util.Set subtypes(com.android.tools.r8.graph.DexType):221:224 -> subtypes
    1:1:com.android.tools.r8.graph.AppInfoWithSubtyping withSubtyping():450:450 -> withSubtyping
com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo -> com.android.tools.r8.graph.e$a:
    java.util.Set directSubtypes -> c
    java.util.Set implementedInterfaces -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.DexType type -> a
    int hierarchyLevel -> b
    1:1:void <clinit>():38:38 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType):52:52 -> <init>
    2:13:void <init>(com.android.tools.r8.graph.DexType):42:53 -> <init>
    1:1:com.android.tools.r8.graph.DexType access$100(com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo):38:38 -> a
    2:3:void ensureDirectSubTypeSet():62:63 -> a
    4:14:void setLevel(int):68:78 -> a
    15:17:void addInterfaceSubtype(com.android.tools.r8.graph.DexType):110:112 -> a
    1:4:void addDirectSubtype(com.android.tools.r8.graph.AppInfoWithSubtyping$TypeInfo):83:86 -> b
    5:7:boolean isInterface():98:100 -> b
    1:1:void tagAsInterface():94:94 -> c
    1:1:void tagAsSubtypeRoot():90:90 -> d
    1:1:java.lang.String toString():58:58 -> toString
com.android.tools.r8.graph.AppServices -> com.android.tools.r8.graph.f:
    java.util.Map services -> b
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():32:32 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,com.android.tools.r8.graph.AppServices$1):32:32 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):41:43 -> <init>
    1:2:java.util.Set allServiceTypes():51:52 -> a
    3:11:java.util.List serviceImplementationsFor(com.android.tools.r8.graph.DexType):56:64 -> a
    12:14:java.util.List serviceImplementationsFor(com.android.tools.r8.graph.DexType):60:62 -> a
    15:24:com.android.tools.r8.graph.AppServices rewrittenWithLens(com.android.tools.r8.graph.GraphLense):70:79 -> a
    25:40:com.android.tools.r8.graph.AppServices prunedCopy(java.util.Collection):83:98 -> a
    41:46:com.android.tools.r8.graph.AppServices prunedCopy(java.util.Collection):97:102 -> a
    47:47:void visit(java.util.function.BiConsumer):116:116 -> a
    48:48:com.android.tools.r8.graph.AppServices$Builder builder(com.android.tools.r8.graph.AppView):120:120 -> a
    1:1:boolean isEmpty():47:47 -> b
    1:4:boolean verifyRewrittenWithLens():106:109 -> c
com.android.tools.r8.graph.AppServices$1 -> com.android.tools.r8.graph.f$a:
com.android.tools.r8.graph.AppServices$Builder -> com.android.tools.r8.graph.f$b:
    java.util.Map services -> b
    com.android.tools.r8.graph.AppView appView -> a
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.AppServices$1):123:123 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.AppView):128:128 -> <init>
    3:6:void <init>(com.android.tools.r8.graph.AppView):126:129 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$300(com.android.tools.r8.graph.AppServices$Builder):123:123 -> a
    2:2:com.android.tools.r8.graph.AppServices build():133:133 -> a
    3:5:void readServices(com.android.tools.r8.DataResourceProvider):141:143 -> a
    3:5:com.android.tools.r8.graph.AppServices build():134 -> a
    6:6:com.android.tools.r8.graph.AppServices build():136:136 -> a
    1:1:java.util.Map access$400(com.android.tools.r8.graph.AppServices$Builder):123:123 -> b
com.android.tools.r8.graph.AppServices$Builder$DataResourceProviderVisitor -> com.android.tools.r8.graph.f$b$a:
    com.android.tools.r8.graph.AppServices$Builder this$0 -> a
    1:1:void <init>(com.android.tools.r8.graph.AppServices$Builder):147:147 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.AppServices$Builder,com.android.tools.r8.graph.AppServices$1):147:147 -> <init>
    1:1:java.util.List lambda$visit$0(com.android.tools.r8.graph.DexType):166:166 -> a
    2:27:void readServiceImplementationsForService(java.lang.String,com.android.tools.r8.origin.Origin,java.util.List):179:204 -> a
    28:28:boolean lambda$readServiceImplementationsForService$1(java.lang.String):182:182 -> a
    29:37:boolean lambda$readServiceImplementationsForService$2(com.android.tools.r8.origin.Origin,java.util.List,com.android.tools.r8.graph.DexType):188:196 -> a
    38:47:boolean lambda$readServiceImplementationsForService$2(com.android.tools.r8.origin.Origin,java.util.List,com.android.tools.r8.graph.DexType):193:202 -> a
    1:2:java.lang.String prefixUntilCommentChar(java.lang.String):209:210 -> b
    1:12:void visit(com.android.tools.r8.DataEntryResource):157:168 -> visit
    13:18:void visit(com.android.tools.r8.DataEntryResource):167:172 -> visit
com.android.tools.r8.graph.AppView -> com.android.tools.r8.graph.g:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
    java.util.Map sourceDebugExtensions -> r
    com.android.tools.r8.ir.analysis.proto.ProtoShrinker protoShrinker -> k
    com.android.tools.r8.graph.AppView$WholeProgramOptimizations wholeProgramOptimizations -> d
    boolean allCodeProcessed -> l
    com.android.tools.r8.utils.InternalOptions options -> f
    com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator callSiteOptimizationInfoPropagator -> j
    boolean $assertionsDisabled -> s
    com.android.tools.r8.shaking.RootSetBuilder$RootSet rootSet -> g
    com.android.tools.r8.ir.desugar.PrefixRewritingMapper rewritePrefix -> i
    com.android.tools.r8.graph.classmerging.VerticallyMergedClasses verticallyMergedClasses -> q
    java.util.function.Predicate classesEscapingIntoLibrary -> m
    com.android.tools.r8.graph.AppServices appServices -> b
    com.android.tools.r8.graph.GraphLense graphLense -> e
    java.util.Set unneededVisibilityBridgeMethods -> o
    com.android.tools.r8.graph.classmerging.HorizontallyMergedLambdaClasses horizontallyMergedLambdaClasses -> p
    com.android.tools.r8.graph.AppInfo appInfo -> a
    com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis$InitializedClassesInInstanceMethods initializedClassesInInstanceMethods -> n
    com.android.tools.r8.ir.analysis.value.AbstractValueFactory abstractValueFactory -> h
    1:1:void <clinit>():32:32 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.desugar.PrefixRewritingMapper):80:80 -> <init>
    2:54:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.desugar.PrefixRewritingMapper):46:98 -> <init>
    1:1:com.android.tools.r8.graph.AppView createForD8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):103:103 -> a
    2:2:com.android.tools.r8.ir.desugar.PrefixRewritingMapper com.android.tools.r8.ir.desugar.PrefixRewritingMapper.empty():25:25 -> a
    2:2:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):72 -> a
    2:2:com.android.tools.r8.graph.AppView createForD8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):103 -> a
    3:3:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):73:73 -> a
    3:3:com.android.tools.r8.graph.AppView createForD8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):103 -> a
    4:4:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):67:67 -> a
    4:4:com.android.tools.r8.graph.AppView createForD8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):103 -> a
    5:5:com.android.tools.r8.graph.AppView createForD8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.desugar.PrefixRewritingMapper):108:108 -> a
    6:6:com.android.tools.r8.ir.analysis.value.AbstractValueFactory abstractValueFactory():121:121 -> a
    7:11:com.android.tools.r8.graph.AppView setAppInfo(com.android.tools.r8.graph.AppInfo):129:133 -> a
    12:12:void setAppServices(com.android.tools.r8.graph.AppServices):153:153 -> a
    13:13:void setClassesEscapingIntoLibrary(java.util.function.Predicate):162:162 -> a
    14:14:void setSourceDebugExtensionForType(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexValue$DexValueString):166:166 -> a
    15:15:com.android.tools.r8.graph.DexValue$DexValueString getSourceDebugExtensionForType(com.android.tools.r8.graph.DexClass):170:170 -> a
    16:16:com.android.tools.r8.graph.DexProgramClass definitionForProgramType(com.android.tools.r8.graph.DexType):195:195 -> a
    17:18:void withGeneratedExtensionRegistryShrinker(java.util.function.Consumer):232:233 -> a
    19:20:java.lang.Object withGeneratedExtensionRegistryShrinker(java.util.function.Function,java.lang.Object):239:240 -> a
    21:22:boolean setGraphLense(com.android.tools.r8.graph.GraphLense):280:281 -> a
    23:23:void setInitializedClassesInInstanceMethods(com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis$InitializedClassesInInstanceMethods):289:289 -> a
    24:25:void setRootSet(com.android.tools.r8.shaking.RootSetBuilder$RootSet):309:310 -> a
    26:26:void setUnneededVisibilityBridgeMethods(java.util.Set):318:318 -> a
    27:27:void setHorizontallyMergedLambdaClasses(com.android.tools.r8.graph.classmerging.HorizontallyMergedLambdaClasses):340:340 -> a
    28:28:void setVerticallyMergedClasses(com.android.tools.r8.graph.classmerging.VerticallyMergedClasses):350:350 -> a
    29:30:com.android.tools.r8.utils.OptionalBool isSubtype(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):374:375 -> a
    31:31:com.android.tools.r8.utils.OptionalBool com.android.tools.r8.utils.OptionalBool.unknown():58:58 -> a
    31:31:com.android.tools.r8.utils.OptionalBool isSubtype(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):376 -> a
    1:1:com.android.tools.r8.graph.AppView createForR8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):112:112 -> b
    2:2:com.android.tools.r8.ir.desugar.PrefixRewritingMapper com.android.tools.r8.ir.desugar.PrefixRewritingMapper.empty():25:25 -> b
    2:2:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):72 -> b
    2:2:com.android.tools.r8.graph.AppView createForR8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):112 -> b
    3:3:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):73:73 -> b
    3:3:com.android.tools.r8.graph.AppView createForR8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):112 -> b
    4:4:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):67:67 -> b
    4:4:com.android.tools.r8.graph.AppView createForR8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):112 -> b
    5:5:com.android.tools.r8.graph.AppView createForL8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.desugar.PrefixRewritingMapper):117:117 -> b
    6:7:boolean isClassEscapingIntoLibrary(com.android.tools.r8.graph.DexType):157:158 -> b
    8:9:void withGeneratedMessageLiteBuilderShrinker(java.util.function.Consumer):253:254 -> b
    10:11:java.lang.Object withGeneratedMessageLiteBuilderShrinker(java.util.function.Function,java.lang.Object):268:269 -> b
    12:17:com.android.tools.r8.graph.classmerging.MergedClassesCollection allMergedClasses():322:327 -> b
    1:1:com.android.tools.r8.graph.AppInfo appInfo():125:125 -> c
    2:6:com.android.tools.r8.utils.OptionalBool isInterface(com.android.tools.r8.graph.DexType):201:205 -> c
    7:7:com.android.tools.r8.utils.OptionalBool com.android.tools.r8.utils.OptionalBool.unknown():58:58 -> c
    7:7:com.android.tools.r8.utils.OptionalBool isInterface(com.android.tools.r8.graph.DexType):206 -> c
    8:8:com.android.tools.r8.utils.OptionalBool isInterface(com.android.tools.r8.graph.DexType):207:207 -> c
    9:9:com.android.tools.r8.utils.OptionalBool com.android.tools.r8.utils.OptionalBool.unknown():58:58 -> c
    9:9:com.android.tools.r8.utils.OptionalBool isInterface(com.android.tools.r8.graph.DexType):210 -> c
    10:11:void withGeneratedMessageLiteShrinker(java.util.function.Consumer):246:247 -> c
    12:13:java.lang.Object withGeneratedMessageLiteShrinker(java.util.function.Function,java.lang.Object):260:261 -> c
    1:1:com.android.tools.r8.graph.AppServices appServices():149:149 -> d
    2:3:java.lang.Object withInitializedClassesInInstanceMethods(java.util.function.Function,java.lang.Object):294:295 -> d
    1:1:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):190:190 -> definitionFor
    1:1:com.android.tools.r8.graph.DexItemFactory dexItemFactory():215:215 -> dexItemFactory
    1:1:com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator callSiteOptimizationInfoPropagator():223:223 -> e
    1:1:boolean enableWholeProgramOptimizations():219:219 -> f
    1:1:com.android.tools.r8.graph.GraphLense graphLense():275:275 -> g
    1:1:boolean isAllCodeProcessed():141:141 -> h
    1:1:com.android.tools.r8.utils.InternalOptions options():301:301 -> i
    1:1:com.android.tools.r8.ir.analysis.proto.ProtoShrinker protoShrinker():227:227 -> j
    1:1:com.android.tools.r8.shaking.RootSetBuilder$RootSet rootSet():305:305 -> k
    1:1:void setAllCodeProcessed():145:145 -> l
    1:1:java.util.Set unneededVisibilityBridgeMethods():314:314 -> m
    1:1:com.android.tools.r8.graph.classmerging.VerticallyMergedClasses verticallyMergedClasses():346:346 -> n
    1:1:com.android.tools.r8.graph.AppView withClassHierarchy():355:355 -> o
    com.android.tools.r8.graph.AppView withLiveness() -> p
    1:1:com.android.tools.r8.graph.AppView withSubtyping():362:362 -> q
com.android.tools.r8.graph.AppView$WholeProgramOptimizations -> com.android.tools.r8.graph.g$a:
    com.android.tools.r8.graph.AppView$WholeProgramOptimizations ON -> a
    com.android.tools.r8.graph.AppView$WholeProgramOptimizations OFF -> b
    1:2:void <clinit>():35:36 -> <clinit>
    1:1:void <init>(java.lang.String,int):34:34 -> <init>
com.android.tools.r8.graph.AppliedGraphLens -> com.android.tools.r8.graph.h:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.com.google.common.collect.BiMap originalTypeNames -> b
    com.android.tools.r8.com.google.common.collect.BiMap originalFieldSignatures -> c
    com.android.tools.r8.com.google.common.collect.BiMap originalMethodSignatures -> d
    boolean $assertionsDisabled -> f
    java.util.Map originalMethodSignaturesForBridges -> e
    1:1:void <clinit>():21:21 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.List):32:32 -> <init>
    2:50:void <init>(com.android.tools.r8.graph.AppView,java.util.List):25:73 -> <init>
    1:1:com.android.tools.r8.graph.DexField getOriginalFieldSignature(com.android.tools.r8.graph.DexField):88:88 -> getOriginalFieldSignature
    1:4:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):93:96 -> getOriginalMethodSignature
    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):83:83 -> getOriginalType
    1:1:com.android.tools.r8.graph.DexField getRenamedFieldSignature(com.android.tools.r8.graph.DexField):101:101 -> getRenamedFieldSignature
    1:1:com.android.tools.r8.graph.DexMethod getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):106:106 -> getRenamedMethodSignature
    1:1:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):121:121 -> lookupMethod
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):126:126 -> lookupPrototypeChanges
    1:5:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType):111:115 -> lookupType
com.android.tools.r8.graph.ArgumentUse -> com.android.tools.r8.graph.i:
    1:1:void <init>():7:7 -> <init>
    boolean register(int) -> a
com.android.tools.r8.graph.AssemblyWriter -> com.android.tools.r8.graph.j:
    com.android.tools.r8.utils.Timing timing -> h
    boolean writeAnnotations -> e
    boolean writeIR -> f
    com.android.tools.r8.graph.AppInfoWithSubtyping appInfo -> g
    boolean writeAllClassInfo -> c
    boolean writeFields -> d
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions,boolean,boolean):28:28 -> <init>
    2:20:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions,boolean,boolean):24:42 -> <init>
    java.lang.String getFileEnding() -> a
    1:8:void writeField(com.android.tools.r8.graph.DexEncodedField,java.io.PrintStream):85:92 -> a
    9:21:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):103:115 -> a
    22:23:void writeIR(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):124:125 -> a
    22:23:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):116 -> a
    24:24:void com.android.tools.r8.ir.conversion.IRConverter.<init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter):368:368 -> a
    24:24:void writeIR(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):125 -> a
    24:24:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):116 -> a
    25:26:void writeIR(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):128:129 -> a
    25:26:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):116 -> a
    27:31:void writeIR(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):126:130 -> a
    27:31:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):116 -> a
    32:32:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):118:118 -> a
    33:38:void writeAnnotations(com.android.tools.r8.graph.DexAnnotationSet,java.io.PrintStream):134:139 -> a
    void writeClassFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> b
    1:18:void writeClassHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):54:71 -> c
    1:1:void writeFieldsFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):98:98 -> d
    1:4:void writeFieldsHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):76:79 -> e
com.android.tools.r8.graph.BottomUpClassHierarchyTraversal -> com.android.tools.r8.graph.k:
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.ClassHierarchyTraversal$Scope):12:12 -> <init>
    com.android.tools.r8.graph.ClassHierarchyTraversal self() -> a
    1:1:void visit(java.lang.Iterable,java.util.function.Consumer):7:7 -> a
    2:2:com.android.tools.r8.graph.BottomUpClassHierarchyTraversal forAllClasses(com.android.tools.r8.graph.AppView):21:21 -> a
    3:15:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):43:55 -> a
    16:16:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    16:16:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):55 -> a
    17:18:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):57:58 -> a
    1:1:com.android.tools.r8.graph.BottomUpClassHierarchyTraversal forProgramClasses(com.android.tools.r8.graph.AppView):30:30 -> b
com.android.tools.r8.graph.CachedHashValueDexItem -> com.android.tools.r8.graph.l:
    1:1:void <clinit>():9:9 -> <clinit>
    1:5:void <init>():9:13 -> <init>
    1:1:boolean equals(java.lang.Object):42:42 -> equals
    1:1:void flushCachedValues():37:37 -> flushCachedValues
    1:10:int hashCode():21:30 -> hashCode
com.android.tools.r8.graph.CfCode -> com.android.tools.r8.graph.m:
    java.util.List localVariables -> f
    java.util.List tryCatchRanges -> e
    java.util.List instructions -> d
    boolean $assertionsDisabled -> g
    com.android.tools.r8.graph.DexType originalHolder -> a
    int maxStack -> b
    int maxLocals -> c
    1:1:void <clinit>():43:43 -> <clinit>
    1:7:void <init>(com.android.tools.r8.graph.DexType,int,int,java.util.List,java.util.List,java.util.List):109:115 -> <init>
    1:1:java.util.List getInstructions():135:135 -> a
    2:2:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):200:200 -> a
    3:12:boolean shouldAddParameterNames(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):179:188 -> a
    3:12:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):202 -> a
    13:13:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):203:203 -> a
    14:14:void com.android.tools.r8.cf.code.CfLabel.write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):45:45 -> a
    14:14:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):204 -> a
    15:16:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):206:207 -> a
    17:17:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    17:17:boolean com.android.tools.r8.utils.InternalOptions.shouldKeepStackMapTable():328 -> a
    17:17:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):209 -> a
    18:18:boolean com.android.tools.r8.utils.InternalOptions.shouldKeepStackMapTable():329:329 -> a
    18:18:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):209 -> a
    19:35:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):212:228 -> a
    36:49:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):222:235 -> a
    50:56:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):234:240 -> a
    57:57:void write(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView,int):239:239 -> a
    58:63:void writeLocalVariableEntry(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfLabel,int):252:257 -> a
    64:64:void writeLocalVariableEntry(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfLabel,int):252:252 -> a
    65:67:com.android.tools.r8.ir.code.IRCode internalBuildPossiblyWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):311:313 -> a
    68:68:com.android.tools.r8.ir.code.IRCode internalBuildPossiblyWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):312:312 -> a
    69:70:com.android.tools.r8.ir.code.IRCode internalBuildWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):335:336 -> a
    69:70:com.android.tools.r8.ir.code.IRCode internalBuildPossiblyWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):321 -> a
    71:82:com.android.tools.r8.ir.code.IRCode internalBuildWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):335:346 -> a
    71:82:com.android.tools.r8.ir.code.IRCode internalBuildPossiblyWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):321 -> a
    83:83:com.android.tools.r8.ir.code.IRCode internalBuildWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):345:345 -> a
    83:83:com.android.tools.r8.ir.code.IRCode internalBuildPossiblyWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):321 -> a
    84:93:com.android.tools.r8.ir.code.IRCode internalBuild(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):365:374 -> a
    94:105:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexType):490:501 -> a
    106:106:boolean com.android.tools.r8.graph.MethodAccessFlags.isSynchronized():124:124 -> a
    106:106:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexType):501 -> a
    107:107:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMonitor():269:269 -> a
    107:107:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexType):502 -> a
    108:117:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexType):503:512 -> a
    118:126:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexType):510:518 -> a
    127:127:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMoveException():277:277 -> a
    127:127:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexType):521 -> a
    128:128:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexType):521:521 -> a
    129:153:void addFakeThisParameter(com.android.tools.r8.graph.DexItemFactory):527:551 -> a
    154:155:void com.android.tools.r8.graph.CfCode$LocalVariableInfo.<init>(int,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfLabel):59:60 -> a
    154:155:void addFakeThisParameter(com.android.tools.r8.graph.DexItemFactory):551 -> a
    156:156:void addFakeThisParameter(com.android.tools.r8.graph.DexItemFactory):548:548 -> a
    1:1:java.util.List getLocalVariables():139:139 -> b
    2:3:int countNonStackOperations(int):154:155 -> b
    1:1:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):285:285 -> buildIR
    1:3:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):297:299 -> buildInliningIR
    1:1:int getMaxLocals():127:127 -> c
    1:41:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap collectParameterInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):393:433 -> collectParameterInfo
    42:42:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap collectParameterInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):432:432 -> collectParameterInfo
    43:43:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap collectParameterInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):404:404 -> collectParameterInfo
    1:1:boolean computeEquals(java.lang.Object):268:268 -> computeEquals
    1:1:int computeHashCode():263:263 -> computeHashCode
    1:1:int getMaxStack():123:123 -> d
    1:1:com.android.tools.r8.graph.DexType getOriginalHolder():119:119 -> e
    1:1:int estimatedSizeForInlining():144:144 -> estimatedSizeForInlining
    1:1:boolean estimatedSizeForInliningAtMost(int):149:149 -> estimatedSizeForInliningAtMost
    1:1:java.util.List getTryCatchRanges():131:131 -> f
    1:2:boolean isEmptyVoidMethod():273:274 -> isEmptyVoidMethod
    1:29:void registerArgumentReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.ArgumentUse):441:469 -> registerArgumentReferences
    1:6:void registerCodeReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry):379:384 -> registerCodeReferences
    1:1:java.lang.String toString():476:476 -> toString
    2:2:void com.android.tools.r8.cf.CfPrinter.<init>(com.android.tools.r8.graph.CfCode):120:120 -> toString
    2:2:java.lang.String toString():476 -> toString
    3:3:java.lang.String toString():476:476 -> toString
    4:4:java.lang.String toString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):481:481 -> toString
com.android.tools.r8.graph.CfCode$LocalVariableInfo -> com.android.tools.r8.graph.m$a:
    com.android.tools.r8.graph.DebugLocalInfo local -> b
    boolean $assertionsDisabled -> e
    com.android.tools.r8.cf.code.CfLabel start -> c
    com.android.tools.r8.cf.code.CfLabel end -> d
    int index -> a
    1:1:void <clinit>():45:45 -> <clinit>
    1:4:void <init>(int,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.cf.code.CfLabel):52:55 -> <init>
    1:1:com.android.tools.r8.graph.DebugLocalInfo access$000(com.android.tools.r8.graph.CfCode$LocalVariableInfo):45:45 -> a
    2:4:void setEnd(com.android.tools.r8.cf.code.CfLabel):64:66 -> a
    5:5:com.android.tools.r8.cf.code.CfLabel getEnd():82:82 -> a
    1:1:com.android.tools.r8.cf.code.CfLabel access$100(com.android.tools.r8.graph.CfCode$LocalVariableInfo):45:45 -> b
    2:2:int getIndex():70:70 -> b
    1:1:com.android.tools.r8.cf.code.CfLabel access$200(com.android.tools.r8.graph.CfCode$LocalVariableInfo):45:45 -> c
    2:2:com.android.tools.r8.graph.DebugLocalInfo getLocal():74:74 -> c
    1:1:int access$300(com.android.tools.r8.graph.CfCode$LocalVariableInfo):45:45 -> d
    2:2:com.android.tools.r8.cf.code.CfLabel getStart():78:78 -> d
    1:1:java.lang.String toString():87:87 -> toString
com.android.tools.r8.graph.ClassAccessFlags -> com.android.tools.r8.graph.n:
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():15:15 -> <clinit>
    1:1:void <init>(int,int):61:61 -> <init>
    1:1:com.android.tools.r8.graph.ClassAccessFlags copy():81:81 -> B
    1:1:int com.android.tools.r8.graph.AccessFlags.materialize():67:67 -> C
    1:1:int getAsCfAccessFlags():91 -> C
    1:1:int com.android.tools.r8.graph.AccessFlags.materialize():67:67 -> D
    1:1:int getAsDexAccessFlags():98 -> D
    2:2:boolean isInterface():155:155 -> D
    2:2:int getAsDexAccessFlags():99 -> D
    1:1:boolean isAbstract():167:167 -> E
    1:1:boolean isAnnotation():179:179 -> F
    1:1:boolean isEnum():191:191 -> G
    1:1:boolean isInterface():155:155 -> H
    1:1:boolean isSuper():199:199 -> I
    1:1:void setAbstract():171:171 -> J
    1:1:void unsetAbstract():175:175 -> K
    1:1:void unsetAnnotation():187:187 -> L
    1:1:void unsetInterface():163:163 -> M
    1:1:boolean isInterface():155:155 -> a
    1:1:boolean areValid(int,boolean):132 -> a
    2:2:boolean isSuper():199:199 -> a
    2:2:boolean areValid(int,boolean):134 -> a
    3:7:boolean areValid(int,boolean):140:144 -> a
    8:8:boolean isEnum():191:191 -> a
    8:8:boolean areValid(int,boolean):144 -> a
    9:9:boolean areValid(int,boolean):146:146 -> a
    1:8:java.util.List getNames():34:41 -> b
    1:8:java.util.List getPredicates():46:53 -> d
    1:1:com.android.tools.r8.graph.ClassAccessFlags fromCfAccessFlags(int):76:76 -> e
    2:2:void <init>(int):57:57 -> e
    2:2:com.android.tools.r8.graph.ClassAccessFlags fromCfAccessFlags(int):76 -> e
    1:1:com.android.tools.r8.graph.ClassAccessFlags fromDexAccessFlags(int):72:72 -> f
    2:2:void <init>(int):57:57 -> f
    2:2:com.android.tools.r8.graph.ClassAccessFlags fromDexAccessFlags(int):72 -> f
    1:3:com.android.tools.r8.graph.ClassAccessFlags fromSharedAccessFlags(int):65:67 -> g
com.android.tools.r8.graph.ClassHierarchyTraversal -> com.android.tools.r8.graph.p:
    java.util.Deque worklist -> d
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set visited -> c
    com.android.tools.r8.graph.ClassHierarchyTraversal$Scope scope -> b
    boolean excludeInterfaces -> e
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():15:15 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.ClassHierarchyTraversal$Scope):52:52 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.ClassHierarchyTraversal$Scope):47:54 -> <init>
    void addDependentsToWorklist(com.android.tools.r8.graph.DexClass) -> a
    com.android.tools.r8.graph.ClassHierarchyTraversal self() -> a
    1:22:void visit(java.lang.Iterable,java.util.function.Consumer):65:86 -> a
    23:36:void visit(java.lang.Iterable,java.util.function.Consumer):69:82 -> a
com.android.tools.r8.graph.ClassHierarchyTraversal$Scope -> com.android.tools.r8.graph.o:
    com.android.tools.r8.graph.ClassHierarchyTraversal$Scope ALL_CLASSES -> a
    com.android.tools.r8.graph.ClassHierarchyTraversal$Scope ONLY_LIBRARY_CLASSES -> b
    com.android.tools.r8.graph.ClassHierarchyTraversal$Scope ONLY_LIBRARY_AND_CLASSPATH_CLASSES -> c
    com.android.tools.r8.graph.ClassHierarchyTraversal$Scope ONLY_PROGRAM_CLASSES -> d
    com.android.tools.r8.graph.ClassHierarchyTraversal$Scope[] $VALUES -> e
    1:4:void <clinit>():19:22 -> <clinit>
    5:5:void <clinit>():18:18 -> <clinit>
    1:1:void <init>(java.lang.String,int):18:18 -> <init>
com.android.tools.r8.graph.ClassKind -> com.android.tools.r8.graph.q:
    com.android.tools.r8.graph.ClassKind CLASSPATH -> d
    com.android.tools.r8.graph.ClassKind LIBRARY -> e
    java.util.function.Predicate check -> b
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.ClassKind$Factory factory -> a
    com.android.tools.r8.graph.ClassKind PROGRAM -> c
    1:42:void <clinit>():15:56 -> <clinit>
    1:3:void <init>(java.lang.String,int,com.android.tools.r8.graph.ClassKind$Factory,java.util.function.Predicate):121:123 -> <init>
    1:1:com.android.tools.r8.graph.DexClass create(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier):145:145 -> a
    2:2:boolean isOfKind(com.android.tools.r8.graph.DexClass):167:167 -> a
    3:3:java.util.function.Consumer bridgeConsumer(java.util.function.Consumer):171:171 -> a
    4:4:void lambda$bridgeConsumer$2(java.util.function.Consumer,com.android.tools.r8.graph.DexClass):172:172 -> a
    5:5:boolean isOfKind(com.android.tools.r8.graph.DexClass):167:167 -> a
    5:5:void lambda$bridgeConsumer$2(java.util.function.Consumer,com.android.tools.r8.graph.DexClass):172 -> a
    6:8:void lambda$bridgeConsumer$2(java.util.function.Consumer,com.android.tools.r8.graph.DexClass):172:174 -> a
    1:1:com.android.tools.r8.graph.DexClass lambda$static$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier):36:36 -> b
    1:1:com.android.tools.r8.graph.DexClass lambda$static$1(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier):75:75 -> c
com.android.tools.r8.graph.ClassKind$Factory -> com.android.tools.r8.graph.q$a:
    com.android.tools.r8.graph.DexClass create(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier) -> a
com.android.tools.r8.graph.Code -> com.android.tools.r8.graph.r:
    1:1:void <init>():17:17 -> <init>
    1:1:com.android.tools.r8.graph.CfCode asCfCode():71:71 -> asCfCode
    1:1:com.android.tools.r8.graph.DexCode asDexCode():79:79 -> asDexCode
    1:1:com.android.tools.r8.graph.LazyCfCode asLazyCfCode():75:75 -> asLazyCfCode
    1:1:com.android.tools.r8.ir.optimize.Outliner$OutlineCode asOutlineCode():83:83 -> asOutlineCode
    1:2:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):28:29 -> buildInliningIR
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):89:89 -> collectIndexedItems
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):94:94 -> collectMixedSectionItems
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap collectParameterInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):40:40 -> collectParameterInfo
    1:1:boolean estimatedSizeForInliningAtMost(int):67:67 -> estimatedSizeForInliningAtMost
    1:1:void registerArgumentReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.ArgumentUse):35:35 -> registerArgumentReferences
com.android.tools.r8.graph.DebugLocalInfo -> com.android.tools.r8.graph.s:
    com.android.tools.r8.graph.DexString name -> a
    com.android.tools.r8.graph.DexString signature -> c
    com.android.tools.r8.graph.DexType type -> b
    com.android.tools.r8.graph.DebugLocalInfo$PrintLevel PRINT_LEVEL -> d
    1:1:void <clinit>():21:21 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):27:30 -> <init>
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap endingLocals(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):55:60 -> a
    7:17:java.lang.String toString(com.android.tools.r8.graph.DebugLocalInfo$PrintLevel):107:117 -> a
    18:18:java.lang.String toString(com.android.tools.r8.graph.DebugLocalInfo$PrintLevel):111:111 -> a
    1:5:boolean localsInfoMapsEqual(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):41:45 -> b
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap startingLocals(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):69:74 -> c
    1:5:boolean equals(java.lang.Object):85:89 -> equals
    1:3:int hashCode():94:96 -> hashCode
    1:1:java.lang.String toString():103:103 -> toString
com.android.tools.r8.graph.DebugLocalInfo$PrintLevel -> com.android.tools.r8.graph.s$a:
    com.android.tools.r8.graph.DebugLocalInfo$PrintLevel[] $VALUES -> d
    com.android.tools.r8.graph.DebugLocalInfo$PrintLevel NAME -> b
    com.android.tools.r8.graph.DebugLocalInfo$PrintLevel NONE -> a
    com.android.tools.r8.graph.DebugLocalInfo$PrintLevel FULL -> c
    1:3:void <clinit>():16:18 -> <clinit>
    4:4:void <clinit>():15:15 -> <clinit>
    1:1:void <init>(java.lang.String,int):15:15 -> <init>
com.android.tools.r8.graph.DefaultUseRegistry -> com.android.tools.r8.graph.t:
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory):10:10 -> <init>
com.android.tools.r8.graph.Descriptor -> com.android.tools.r8.graph.u:
    1:1:void <init>():6:6 -> <init>
    boolean match(com.android.tools.r8.graph.DexItem) -> a
com.android.tools.r8.graph.DexAnnotation -> com.android.tools.r8.graph.v:
    com.android.tools.r8.graph.DexEncodedAnnotation annotation -> b
    com.android.tools.r8.graph.DexAnnotation[] EMPTY_ARRAY -> c
    boolean $assertionsDisabled -> d
    int visibility -> a
    1:2:void <clinit>():26:27 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.graph.DexEncodedAnnotation):34:36 -> <init>
    1:1:com.android.tools.r8.graph.DexType getAnnotationType():40:40 -> a
    2:13:boolean retainCompileTimeAnnotation(com.android.tools.r8.graph.DexType,com.android.tools.r8.utils.InternalOptions):77:88 -> a
    14:14:com.android.tools.r8.graph.DexAnnotation createEnclosingClassAnnotation(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):96:96 -> a
    15:17:com.android.tools.r8.graph.DexType getEnclosingClassFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):102:104 -> a
    18:18:com.android.tools.r8.graph.DexAnnotation createEnclosingMethodAnnotation(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):109:109 -> a
    19:23:com.android.tools.r8.graph.DexAnnotation createMemberClassesAnnotation(java.util.List,com.android.tools.r8.graph.DexItemFactory):175:179 -> a
    24:27:com.android.tools.r8.graph.DexAnnotation createAnnotationDefaultAnnotation(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):223:226 -> a
    28:28:com.android.tools.r8.graph.DexAnnotation createAnnotationDefaultAnnotation(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):223:223 -> a
    29:29:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):231:231 -> a
    30:57:com.android.tools.r8.graph.DexValue compressSignature(java.lang.String,com.android.tools.r8.graph.DexItemFactory):302:329 -> a
    30:57:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):232 -> a
    58:58:com.android.tools.r8.graph.DexValue toDexValue(java.lang.String,com.android.tools.r8.graph.DexItemFactory):337:337 -> a
    58:58:com.android.tools.r8.graph.DexValue compressSignature(java.lang.String,com.android.tools.r8.graph.DexItemFactory):329 -> a
    58:58:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):232 -> a
    59:63:com.android.tools.r8.graph.DexValue compressSignature(java.lang.String,com.android.tools.r8.graph.DexItemFactory):329:333 -> a
    59:63:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):232 -> a
    64:64:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):231:231 -> a
    65:70:java.lang.String getSignature(com.android.tools.r8.graph.DexAnnotation):236:241 -> a
    71:71:com.android.tools.r8.graph.DexAnnotation createThrowsAnnotation(com.android.tools.r8.graph.DexValue[],com.android.tools.r8.graph.DexItemFactory):246:246 -> a
    72:74:com.android.tools.r8.graph.DexAnnotation createSystemValueAnnotation(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexValue):252:254 -> a
    75:79:com.android.tools.r8.graph.DexValue getSystemValueAnnotationValue(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotation):259:263 -> a
    80:103:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):343:366 -> a
    104:105:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):363:364 -> a
    106:106:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    106:106:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):364 -> a
    107:107:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):364:364 -> a
    108:109:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):356:357 -> a
    110:110:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    110:110:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):357 -> a
    111:111:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):357:357 -> a
    112:113:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):352:353 -> a
    114:114:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    114:114:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):353 -> a
    115:115:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):353:353 -> a
    116:117:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):347:348 -> a
    118:118:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    118:118:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):348 -> a
    119:141:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):348:370 -> a
    142:145:java.lang.String getInvalidSynthesizedClassMapMessage(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotation):376:379 -> a
    146:152:com.android.tools.r8.graph.DexAnnotation createAnnotationSynthesizedClassMap(java.util.TreeSet,com.android.tools.r8.graph.DexItemFactory):385:391 -> a
    153:160:com.android.tools.r8.graph.DexAnnotation rewrite(java.util.function.Function):403:410 -> a
    1:4:com.android.tools.r8.graph.DexMethod getEnclosingMethodFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):115:118 -> b
    5:5:com.android.tools.r8.graph.DexValue$DexValueType[] lambda$createAnnotationSynthesizedClassMap$0(int):387:387 -> b
    1:3:com.android.tools.r8.utils.Pair getInnerClassFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):157:159 -> c
    4:4:void com.android.tools.r8.utils.Pair.<init>():20:20 -> c
    4:4:com.android.tools.r8.utils.Pair getInnerClassFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):159 -> c
    5:12:com.android.tools.r8.utils.Pair getInnerClassFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):160:167 -> c
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> collectIndexedItems
    2:3:void com.android.tools.r8.graph.DexEncodedAnnotation.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):29:30 -> collectIndexedItems
    2:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68 -> collectIndexedItems
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):73:73 -> collectMixedSectionItems
    1:8:java.util.List getMemberClassesFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):185:192 -> d
    1:1:boolean isEnclosingClassAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):123:123 -> e
    1:3:boolean equals(java.lang.Object):53:55 -> equals
    1:1:boolean isEnclosingMethodAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):128:128 -> f
    1:1:boolean isInnerClassAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):132:132 -> g
    1:1:boolean isMemberClassesAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):137:137 -> h
    1:1:int hashCode():45:45 -> hashCode
    1:1:boolean isSignatureAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):273:273 -> i
    1:1:java.lang.String toString():62:62 -> toString
com.android.tools.r8.graph.DexAnnotationDirectory -> com.android.tools.r8.graph.w:
    java.util.List methodAnnotations -> b
    java.util.List fieldAnnotations -> d
    com.android.tools.r8.graph.DexProgramClass clazz -> a
    java.util.List parameterAnnotations -> c
    boolean classHasOnlyInternalizableAnnotations -> e
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():14:14 -> <clinit>
    1:27:void <init>(com.android.tools.r8.graph.DexProgramClass):22:48 -> <init>
    1:1:com.android.tools.r8.graph.DexAnnotationSet getClazzAnnotations():54:54 -> a
    2:2:boolean isSorted(java.util.List):112:112 -> a
    3:5:boolean isSorted(java.util.List,java.util.function.Function):118:120 -> a
    3:5:boolean isSorted(java.util.List):112 -> a
    1:1:java.util.List getFieldAnnotations():66:66 -> b
    1:1:java.util.List getMethodAnnotations():58:58 -> c
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):102:102 -> collectIndexedItems
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):107:107 -> collectMixedSectionItems
    1:1:java.util.List getParameterAnnotations():62:62 -> d
    1:11:boolean equals(java.lang.Object):78:88 -> equals
    1:4:int hashCode():93:96 -> hashCode
com.android.tools.r8.graph.DexAnnotationElement -> com.android.tools.r8.graph.x:
    com.android.tools.r8.graph.DexAnnotationElement[] EMPTY_ARRAY -> c
    com.android.tools.r8.graph.DexString name -> a
    com.android.tools.r8.graph.DexValue value -> b
    boolean $assertionsDisabled -> d
    1:2:void <clinit>():9:10 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexValue):15:17 -> <init>
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):45:45 -> collectIndexedItems
    2:2:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> collectIndexedItems
    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):45 -> collectIndexedItems
    3:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):46:46 -> collectIndexedItems
    4:4:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> collectIndexedItems
    4:4:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):45 -> collectIndexedItems
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):52:52 -> collectMixedSectionItems
    1:3:boolean equals(java.lang.Object):30:32 -> equals
    1:1:int hashCode():22:22 -> hashCode
    1:1:java.lang.String toString():39:39 -> toString
com.android.tools.r8.graph.DexAnnotationSet -> com.android.tools.r8.graph.y:
    com.android.tools.r8.graph.DexAnnotationSet THE_EMPTY_ANNOTATIONS_SET -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.DexAnnotationSet[] EMPTY_ARRAY -> c
    com.android.tools.r8.graph.DexAnnotation[] annotations -> a
    int sorted -> b
    1:6:void <clinit>():16:21 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexAnnotation[]):27:27 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.DexAnnotation[]):25:28 -> <init>
    1:1:com.android.tools.r8.graph.DexType findDuplicateEntryType(com.android.tools.r8.graph.DexAnnotation[]):32:32 -> a
    2:2:com.android.tools.r8.graph.DexAnnotationSet empty():46:46 -> a
    3:3:int lambda$sort$0(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexAnnotation):88:88 -> a
    4:4:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):173:173 -> a
    4:4:int lambda$sort$0(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexAnnotation):88 -> a
    5:6:com.android.tools.r8.graph.DexAnnotation getFirstMatching(com.android.tools.r8.graph.DexType):96:97 -> a
    7:7:com.android.tools.r8.graph.DexAnnotationSet keepIf(java.util.function.Predicate):146:146 -> a
    8:8:com.android.tools.r8.graph.DexAnnotation lambda$keepIf$1(java.util.function.Predicate,com.android.tools.r8.graph.DexAnnotation):146:146 -> a
    9:19:com.android.tools.r8.graph.DexAnnotationSet rewrite(java.util.function.Function):150:160 -> a
    1:4:com.android.tools.r8.graph.DexType findDuplicateEntryType(java.util.List):36:39 -> b
    5:5:boolean isEmpty():80:80 -> b
    1:1:int size():50:50 -> c
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):70:70 -> collectIndexedItems
    1:2:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):75:76 -> collectMixedSectionItems
    1:3:boolean computeEquals(java.lang.Object):60:62 -> computeEquals
    1:1:int computeHashCode():55:55 -> computeHashCode
    1:2:void sort():84:85 -> d
    3:3:int sortedHashCode():121:121 -> d
    3:3:void sort():85 -> d
    4:11:void sort():85:92 -> d
    1:1:java.lang.String toString():165:165 -> toString
com.android.tools.r8.graph.DexApplication -> com.android.tools.r8.graph.z:
    com.android.tools.r8.naming.ClassNameMapper proguardMap -> c
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> f
    com.android.tools.r8.utils.Timing timing -> d
    com.android.tools.r8.graph.DexString highestSortingString -> g
    com.android.tools.r8.utils.InternalOptions options -> e
    boolean $assertionsDisabled -> h
    com.android.tools.r8.com.google.common.collect.ImmutableSet mainDexList -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList dataResourceProviders -> a
    1:1:void <clinit>():25:25 -> <clinit>
    1:8:void <init>(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableSet,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing):48:55 -> <init>
    com.android.tools.r8.graph.DexProgramClass programDefinitionFor(com.android.tools.r8.graph.DexType) -> a
    1:1:int lambda$classesWithDeterministicOrder$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):102:102 -> a
    2:3:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder builder(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):220:221 -> a
    4:4:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder builder(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):226:226 -> a
    4:4:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder builder(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):220 -> a
    5:5:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder builder(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):226:226 -> a
    6:6:com.android.tools.r8.graph.DirectMappedDexApplication asDirect():230:230 -> a
    com.android.tools.r8.graph.DexApplication$Builder builder() -> b
    1:3:java.util.List classes():91:93 -> c
    1:6:java.lang.Iterable classesWithDeterministicOrder():97:102 -> d
    1:1:com.android.tools.r8.naming.ClassNameMapper getProguardMap():115:115 -> e
    java.util.List programClasses() -> f
    com.android.tools.r8.graph.DirectMappedDexApplication toDirect() -> g
com.android.tools.r8.graph.DexApplication$Builder -> com.android.tools.r8.graph.z$a:
    java.util.List dataResourceProviders -> b
    java.util.List programClasses -> a
    java.util.Set mainDexList -> h
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> d
    com.android.tools.r8.utils.Timing timing -> f
    boolean $assertionsDisabled -> j
    com.android.tools.r8.utils.InternalOptions options -> c
    com.android.tools.r8.naming.ClassNameMapper proguardMap -> e
    com.android.tools.r8.graph.DexString highestSortingString -> g
    java.util.Collection synthesizedClasses -> i
    1:1:void <clinit>():118:118 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):139:139 -> <init>
    2:19:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):126:143 -> <init>
    20:20:void <init>(com.android.tools.r8.graph.DexApplication):148:148 -> <init>
    21:52:void <init>(com.android.tools.r8.graph.DexApplication):126:157 -> <init>
    com.android.tools.r8.graph.DexApplication build() -> a
    1:3:com.android.tools.r8.graph.DexApplication$Builder setProguardMap(com.android.tools.r8.naming.ClassNameMapper):161:163 -> a
    4:7:com.android.tools.r8.graph.DexApplication$Builder replaceProgramClasses(java.util.List):167:170 -> a
    8:9:com.android.tools.r8.graph.DexApplication$Builder addDataResourceProvider(com.android.tools.r8.DataResourceProvider):174:175 -> a
    10:11:com.android.tools.r8.graph.DexApplication$Builder setHighestSortingString(com.android.tools.r8.graph.DexString):179:180 -> a
    12:13:com.android.tools.r8.graph.DexApplication$Builder addProgramClass(com.android.tools.r8.graph.DexProgramClass):184:185 -> a
    14:14:com.android.tools.r8.graph.DexApplication$Builder addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass,boolean):190:190 -> a
    15:15:boolean com.android.tools.r8.graph.DexProgramClass.isProgramClass():0:0 -> a
    15:15:com.android.tools.r8.graph.DexApplication$Builder addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass,boolean):190 -> a
    16:21:com.android.tools.r8.graph.DexApplication$Builder addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass,boolean):191:196 -> a
    22:22:com.android.tools.r8.graph.DexApplication$Builder addToMainDexList(java.util.Collection):212:212 -> a
    1:1:java.util.Set getMainDexList():208:208 -> b
    1:1:java.util.Collection getProgramClasses():200:200 -> c
    1:1:java.util.Collection getSynthesizedClasses():204:204 -> d
    com.android.tools.r8.graph.DexApplication$Builder self() -> e
com.android.tools.r8.graph.DexApplication$ReorderBox -> com.android.tools.r8.graph.z$b:
    java.util.List classes -> a
    1:2:void <init>(java.util.List):70:71 -> <init>
    1:1:java.util.List getClasses():84:84 -> a
    1:3:boolean reorderClasses():76:78 -> b
com.android.tools.r8.graph.DexByteCodeWriter -> com.android.tools.r8.graph.A:
    com.android.tools.r8.graph.DexApplication application -> a
    com.android.tools.r8.utils.InternalOptions options -> b
    1:3:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions):25:27 -> <init>
    java.lang.String getFileEnding() -> a
    java.io.PrintStream lambda$write$1(java.io.PrintStream,com.android.tools.r8.graph.DexClass) -> a
    void lambda$write$2(java.io.PrintStream) -> a
    void writeField(com.android.tools.r8.graph.DexEncodedField,java.io.PrintStream) -> a
    void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream) -> a
    1:1:com.android.tools.r8.graph.DexByteCodeWriter$OutputStreamProvider oneFilePerClass(java.nio.file.Path):38:38 -> a
    2:3:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):39:40 -> a
    4:7:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):39:42 -> a
    8:8:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):41:41 -> a
    9:11:void ensureParentExists(java.nio.file.Path):31:33 -> a
    9:11:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):43 -> a
    12:12:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):44:44 -> a
    13:20:void write(com.android.tools.r8.graph.DexByteCodeWriter$OutputStreamProvider,java.util.function.Consumer):66:73 -> a
    21:23:boolean anyMethodMatches(com.android.tools.r8.graph.DexClass):80:82 -> a
    24:31:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):86:93 -> a
    32:32:void lambda$writeClass$3(java.io.PrintStream,com.android.tools.r8.graph.DexEncodedField):88:88 -> a
    33:33:void lambda$writeClass$4(java.io.PrintStream,com.android.tools.r8.graph.DexEncodedMethod):91:91 -> a
    void writeClassFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> b
    void writeMethodsFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> b
    1:2:void write(java.nio.file.Path):49:50 -> b
    3:5:void ensureParentExists(java.nio.file.Path):31:33 -> b
    3:5:void write(java.nio.file.Path):52 -> b
    6:8:void write(java.nio.file.Path):53:55 -> b
    9:11:void write(java.nio.file.Path):53:55 -> b
    12:12:void write(java.io.PrintStream):60:60 -> b
    void writeClassHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> c
    void writeMethodsHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> c
    void writeFieldsFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> d
    void writeFieldsHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> e
com.android.tools.r8.graph.DexByteCodeWriter$OutputStreamProvider -> com.android.tools.r8.graph.A$a:
    java.io.PrintStream get(com.android.tools.r8.graph.DexClass) -> a
com.android.tools.r8.graph.DexCallSite -> com.android.tools.r8.graph.C:
    com.android.tools.r8.graph.DexString methodName -> c
    java.util.List bootstrapArgs -> f
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.DexProto methodProto -> d
    com.android.tools.r8.graph.DexEncodedArray encodedArray -> g
    com.android.tools.r8.graph.DexMethod method -> h
    int instructionOffset -> i
    com.android.tools.r8.graph.DexMethodHandle bootstrapMethod -> e
    1:1:void <clinit>():24:24 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,java.util.List):43:43 -> <init>
    2:22:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,java.util.List):32:52 -> <init>
    1:12:com.android.tools.r8.graph.DexCallSite fromAsmInvokeDynamic(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):68:79 -> a
    13:14:com.android.tools.r8.graph.DexCallSite com.android.tools.r8.graph.JarApplicationReader.getCallSite(java.lang.String,java.lang.String,com.android.tools.r8.graph.DexMethodHandle,java.util.List):101:102 -> a
    13:14:com.android.tools.r8.graph.DexCallSite fromAsmInvokeDynamic(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):83 -> a
    15:15:com.android.tools.r8.graph.DexCallSite com.android.tools.r8.graph.JarApplicationReader.getCallSite(java.lang.String,java.lang.String,com.android.tools.r8.graph.DexMethodHandle,java.util.List):101:101 -> a
    15:15:com.android.tools.r8.graph.DexCallSite fromAsmInvokeDynamic(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):83 -> a
    16:16:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):145:145 -> a
    1:14:com.android.tools.r8.graph.DexEncodedArray getEncodedArray():289:302 -> c
    1:10:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):120:129 -> collectIndexedItems
    11:11:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> collectIndexedItems
    11:11:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):129 -> collectIndexedItems
    12:15:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):130:133 -> collectIndexedItems
    16:16:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> collectIndexedItems
    16:16:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):129 -> collectIndexedItems
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):140:140 -> collectMixedSectionItems
    1:1:int compareTo(java.lang.Object):24:24 -> compareTo
    2:8:int compareTo(com.android.tools.r8.graph.DexCallSite):160:166 -> compareTo
    2:8:int compareTo(java.lang.Object):24 -> compareTo
    1:1:int computeHashCode():91:91 -> computeHashCode
    1:1:java.lang.String getHash():155:155 -> d
    1:1:java.lang.String toSmaliString():151:151 -> toSmaliString
    1:11:java.lang.String toString():104:114 -> toString
com.android.tools.r8.graph.DexCallSite$1 -> com.android.tools.r8.graph.B:
com.android.tools.r8.graph.DexCallSite$HashBuilder -> com.android.tools.r8.graph.C$a:
    java.io.ByteArrayOutputStream bytes -> a
    com.android.tools.r8.graph.DexCallSite this$0 -> c
    java.io.ObjectOutputStream out -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():169:169 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexCallSite):169:169 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexCallSite$1):169:169 -> <init>
    1:2:void write(com.android.tools.r8.graph.DexString):174:175 -> a
    3:3:void write(com.android.tools.r8.graph.DexMethodHandle):183:183 -> a
    4:4:boolean com.android.tools.r8.graph.DexMethodHandle.isFieldHandle():293:293 -> a
    4:4:void write(com.android.tools.r8.graph.DexMethodHandle):184 -> a
    5:5:void write(com.android.tools.r8.graph.DexMethodHandle):185:185 -> a
    6:6:void write(com.android.tools.r8.graph.DexField):208:208 -> a
    6:6:void write(com.android.tools.r8.graph.DexMethodHandle):185 -> a
    7:7:void write(com.android.tools.r8.graph.DexType):179:179 -> a
    7:7:void write(com.android.tools.r8.graph.DexField):208 -> a
    7:7:void write(com.android.tools.r8.graph.DexMethodHandle):185 -> a
    8:8:void write(com.android.tools.r8.graph.DexField):209:209 -> a
    8:8:void write(com.android.tools.r8.graph.DexMethodHandle):185 -> a
    9:9:void write(com.android.tools.r8.graph.DexType):179:179 -> a
    9:9:void write(com.android.tools.r8.graph.DexField):209 -> a
    9:9:void write(com.android.tools.r8.graph.DexMethodHandle):185 -> a
    10:10:void write(com.android.tools.r8.graph.DexField):210:210 -> a
    10:10:void write(com.android.tools.r8.graph.DexMethodHandle):185 -> a
    11:11:void write(com.android.tools.r8.graph.DexMethodHandle):187:187 -> a
    12:12:void write(com.android.tools.r8.graph.DexMethod):202:202 -> a
    12:12:void write(com.android.tools.r8.graph.DexMethodHandle):187 -> a
    13:13:void write(com.android.tools.r8.graph.DexType):179:179 -> a
    13:13:void write(com.android.tools.r8.graph.DexMethod):202 -> a
    13:13:void write(com.android.tools.r8.graph.DexMethodHandle):187 -> a
    14:15:void write(com.android.tools.r8.graph.DexMethod):203:204 -> a
    14:15:void write(com.android.tools.r8.graph.DexMethodHandle):187 -> a
    16:17:void write(com.android.tools.r8.graph.DexProto):192:193 -> a
    18:18:void write(com.android.tools.r8.graph.DexType):179:179 -> a
    18:18:void write(com.android.tools.r8.graph.DexProto):193 -> a
    19:21:void write(com.android.tools.r8.graph.DexProto):194:196 -> a
    22:22:void write(com.android.tools.r8.graph.DexType):179:179 -> a
    22:22:void write(com.android.tools.r8.graph.DexProto):197 -> a
    23:34:void write(java.util.List):214:225 -> a
    35:35:void write(com.android.tools.r8.graph.DexType):179:179 -> a
    35:35:void write(java.util.List):225 -> a
    36:68:void write(java.util.List):229:261 -> a
    69:85:java.lang.String build():267:283 -> a
com.android.tools.r8.graph.DexClass -> com.android.tools.r8.graph.D:
    com.android.tools.r8.graph.DexEncodedField[] instanceFields -> j
    com.android.tools.r8.utils.OptionalBool isResolvable -> h
    com.android.tools.r8.graph.DexEncodedField[] staticFields -> i
    com.android.tools.r8.graph.DexTypeList interfaces -> f
    java.util.List nestMembers -> p
    java.util.Optional cachedClassInitializer -> a
    com.android.tools.r8.graph.EnclosingMethodAttribute enclosingMethod -> m
    boolean $assertionsDisabled -> r
    com.android.tools.r8.graph.DexEncodedMethod[] directMethods -> k
    com.android.tools.r8.origin.Origin origin -> b
    com.android.tools.r8.graph.DexString sourceFile -> g
    com.android.tools.r8.graph.NestHostClassAttribute nestHost -> o
    com.android.tools.r8.graph.DexAnnotationSet annotations -> q
    com.android.tools.r8.graph.DexType type -> c
    java.util.List innerClasses -> n
    com.android.tools.r8.graph.ClassAccessFlags accessFlags -> d
    com.android.tools.r8.graph.DexType superType -> e
    com.android.tools.r8.graph.DexEncodedMethod[] virtualMethods -> l
    1:1:void <clinit>():30:30 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.origin.Origin,boolean):90:90 -> <init>
    2:81:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.origin.Origin,boolean):40:119 -> <init>
    82:82:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.origin.Origin,boolean):109:109 -> <init>
    1:1:com.android.tools.r8.graph.DexType getType():720:720 -> A
    1:1:boolean hasClassInitializer():724:724 -> B
    1:1:com.android.tools.r8.graph.DexEncodedMethod getDefaultInitializer():742:742 -> C
    1:1:boolean hasDefaultInitializer():728 -> C
    1:1:boolean hasKotlinInfo():968:968 -> D
    1:2:boolean hasStaticSynchronizedMethods():997:998 -> E
    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isSynchronized():124:124 -> E
    3:3:boolean hasStaticSynchronizedMethods():998 -> E
    1:5:java.util.List instanceFields():454:458 -> F
    1:4:boolean isAnonymousClass():919:922 -> G
    boolean isClasspathClass() -> H
    1:1:boolean isEnum():646:646 -> I
    2:2:boolean com.android.tools.r8.graph.ClassAccessFlags.isEnum():191:191 -> I
    2:2:boolean isEnum():646 -> I
    1:1:boolean isInANest():926:926 -> J
    1:1:boolean isInterface():642:642 -> K
    2:2:boolean com.android.tools.r8.graph.ClassAccessFlags.isInterface():155:155 -> K
    2:2:boolean isInterface():642 -> K
    boolean isLibraryClass() -> L
    1:3:boolean isLocalClass():906:908 -> M
    1:3:boolean isMemberClass():912:914 -> N
    1:1:boolean isNestHost():939:939 -> O
    1:1:boolean isNestMember():943:943 -> P
    boolean isNotProgramClass() -> Q
    boolean isProgramClass() -> R
    1:1:java.lang.Iterable methods():135:135 -> S
    1:5:java.util.List staticFields():396:400 -> T
    1:4:boolean verifyNoDuplicateFields():521:524 -> U
    1:4:boolean verifyNoDuplicateMethods():284:287 -> V
    1:5:java.util.List virtualMethods():204:208 -> W
    void addDependencies(com.android.tools.r8.dex.MixedSectionCollection) -> a
    com.android.tools.r8.graph.DexClass asDexClass() -> a
    java.util.Iterator lambda$allImmediateSupertypes$3(java.util.Iterator) -> a
    1:3:java.lang.Iterable fields(java.util.function.Predicate):129:131 -> a
    4:4:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
    4:4:java.lang.Iterable fields(java.util.function.Predicate):129 -> a
    5:11:void appendDirectMethod(com.android.tools.r8.graph.DexEncodedMethod):158:164 -> a
    12:22:void appendDirectMethods(java.util.Collection):168:178 -> a
    23:26:void setDirectMethod(int,com.android.tools.r8.graph.DexEncodedMethod):190:193 -> a
    27:30:void setDirectMethods(com.android.tools.r8.graph.DexEncodedMethod[]):197:200 -> a
    31:31:int lambda$allMethodsSorted$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):308:308 -> a
    32:54:void virtualizeMethods(java.util.Set):329:351 -> a
    55:59:void forEachField(java.util.function.Consumer):387:391 -> a
    60:62:void setInstanceField(int,com.android.tools.r8.graph.DexEncodedField):492:494 -> a
    63:65:void setInstanceFields(com.android.tools.r8.graph.DexEncodedField[]):498:500 -> a
    66:67:boolean verifyCorrectnessOfFieldHolders(java.lang.Iterable):514:515 -> a
    68:68:com.android.tools.r8.graph.DexEncodedField lookupInstanceField(com.android.tools.r8.graph.DexField):536:536 -> a
    68:68:com.android.tools.r8.graph.DexEncodedField lookupField(com.android.tools.r8.graph.DexField):554 -> a
    69:69:com.android.tools.r8.graph.DexEncodedField lookupStaticField(com.android.tools.r8.graph.DexField):531:531 -> a
    69:69:com.android.tools.r8.graph.DexEncodedField lookupField(com.android.tools.r8.graph.DexField):555 -> a
    70:70:com.android.tools.r8.graph.DexEncodedMethod lookupDirectMethod(com.android.tools.r8.graph.DexMethod):560:560 -> a
    71:72:com.android.tools.r8.graph.DexItem lookupTarget(com.android.tools.r8.graph.DexItem[],com.android.tools.r8.graph.Descriptor):617:618 -> a
    73:75:com.android.tools.r8.graph.DexEncodedMethod getInitializer(com.android.tools.r8.graph.DexType[]):732:734 -> a
    76:83:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate):791:798 -> a
    84:92:boolean hasClassInitializerThatCannotBePostponed():812:820 -> a
    84:92:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate):802 -> a
    93:96:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate):805:808 -> a
    97:97:boolean lambda$defaultValuesForStaticFieldsMayTriggerAllocation$4(com.android.tools.r8.graph.DexEncodedField):855:855 -> a
    98:106:void replaceInnerClassAttributeForThisClass(com.android.tools.r8.graph.InnerClassAttribute):894:902 -> a
    107:108:void setNestHost(com.android.tools.r8.graph.DexType):934:935 -> a
    109:109:boolean hasInstanceFieldsDirectlyOrIndirectly(com.android.tools.r8.graph.AppView):976:976 -> a
    110:110:boolean hasInstanceFields():972:972 -> a
    110:110:boolean hasInstanceFieldsDirectlyOrIndirectly(com.android.tools.r8.graph.AppView):979 -> a
    111:111:boolean hasInstanceFieldsDirectlyOrIndirectly(com.android.tools.r8.graph.AppView):982:982 -> a
    112:112:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    112:112:boolean hasInstanceFieldsDirectlyOrIndirectly(com.android.tools.r8.graph.AppView):982 -> a
    113:113:boolean hasInstanceFieldsDirectlyOrIndirectly(com.android.tools.r8.graph.AppView):983:983 -> a
    114:114:boolean isValid(com.android.tools.r8.utils.InternalOptions):987:987 -> a
    115:115:boolean verifyNoAbstractMethodsOnNonAbstractClasses(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):272:272 -> a
    115:115:boolean isValid(com.android.tools.r8.utils.InternalOptions):987 -> a
    116:116:boolean isAbstract():626:626 -> a
    116:116:boolean verifyNoAbstractMethodsOnNonAbstractClasses(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):273 -> a
    116:116:boolean isValid(com.android.tools.r8.utils.InternalOptions):987 -> a
    117:118:boolean verifyNoAbstractMethodsOnNonAbstractClasses(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):274:275 -> a
    117:118:boolean isValid(com.android.tools.r8.utils.InternalOptions):987 -> a
    119:119:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():290:290 -> a
    119:119:boolean verifyNoAbstractMethodsOnNonAbstractClasses(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):275 -> a
    119:119:boolean isValid(com.android.tools.r8.utils.InternalOptions):987 -> a
    120:121:boolean verifyNoAbstractMethodsOnNonAbstractClasses(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):275:276 -> a
    120:121:boolean isValid(com.android.tools.r8.utils.InternalOptions):987 -> a
    122:126:boolean isValid(com.android.tools.r8.utils.InternalOptions):988:992 -> a
    1:5:void removeDirectMethod(int):182:186 -> b
    6:11:void appendVirtualMethod(com.android.tools.r8.graph.DexEncodedMethod):212:217 -> b
    12:21:void appendVirtualMethods(java.util.Collection):221:230 -> b
    22:24:void setVirtualMethod(int,com.android.tools.r8.graph.DexEncodedMethod):242:244 -> b
    25:27:void setVirtualMethods(com.android.tools.r8.graph.DexEncodedMethod[]):248:250 -> b
    28:29:boolean verifyCorrectnessOfMethodHolders(java.lang.Iterable):264:265 -> b
    30:34:void forEachMethod(java.util.function.Consumer):293:297 -> b
    35:37:void setStaticField(int,com.android.tools.r8.graph.DexEncodedField):433:435 -> b
    38:40:void setStaticFields(com.android.tools.r8.graph.DexEncodedField[]):439:441 -> b
    41:45:boolean verifyCorrectnessOfFieldHolder(com.android.tools.r8.graph.DexEncodedField):504:508 -> b
    46:46:com.android.tools.r8.graph.DexEncodedField lookupInstanceField(com.android.tools.r8.graph.DexField):536:536 -> b
    47:47:com.android.tools.r8.graph.DexEncodedMethod lookupDirectMethod(com.android.tools.r8.graph.DexMethod):560:560 -> b
    47:47:com.android.tools.r8.graph.DexEncodedMethod lookupMethod(com.android.tools.r8.graph.DexMethod):580 -> b
    48:48:com.android.tools.r8.graph.DexEncodedMethod lookupVirtualMethod(com.android.tools.r8.graph.DexMethod):570:570 -> b
    48:48:com.android.tools.r8.graph.DexEncodedMethod lookupMethod(com.android.tools.r8.graph.DexMethod):581 -> b
    49:49:com.android.tools.r8.graph.DexEncodedMethod lookupDirectMethod(java.util.function.Predicate):565:565 -> b
    50:50:boolean isFinal():634:634 -> b
    50:50:boolean isEffectivelyFinal(com.android.tools.r8.graph.AppView):638 -> b
    51:56:boolean initializationOfParentTypesMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate):838:843 -> b
    1:5:boolean verifyCorrectnessOfMethodHolder(com.android.tools.r8.graph.DexEncodedMethod):254:258 -> c
    6:6:com.android.tools.r8.graph.DexEncodedField lookupStaticField(com.android.tools.r8.graph.DexField):531:531 -> c
    7:7:com.android.tools.r8.graph.DexEncodedMethod lookupVirtualMethod(com.android.tools.r8.graph.DexMethod):570:570 -> c
    8:8:com.android.tools.r8.graph.DexEncodedMethod lookupVirtualMethod(java.util.function.Predicate):575:575 -> c
    9:15:boolean isResolvable(com.android.tools.r8.graph.AppView):758:764 -> c
    16:16:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> c
    16:16:boolean com.android.tools.r8.graph.DexType.isResolvable(com.android.tools.r8.graph.AppView):299 -> c
    16:16:boolean isResolvable(com.android.tools.r8.graph.AppView):765 -> c
    17:17:boolean com.android.tools.r8.graph.DexType.isResolvable(com.android.tools.r8.graph.AppView):300:300 -> c
    17:17:boolean isResolvable(com.android.tools.r8.graph.AppView):765 -> c
    18:18:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> c
    18:18:boolean com.android.tools.r8.graph.DexType.isResolvable(com.android.tools.r8.graph.AppView):299 -> c
    18:18:boolean isResolvable(com.android.tools.r8.graph.AppView):765 -> c
    19:22:boolean isResolvable(com.android.tools.r8.graph.AppView):771:774 -> c
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):146:146 -> collectMixedSectionItems
    boolean isDexClass() -> d
    1:3:java.lang.Iterable methods(java.util.function.Predicate):139:141 -> d
    4:4:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> d
    4:4:java.lang.Iterable methods(java.util.function.Predicate):139 -> d
    5:5:boolean isSerializable(com.android.tools.r8.graph.AppView):778:778 -> d
    1:2:void removeEnclosingMethod(java.util.function.Predicate):871:872 -> e
    1:1:void removeInnerClasses(java.util.function.Predicate):881:881 -> f
    boolean isStaticMember() -> g
    1:1:com.android.tools.r8.graph.DexType getType():720:720 -> h
    1:1:com.android.tools.r8.graph.DexReference toReference():653 -> h
    1:3:java.lang.Iterable allImmediateSupertypes():825:827 -> i
    4:7:java.lang.Iterable allImmediateSupertypes():826:829 -> i
    1:6:com.android.tools.r8.graph.DexEncodedMethod[] allMethodsSorted():302:307 -> j
    com.android.tools.r8.graph.DexLibraryClass asLibraryClass() -> k
    com.android.tools.r8.graph.DexProgramClass asProgramClass() -> l
    1:1:void clearEnclosingMethod():867:867 -> m
    1:1:void clearInnerClasses():877:877 -> n
    1:1:void clearNestHost():930:930 -> o
    1:2:boolean defaultValuesForStaticFieldsMayTriggerAllocation():854:855 -> p
    1:5:java.util.List directMethods():150:154 -> q
    1:1:java.lang.Iterable fields():125:125 -> r
    1:10:com.android.tools.r8.graph.DexEncodedMethod getClassInitializer():703:712 -> s
    1:1:com.android.tools.r8.graph.EnclosingMethodAttribute getEnclosingMethod():863:863 -> t
    1:2:com.android.tools.r8.graph.InnerClassAttribute getInnerClassAttributeForThisClass():885:886 -> u
    1:1:java.util.List getInnerClasses():859:859 -> v
    com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo() -> w
    1:5:com.android.tools.r8.graph.DexType getNestHost():947:951 -> x
    1:1:com.android.tools.r8.graph.NestHostClassAttribute getNestHostClassAttribute():957:957 -> y
    1:1:java.util.List getNestMembersClassAttributes():961:961 -> z
com.android.tools.r8.graph.DexClass$FieldSetter -> com.android.tools.r8.graph.D$a:
    void setField(int,com.android.tools.r8.graph.DexEncodedField) -> a
com.android.tools.r8.graph.DexClass$MethodSetter -> com.android.tools.r8.graph.D$b:
    void setMethod(int,com.android.tools.r8.graph.DexEncodedMethod) -> a
com.android.tools.r8.graph.DexClasspathClass -> com.android.tools.r8.graph.E:
    boolean $assertionsDisabled -> s
    1:1:void <clinit>():16:16 -> <clinit>
    1:18:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean):36:53 -> <init>
    boolean isClasspathClass() -> H
    boolean isNotProgramClass() -> Q
    1:1:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):70:70 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):59:59 -> collectIndexedItems
    1:1:java.lang.String toString():64:64 -> toString
    1:1:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo():90:90 -> w
com.android.tools.r8.graph.DexCode -> com.android.tools.r8.graph.F:
    com.android.tools.r8.graph.DexCode$Try[] tries -> d
    com.android.tools.r8.graph.DexDebugInfoForWriting debugInfoForWriting -> i
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.DexString highestSortingString -> g
    com.android.tools.r8.code.Instruction[] instructions -> f
    int incomingRegisterSize -> b
    com.android.tools.r8.graph.DexCode$TryHandler[] handlers -> e
    int outgoingRegisterSize -> c
    com.android.tools.r8.graph.DexDebugInfo debugInfo -> h
    int registerSize -> a
    1:1:void <clinit>():33:33 -> <clinit>
    1:9:void <init>(int,int,int,com.android.tools.r8.code.Instruction[],com.android.tools.r8.graph.DexCode$Try[],com.android.tools.r8.graph.DexCode$TryHandler[],com.android.tools.r8.graph.DexDebugInfo):56:64 -> <init>
    1:1:com.android.tools.r8.graph.DexDebugInfo getDebugInfo():100:100 -> a
    2:4:void setDebugInfo(com.android.tools.r8.graph.DexDebugInfo):104:106 -> a
    5:26:com.android.tools.r8.graph.DexDebugInfo debugInfoWithFakeThisParameter(com.android.tools.r8.graph.DexItemFactory):111:132 -> a
    27:30:int getLargestPrefix(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexString):136:139 -> a
    31:33:void updateHighestSortingString(com.android.tools.r8.graph.DexString):428:430 -> a
    1:8:com.android.tools.r8.graph.DexDebugInfoForWriting getDebugInfoForWriting():417:424 -> b
    1:9:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):217:225 -> buildIR
    1:8:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):236:243 -> buildInliningIR
    1:1:com.android.tools.r8.graph.DexCode withoutThisParameter():74:74 -> c
    2:11:com.android.tools.r8.graph.DexDebugInfo debugInfoWithoutFirstParameter():148:157 -> c
    2:11:com.android.tools.r8.graph.DexCode withoutThisParameter():81 -> c
    12:12:com.android.tools.r8.graph.DexCode withoutThisParameter():81:81 -> c
    1:17:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):395:411 -> collectIndexedItems
    1:3:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):440:442 -> collectMixedSectionItems
    4:4:void com.android.tools.r8.graph.DexDebugInfo.collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):66:66 -> collectMixedSectionItems
    4:4:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):442 -> collectMixedSectionItems
    1:28:boolean computeEquals(java.lang.Object):178:205 -> computeEquals
    1:7:int computeHashCode():167:173 -> computeHashCode
    1:1:int estimatedSizeForInlining():91:91 -> estimatedSizeForInlining
    1:1:boolean isEmptyVoidMethod():212:212 -> isEmptyVoidMethod
    1:7:void registerCodeReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry):248:254 -> registerCodeReferences
    1:1:java.lang.String toString():262:262 -> toString
    2:63:java.lang.String toString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):267:328 -> toString
    64:64:java.lang.String toString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):309:309 -> toString
com.android.tools.r8.graph.DexCode$Try -> com.android.tools.r8.graph.F$a:
    boolean $assertionsDisabled -> e
    int handlerIndex -> d
    int startAddress -> b
    int instructionCount -> c
    int handlerOffset -> a
    1:1:void <clinit>():447:447 -> <clinit>
    1:5:void <init>(int,int,int):456:460 -> <init>
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):509:509 -> collectMixedSectionItems
    1:9:boolean equals(java.lang.Object):477:485 -> equals
    1:1:int hashCode():469:469 -> hashCode
    1:4:java.lang.String toString():492:495 -> toString
com.android.tools.r8.graph.DexCode$TryHandler -> com.android.tools.r8.graph.F$b:
    com.android.tools.r8.graph.DexCode$TryHandler$TypeAddrPair[] pairs -> a
    int catchAllAddr -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():514:514 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexCode$TryHandler$TypeAddrPair[],int):521:523 -> <init>
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):549:549 -> collectIndexedItems
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):555:555 -> collectMixedSectionItems
    1:6:boolean equals(java.lang.Object):536:541 -> equals
    1:1:int hashCode():528:528 -> hashCode
    1:16:java.lang.String toString():560:575 -> toString
com.android.tools.r8.graph.DexCode$TryHandler$TypeAddrPair -> com.android.tools.r8.graph.F$b$a:
    com.android.tools.r8.graph.DexType type -> a
    int addr -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():578:578 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexType,int):583:585 -> <init>
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):591:591 -> collectIndexedItems
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):597:597 -> collectMixedSectionItems
    1:3:boolean equals(java.lang.Object):610:612 -> equals
    1:1:int hashCode():602:602 -> hashCode
com.android.tools.r8.graph.DexDebugEntry -> com.android.tools.r8.graph.G:
    com.android.tools.r8.ir.code.Position callerPosition -> i
    com.android.tools.r8.graph.DexString sourceFile -> d
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.DexMethod method -> h
    boolean prologueEnd -> e
    boolean epilogueBegin -> f
    boolean lineEntry -> a
    int address -> b
    int line -> c
    java.util.Map locals -> g
    1:1:void <clinit>():13:13 -> <clinit>
    1:11:void <init>(boolean,int,int,com.android.tools.r8.graph.DexString,boolean,boolean,com.android.tools.r8.com.google.common.collect.ImmutableMap,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):34:44 -> <init>
    1:38:java.lang.String toString(boolean):53:90 -> a
    1:1:java.lang.String toString():49:49 -> toString
com.android.tools.r8.graph.DexDebugEntryBuilder -> com.android.tools.r8.graph.H:
    com.android.tools.r8.graph.DexDebugPositionState positionState -> h
    java.util.Map locals -> c
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexDebugEntry pending -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap arguments -> d
    java.util.List entries -> g
    boolean prologueEnd -> a
    boolean epilogueBegin -> b
    java.util.Map canonicalizedLocals -> f
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.graph.DexMethod):59:59 -> <init>
    2:21:void <init>(int,com.android.tools.r8.graph.DexMethod):43:62 -> <init>
    22:22:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexItemFactory):65:65 -> <init>
    23:71:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexItemFactory):43:91 -> <init>
    1:2:void visit(com.android.tools.r8.graph.DexDebugEvent$AdvancePC):101:102 -> a
    3:3:void visit(com.android.tools.r8.graph.DexDebugEvent$AdvanceLine):107:107 -> a
    4:4:void visit(com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame):112:112 -> a
    5:6:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):117:118 -> a
    7:7:void visit(com.android.tools.r8.graph.DexDebugEvent$SetFile):123:123 -> a
    8:8:void visit(com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd):128:128 -> a
    9:9:void visit(com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin):133:133 -> a
    10:10:void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal):144:144 -> a
    11:12:com.android.tools.r8.graph.DebugLocalInfo canonicalize(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):200:201 -> a
    11:12:void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal):145 -> a
    13:14:void com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry.set(com.android.tools.r8.graph.DebugLocalInfo):29:30 -> a
    13:14:void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal):145 -> a
    15:15:void visit(com.android.tools.r8.graph.DexDebugEvent$EndLocal):150:150 -> a
    16:16:void com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry.unset():34:34 -> a
    16:16:void visit(com.android.tools.r8.graph.DexDebugEvent$EndLocal):150 -> a
    17:17:void visit(com.android.tools.r8.graph.DexDebugEvent$RestartLocal):155:155 -> a
    18:18:void com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry.reset():38:38 -> a
    18:18:void visit(com.android.tools.r8.graph.DexDebugEvent$RestartLocal):155 -> a
    19:21:void entryEventReceived(boolean):159:161 -> a
    22:30:com.android.tools.r8.com.google.common.collect.ImmutableMap getLocals():215:223 -> a
    22:30:void entryEventReceived(boolean):169 -> a
    31:31:void entryEventReceived(boolean):169:169 -> a
    32:56:void entryEventReceived(boolean):161:185 -> a
    57:62:java.util.List build():190:195 -> a
    63:64:com.android.tools.r8.graph.DebugLocalInfo canonicalize(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):200:201 -> a
    63:64:void startArgument(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):137 -> a
    65:66:void startArgument(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):138:139 -> a
    67:68:void com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry.set(com.android.tools.r8.graph.DebugLocalInfo):29:30 -> a
    67:68:void startArgument(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):139 -> a
    69:72:com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry getEntry(int):206:209 -> a
com.android.tools.r8.graph.DexDebugEntryBuilder$1 -> com.android.tools.r8.graph.H$a:
com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry -> com.android.tools.r8.graph.H$b:
    com.android.tools.r8.graph.DebugLocalInfo current -> a
    com.android.tools.r8.graph.DebugLocalInfo last -> b
    1:1:void <init>():24:24 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexDebugEntryBuilder$1):24:24 -> <init>
com.android.tools.r8.graph.DexDebugEvent -> com.android.tools.r8.graph.I:
    com.android.tools.r8.graph.DexDebugEvent[] EMPTY_ARRAY -> a
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void <init>():13:13 -> <init>
    void accept(com.android.tools.r8.graph.DexDebugEventVisitor) -> a
    void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping) -> a
com.android.tools.r8.graph.DexDebugEvent$AdvanceLine -> com.android.tools.r8.graph.I$a:
    int delta -> b
    1:2:void <init>(int):148:149 -> <init>
    1:2:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):154:155 -> a
    3:3:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):160:160 -> a
    1:1:boolean equals(java.lang.Object):176:176 -> equals
    1:1:int hashCode():170:170 -> hashCode
    1:1:java.lang.String toString():165:165 -> toString
com.android.tools.r8.graph.DexDebugEvent$AdvancePC -> com.android.tools.r8.graph.I$b:
    int delta -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():41:41 -> <clinit>
    1:2:void <init>(int):51:52 -> <init>
    1:2:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):47:48 -> a
    3:4:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):57:58 -> a
    1:1:boolean equals(java.lang.Object):75:75 -> equals
    1:1:int hashCode():69:69 -> hashCode
    1:1:java.lang.String toString():64:64 -> toString
com.android.tools.r8.graph.DexDebugEvent$Default -> com.android.tools.r8.graph.I$c:
    int value -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():426:426 -> <clinit>
    1:3:void <init>(int):430:432 -> <init>
    1:1:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):437:437 -> a
    2:2:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):442:442 -> a
    3:4:int getLineDelta():451:452 -> a
    1:2:int getPCDelta():446:447 -> b
    1:1:boolean equals(java.lang.Object):468:468 -> equals
    1:1:int hashCode():462:462 -> hashCode
    1:1:java.lang.String toString():457:457 -> toString
com.android.tools.r8.graph.DexDebugEvent$EndLocal -> com.android.tools.r8.graph.I$d:
    int registerNum -> b
    1:2:void <init>(int):272:273 -> <init>
    1:2:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):278:279 -> a
    3:3:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):284:284 -> a
    1:1:boolean equals(java.lang.Object):300:300 -> equals
    1:1:int hashCode():294:294 -> hashCode
    1:1:java.lang.String toString():289:289 -> toString
com.android.tools.r8.graph.DexDebugEvent$RestartLocal -> com.android.tools.r8.graph.I$e:
    int registerNum -> b
    1:2:void <init>(int):309:310 -> <init>
    1:2:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):315:316 -> a
    3:3:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):321:321 -> a
    1:1:boolean equals(java.lang.Object):337:337 -> equals
    1:1:int hashCode():331:331 -> hashCode
    1:1:java.lang.String toString():326:326 -> toString
com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin -> com.android.tools.r8.graph.I$f:
    1:1:void <init>():115:115 -> <init>
    1:1:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):120:120 -> a
    2:2:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):125:125 -> a
    1:1:boolean equals(java.lang.Object):140:140 -> equals
com.android.tools.r8.graph.DexDebugEvent$SetFile -> com.android.tools.r8.graph.I$g:
    com.android.tools.r8.graph.DexString fileName -> b
    1:2:void <init>(com.android.tools.r8.graph.DexString):346:347 -> <init>
    1:2:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):352:353 -> a
    3:3:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):364:364 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):359:359 -> collectIndexedItems
    2:2:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> collectIndexedItems
    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):359 -> collectIndexedItems
    1:2:boolean equals(java.lang.Object):380:381 -> equals
    1:2:int hashCode():374:375 -> hashCode
    1:1:java.lang.String toString():369:369 -> toString
com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame -> com.android.tools.r8.graph.I$h:
    com.android.tools.r8.graph.DexMethod callee -> b
    com.android.tools.r8.ir.code.Position caller -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():385:385 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):390:393 -> <init>
    void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping) -> a
    1:1:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):403:403 -> a
    1:5:boolean equals(java.lang.Object):418:422 -> equals
    1:1:int hashCode():413:413 -> hashCode
    1:1:java.lang.String toString():408:408 -> toString
com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd -> com.android.tools.r8.graph.I$i:
    1:1:void <init>():82:82 -> <init>
    1:1:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):87:87 -> a
    2:2:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):92:92 -> a
    1:1:boolean equals(java.lang.Object):108:108 -> equals
com.android.tools.r8.graph.DexDebugEvent$StartLocal -> com.android.tools.r8.graph.I$j:
    com.android.tools.r8.graph.DexString name -> c
    com.android.tools.r8.graph.DexString signature -> e
    com.android.tools.r8.graph.DexType type -> d
    int registerNum -> b
    1:5:void <init>(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):192:196 -> <init>
    1:8:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):205:212 -> a
    9:9:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):232:232 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):219:219 -> collectIndexedItems
    2:2:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> collectIndexedItems
    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):220 -> collectIndexedItems
    3:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):222:225 -> collectIndexedItems
    7:7:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> collectIndexedItems
    7:7:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):226 -> collectIndexedItems
    1:14:boolean equals(java.lang.Object):251:264 -> equals
    1:5:int hashCode():242:246 -> hashCode
    1:1:java.lang.String toString():237:237 -> toString
com.android.tools.r8.graph.DexDebugEventBuilder -> com.android.tools.r8.graph.J:
    boolean $assertionsDisabled -> m
    com.android.tools.r8.graph.DexItemFactory factory -> b
    int startLine -> l
    com.android.tools.r8.ir.code.Position emittedPosition -> i
    com.android.tools.r8.graph.DexEncodedMethod method -> a
    int emittedPc -> h
    com.android.tools.r8.utils.InternalOptions options -> c
    java.util.ArrayList arguments -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap emittedLocals -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap pendingLocals -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap lastKnownLocals -> e
    boolean pendingLocalChanges -> g
    java.util.List events -> k
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):61:61 -> <init>
    2:22:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):44:64 -> <init>
    1:2:void add(int,int,com.android.tools.r8.ir.code.Instruction):69:70 -> a
    3:5:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):125:127 -> a
    3:5:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMaps.emptyMap():136:136 -> a
    6:6:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):129 -> a
    6:6:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
    7:9:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):129:131 -> a
    7:9:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
    10:10:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
    10:10:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):131 -> a
    10:10:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
    11:14:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):131:134 -> a
    11:14:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
    15:18:void initialize(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):140:143 -> a
    15:18:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):135 -> a
    15:18:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
    19:19:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMaps.emptyMap():136:136 -> a
    19:19:void initialize(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):145 -> a
    19:19:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):135 -> a
    19:19:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
    20:31:void initialize(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):145:156 -> a
    20:31:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):135 -> a
    20:31:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
    32:32:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
    32:32:void initialize(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):156 -> a
    32:32:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):135 -> a
    32:32:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
    33:33:void initialize(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):156:156 -> a
    33:33:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):135 -> a
    33:33:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
    34:43:void add(int,int,com.android.tools.r8.ir.code.Instruction):76:85 -> a
    44:48:void startArgument(com.android.tools.r8.ir.code.Argument):160:164 -> a
    44:48:void add(int,int,com.android.tools.r8.ir.code.Instruction):85 -> a
    49:50:void add(int,int,com.android.tools.r8.ir.code.Instruction):86:87 -> a
    51:52:void updateLocals(com.android.tools.r8.ir.code.DebugLocalsChange):169:170 -> a
    51:52:void add(int,int,com.android.tools.r8.ir.code.Instruction):87 -> a
    53:54:void add(int,int,com.android.tools.r8.ir.code.Instruction):89:90 -> a
    55:76:void emitDebugPosition(int,com.android.tools.r8.ir.code.Position):182:203 -> a
    55:76:void add(int,int,com.android.tools.r8.ir.code.Instruction):91 -> a
    77:77:void add(int,int,com.android.tools.r8.ir.code.Instruction):94:94 -> a
    78:88:void emitLocalChanges(int):208:218 -> a
    78:88:void add(int,int,com.android.tools.r8.ir.code.Instruction):95 -> a
    89:90:void add(int,int,com.android.tools.r8.ir.code.Instruction):101:102 -> a
    91:104:com.android.tools.r8.graph.DexDebugInfo build():108:121 -> a
    105:132:void emitAdvancementEvents(int,com.android.tools.r8.ir.code.Position,int,com.android.tools.r8.ir.code.Position,java.util.List,com.android.tools.r8.graph.DexItemFactory):229:256 -> a
    133:151:void emitLocalChangeEvents(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.List,com.android.tools.r8.graph.DexItemFactory):272:290 -> a
    152:152:void com.android.tools.r8.graph.DexDebugEvent$StartLocal.<init>(int,com.android.tools.r8.graph.DebugLocalInfo):200:200 -> a
    152:152:void emitLocalChangeEvents(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.List,com.android.tools.r8.graph.DexItemFactory):290 -> a
    153:154:void emitLocalChangeEvents(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.List,com.android.tools.r8.graph.DexItemFactory):290:291 -> a
    1:4:boolean localsChanged():174:177 -> b
com.android.tools.r8.graph.DexDebugEventVisitor -> com.android.tools.r8.graph.K:
    void visit(com.android.tools.r8.graph.DexDebugEvent$AdvanceLine) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$AdvancePC) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$Default) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$EndLocal) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$RestartLocal) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$SetFile) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal) -> a
com.android.tools.r8.graph.DexDebugInfo -> com.android.tools.r8.graph.L:
    com.android.tools.r8.graph.DexString[] parameters -> b
    com.android.tools.r8.graph.DexDebugEvent[] events -> c
    boolean $assertionsDisabled -> d
    int startLine -> a
    1:1:void <clinit>():11:11 -> <clinit>
    1:8:void <init>(int,com.android.tools.r8.graph.DexString[],com.android.tools.r8.graph.DexDebugEvent[]):17:24 -> <init>
    1:5:java.util.List computeEntries(com.android.tools.r8.graph.DexMethod):28:32 -> a
    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):60:61 -> collectIndexedItems
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):66:66 -> collectMixedSectionItems
    1:9:boolean computeEquals(java.lang.Object):44:52 -> computeEquals
    1:3:int computeHashCode():37:39 -> computeHashCode
    1:8:java.lang.String toString():71:78 -> toString
com.android.tools.r8.graph.DexDebugInfoForWriting -> com.android.tools.r8.graph.M:
    1:4:void <init>(com.android.tools.r8.graph.DexDebugInfo):17:20 -> <init>
    5:5:void <init>(com.android.tools.r8.graph.DexDebugInfo):17:17 -> <init>
    1:1:boolean lambda$new$0(com.android.tools.r8.graph.DexDebugEvent):19:19 -> a
    1:1:com.android.tools.r8.graph.DexDebugEvent[] lambda$new$1(int):20:20 -> b
com.android.tools.r8.graph.DexDebugPositionState -> com.android.tools.r8.graph.N:
    com.android.tools.r8.graph.DexString currentFile -> c
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.DexMethod currentMethod -> d
    int currentLine -> b
    int currentPc -> a
    com.android.tools.r8.ir.code.Position currentCallerPosition -> e
    1:1:void <clinit>():23:23 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.graph.DexMethod):30:30 -> <init>
    2:10:void <init>(int,com.android.tools.r8.graph.DexMethod):24:32 -> <init>
    void visit(com.android.tools.r8.graph.DexDebugEvent$EndLocal) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$RestartLocal) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal) -> a
    1:2:void visit(com.android.tools.r8.graph.DexDebugEvent$AdvancePC):37:38 -> a
    3:3:void visit(com.android.tools.r8.graph.DexDebugEvent$AdvanceLine):43:43 -> a
    4:5:void visit(com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame):48:49 -> a
    6:8:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):54:56 -> a
    9:9:void visit(com.android.tools.r8.graph.DexDebugEvent$SetFile):61:61 -> a
    10:10:com.android.tools.r8.ir.code.Position getCurrentCallerPosition():106:106 -> a
    1:1:com.android.tools.r8.graph.DexString getCurrentFile():98:98 -> b
    1:1:int getCurrentLine():94:94 -> c
    1:1:com.android.tools.r8.graph.DexMethod getCurrentMethod():102:102 -> d
    1:1:int getCurrentPc():90:90 -> e
com.android.tools.r8.graph.DexDefinition -> com.android.tools.r8.graph.O:
    1:1:void <init>():13:13 -> <init>
    com.android.tools.r8.graph.DexClass asDexClass() -> a
    1:1:java.util.stream.Stream filterDexEncodedField(java.util.stream.Stream):61:61 -> a
    2:2:java.util.stream.Stream filter(java.util.stream.Stream,java.util.function.Predicate,java.util.function.Function):53:53 -> a
    2:2:java.util.stream.Stream filterDexEncodedField(java.util.stream.Stream):61 -> a
    com.android.tools.r8.graph.DexEncodedField asDexEncodedField() -> b
    1:1:java.util.stream.Stream filterDexEncodedMethod(java.util.stream.Stream):65:65 -> b
    2:2:java.util.stream.Stream filter(java.util.stream.Stream,java.util.function.Predicate,java.util.function.Function):53:53 -> b
    2:2:java.util.stream.Stream filterDexEncodedMethod(java.util.stream.Stream):65 -> b
    com.android.tools.r8.graph.DexEncodedMethod asDexEncodedMethod() -> c
    boolean isDexClass() -> d
    boolean isDexEncodedField() -> e
    boolean isDexEncodedMethod() -> f
    boolean isStaticMember() -> g
    com.android.tools.r8.graph.DexReference toReference() -> h
com.android.tools.r8.graph.DexDefinitionSupplier -> com.android.tools.r8.graph.P:
com.android.tools.r8.graph.DexEncodedAnnotation -> com.android.tools.r8.graph.Q:
    com.android.tools.r8.graph.DexAnnotationElement[] elements -> b
    com.android.tools.r8.graph.DexType type -> a
    int sorted -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():12:12 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement[]):21:21 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement[]):19:23 -> <init>
    1:2:void sort():62:63 -> a
    3:3:int sortedHashCode():74:74 -> a
    3:3:void sort():63 -> a
    4:9:void sort():63:68 -> a
    10:10:int sortedHashCode():74:74 -> a
    10:10:void sort():70 -> a
    11:11:void sort():70:70 -> a
    12:12:int lambda$sort$0(com.android.tools.r8.graph.DexAnnotationElement,com.android.tools.r8.graph.DexAnnotationElement):66:66 -> a
    13:13:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):255:255 -> a
    13:13:int lambda$sort$0(com.android.tools.r8.graph.DexAnnotationElement,com.android.tools.r8.graph.DexAnnotationElement):66 -> a
    14:20:com.android.tools.r8.graph.DexEncodedAnnotation rewrite(java.util.function.Function,java.util.function.Function):81:87 -> a
    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):29:30 -> collectIndexedItems
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):36:36 -> collectMixedSectionItems
    1:3:boolean equals(java.lang.Object):54:56 -> equals
    1:1:int hashCode():46:46 -> hashCode
    1:1:java.lang.String toString():41:41 -> toString
com.android.tools.r8.graph.DexEncodedArray -> com.android.tools.r8.graph.S:
    com.android.tools.r8.graph.DexValue[] values -> a
    1:2:void <init>(com.android.tools.r8.graph.DexValue[]):14:15 -> <init>
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):21:21 -> collectIndexedItems
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):26:26 -> collectMixedSectionItems
    1:1:boolean equals(java.lang.Object):39:39 -> equals
    1:1:int hashCode():31:31 -> hashCode
    1:1:java.lang.String toString():44:44 -> toString
com.android.tools.r8.graph.DexEncodedField -> com.android.tools.r8.graph.T:
    com.android.tools.r8.kotlin.KotlinMemberInfo kotlinMemberInfo -> f
    com.android.tools.r8.graph.DexAnnotationSet annotations -> c
    com.android.tools.r8.graph.DexEncodedField[] EMPTY_ARRAY -> g
    com.android.tools.r8.graph.DexField field -> a
    boolean $assertionsDisabled -> h
    com.android.tools.r8.ir.optimize.info.FieldOptimizationInfo optimizationInfo -> e
    com.android.tools.r8.graph.FieldAccessFlags accessFlags -> b
    com.android.tools.r8.graph.DexValue staticValue -> d
    1:2:void <clinit>():22:23 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.FieldAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexValue):37:37 -> <init>
    2:13:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.FieldAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexValue):30:41 -> <init>
    1:3:boolean isProgramField(com.android.tools.r8.graph.DexDefinitionSupplier):45:47 -> a
    4:4:void setOptimizationInfo(com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo):67:67 -> a
    5:6:void setKotlinMemberInfo(com.android.tools.r8.kotlin.KotlinMemberInfo):75:76 -> a
    7:7:boolean isStatic():139:139 -> a
    7:7:boolean mayTriggerClassInitializationSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):215 -> a
    8:8:boolean mayTriggerClassInitializationSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):218:218 -> a
    9:9:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    9:9:boolean mayTriggerClassInitializationSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):218 -> a
    10:19:boolean mayTriggerClassInitializationSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):222:231 -> a
    20:20:boolean mayTriggerClassInitializationSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):230:230 -> a
    21:23:void setStaticValue(com.android.tools.r8.graph.DexValue):161:163 -> a
    24:24:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):178:178 -> a
    25:25:boolean isStatic():139:139 -> a
    25:25:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):181 -> a
    26:27:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):181:182 -> a
    28:28:com.android.tools.r8.ir.optimize.info.FieldOptimizationInfo getOptimizationInfo():53:53 -> a
    28:28:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):186 -> a
    29:35:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):186:192 -> a
    36:43:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):191:198 -> a
    44:44:boolean isStatic():139:139 -> a
    44:44:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):198 -> a
    45:45:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):199:199 -> a
    46:46:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    46:46:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):199 -> a
    47:51:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):200:204 -> a
    52:52:boolean com.android.tools.r8.graph.DexValue.isDefault(com.android.tools.r8.graph.DexType):183:183 -> a
    52:52:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):204 -> a
    53:53:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):205:205 -> a
    54:54:boolean com.android.tools.r8.graph.DexValue.isDefault(com.android.tools.r8.graph.DexType):183:183 -> a
    54:54:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.AppView):204 -> a
    55:55:boolean lambda$mayTriggerClassInitializationSideEffects$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):226:226 -> a
    56:56:java.lang.Boolean lambda$mayTriggerClassInitializationSideEffects$1(com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):231:231 -> a
    57:64:com.android.tools.r8.graph.DexEncodedField toTypeSubstitutedField(com.android.tools.r8.graph.DexField):238:245 -> a
    com.android.tools.r8.graph.DexEncodedField asDexEncodedField() -> b
    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):86:87 -> collectIndexedItems
    3:3:void com.android.tools.r8.graph.DexAnnotationSet.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):70:70 -> collectIndexedItems
    3:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):87 -> collectIndexedItems
    4:5:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):88:89 -> collectIndexedItems
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):95:95 -> collectMixedSectionItems
    boolean isDexEncodedField() -> e
    1:1:boolean isStatic():139:139 -> g
    1:1:boolean isStaticMember():148 -> g
    1:1:com.android.tools.r8.graph.DexReference toReference():120:120 -> h
    1:1:com.android.tools.r8.graph.DexField getKey():115:115 -> i
    1:1:com.android.tools.r8.graph.PresortedComparable getKey():22 -> i
    1:1:com.android.tools.r8.graph.DexField getKey():115:115 -> j
    1:7:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo getMutableOptimizationInfo():57:63 -> k
    1:1:com.android.tools.r8.ir.optimize.info.FieldOptimizationInfo getOptimizationInfo():53:53 -> l
    1:2:com.android.tools.r8.graph.DexValue getStaticValue():167:168 -> m
    1:1:boolean hasAnnotation():152:152 -> n
    1:2:boolean hasExplicitStaticValue():156:157 -> o
    1:1:java.lang.String toSmaliString():105:105 -> toSmaliString
    1:1:java.lang.String toSourceString():110:110 -> toSourceString
    1:1:java.lang.String toString():100:100 -> toString
com.android.tools.r8.graph.DexEncodedMethod -> com.android.tools.r8.graph.U:
    com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo callSiteOptimizationInfo -> h
    com.android.tools.r8.graph.DexAnnotationSet annotations -> c
    boolean obsolete -> n
    boolean d8R8Synthesized -> o
    com.android.tools.r8.kotlin.KotlinMemberInfo kotlinMemberInfo -> j
    com.android.tools.r8.graph.ParameterAnnotationsList parameterAnnotationsList -> d
    int classFileVersion -> i
    com.android.tools.r8.graph.DexEncodedMethod ANNOTATION_REFERENCE -> r
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap NO_PARAMETER_INFO -> s
    com.android.tools.r8.utils.OptionalBool isLibraryMethodOverride -> l
    com.android.tools.r8.graph.DexMethod method -> a
    boolean $assertionsDisabled -> t
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState compilationState -> f
    com.android.tools.r8.graph.Code code -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap parameterInfo -> m
    com.android.tools.r8.graph.DexEncodedMethod defaultInterfaceMethodImplementation -> k
    com.android.tools.r8.graph.DexEncodedMethod SENTINEL -> q
    com.android.tools.r8.graph.MethodAccessFlags accessFlags -> b
    com.android.tools.r8.graph.DexEncodedMethod[] EMPTY_ARRAY -> p
    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo optimizationInfo -> g
    1:46:void <clinit>():79:124 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code):213:213 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,int):223:223 -> <init>
    3:3:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,int,boolean):243:243 -> <init>
    4:123:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,int,boolean):134:253 -> <init>
    1:2:boolean isClassInitializer():313:314 -> A
    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> A
    3:3:boolean isClassInitializer():314 -> A
    4:4:boolean isClassInitializer():314:314 -> A
    1:1:boolean isD8R8Synthesized():161:161 -> B
    1:1:boolean isDefaultMethod():319:319 -> C
    2:2:boolean isAbstract():290:290 -> C
    2:2:boolean isDefaultMethod():319 -> C
    3:3:boolean isDefaultMethod():319:319 -> C
    1:2:boolean isDirectMethod():371:372 -> D
    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> D
    3:3:boolean isDirectMethod():372 -> D
    4:4:boolean isDirectMethod():372:372 -> D
    1:1:boolean isFinal():294:294 -> E
    1:2:boolean isInitializer():298:299 -> F
    1:2:boolean isInstanceInitializer():303:304 -> G
    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> G
    3:3:boolean isInstanceInitializer():304 -> G
    4:4:boolean isInstanceInitializer():304:304 -> G
    1:1:boolean isKotlinExtensionFunction():422:422 -> H
    2:2:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isExtensionFunction():63:63 -> H
    2:2:boolean isKotlinExtensionFunction():422 -> H
    1:1:boolean isKotlinExtensionProperty():430:430 -> I
    1:1:boolean isKotlinFunction():418:418 -> J
    2:2:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isFunction():59:59 -> J
    2:2:boolean isKotlinFunction():418 -> J
    3:3:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isExtensionFunction():63:63 -> J
    3:3:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isFunction():59 -> J
    3:3:boolean isKotlinFunction():418 -> J
    4:4:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isFunction():59:59 -> J
    4:4:boolean isKotlinFunction():418 -> J
    1:1:boolean isKotlinProperty():426:426 -> K
    2:2:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isBackingField():67:67 -> K
    2:2:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isProperty():71 -> K
    2:2:boolean isKotlinProperty():426 -> K
    3:7:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isProperty():71:75 -> K
    3:7:boolean isKotlinProperty():426 -> K
    8:8:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isBackingField():67:67 -> K
    8:8:boolean com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind.isProperty():71 -> K
    8:8:boolean isKotlinProperty():426 -> K
    1:1:com.android.tools.r8.utils.OptionalBool isLibraryMethodOverride():257:257 -> L
    1:2:boolean isNonAbstractNonNativeMethod():348:349 -> M
    1:2:boolean isNonAbstractVirtualMethod():343:344 -> N
    1:2:boolean isNonPrivateVirtualMethod():334:335 -> O
    1:1:boolean isObsolete():171:171 -> P
    1:1:boolean isOnlyInlinedIntoNestMembers():434:434 -> Q
    1:2:boolean isPrivateMethod():363:364 -> R
    1:2:boolean isProcessed():285:286 -> S
    1:2:boolean isPublicMethod():358:359 -> T
    1:2:boolean isPublicized():353:354 -> U
    1:2:boolean isStatic():377:378 -> V
    1:2:boolean isSyntheticMethod():391:392 -> W
    1:2:boolean isVirtualMethod():329:330 -> X
    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> X
    3:3:boolean isVirtualMethod():330 -> X
    1:2:void markNotProcessed():538:539 -> Y
    1:2:java.lang.String qualifiedName():664:665 -> Z
    1:1:boolean access$300(com.android.tools.r8.graph.DexEncodedMethod):79:79 -> a
    2:2:com.android.tools.r8.graph.DexEncodedMethod$CompilationState access$502(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$CompilationState):79:79 -> a
    3:3:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo access$602(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo):79:79 -> a
    4:6:void setLibraryMethodOverride(com.android.tools.r8.utils.OptionalBool):261:263 -> a
    7:7:boolean com.android.tools.r8.utils.BooleanLatticeElement.isPossiblyFalse():52:52 -> a
    7:7:void setLibraryMethodOverride(com.android.tools.r8.utils.OptionalBool):263 -> a
    8:9:void setLibraryMethodOverride(com.android.tools.r8.utils.OptionalBool):263:264 -> a
    10:15:void setLibraryMethodOverride(com.android.tools.r8.utils.OptionalBool):263:268 -> a
    16:16:boolean com.android.tools.r8.utils.BooleanLatticeElement.isPossiblyFalse():52:52 -> a
    16:16:void setLibraryMethodOverride(com.android.tools.r8.utils.OptionalBool):269 -> a
    17:22:void setLibraryMethodOverride(com.android.tools.r8.utils.OptionalBool):268:273 -> a
    23:25:boolean isProgramMethod(com.android.tools.r8.graph.DexDefinitionSupplier):277:279 -> a
    26:29:void setKotlinMemberInfo(com.android.tools.r8.kotlin.KotlinMemberInfo):400:403 -> a
    30:31:boolean isInliningCandidate(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):442:443 -> a
    32:87:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):452:507 -> a
    88:88:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):503:503 -> a
    89:89:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):499:499 -> a
    90:93:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):492:495 -> a
    94:97:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):485:488 -> a
    98:101:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):478:481 -> a
    102:105:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):471:474 -> a
    106:125:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):512:531 -> a
    126:126:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):528:528 -> a
    127:127:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):525:525 -> a
    128:128:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):522:522 -> a
    129:129:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):519:519 -> a
    130:148:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):516:534 -> a
    149:150:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):543:544 -> a
    151:152:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):553:554 -> a
    153:156:void setCode(com.android.tools.r8.graph.Code,com.android.tools.r8.graph.AppView):559:562 -> a
    157:157:boolean hasParameterInfo():587:587 -> a
    157:157:void setCode(com.android.tools.r8.graph.Code,com.android.tools.r8.graph.AppView):562 -> a
    158:159:void setCode(com.android.tools.r8.graph.Code,com.android.tools.r8.graph.AppView):562:563 -> a
    160:161:void setParameterInfo(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):582:583 -> a
    160:161:void setCode(com.android.tools.r8.graph.Code,com.android.tools.r8.graph.AppView):563 -> a
    162:162:void setCode(com.android.tools.r8.graph.Code,com.android.tools.r8.graph.AppView):565:565 -> a
    163:165:void setCode(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,com.android.tools.r8.graph.AppView):569:571 -> a
    166:169:boolean keepLocals(com.android.tools.r8.utils.InternalOptions):575:578 -> a
    170:171:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo getOptimizationInfo():1209:1210 -> a
    170:171:boolean keepLocals(com.android.tools.r8.utils.InternalOptions):578 -> a
    172:172:boolean keepLocals(com.android.tools.r8.utils.InternalOptions):578:578 -> a
    173:178:void collectMixedSectionItemsWithCodeMapping(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.dex.MethodToCodeObjectMapping):619:624 -> a
    179:187:java.lang.String descriptor(com.android.tools.r8.naming.NamingLens):674:682 -> a
    188:200:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):686:698 -> a
    201:258:java.lang.String com.android.tools.r8.graph.DexCode.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):332:389 -> a
    201:258:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):699 -> a
    259:262:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):699:702 -> a
    263:272:com.android.tools.r8.graph.DexCode generateCodeFromTemplate(int,int,com.android.tools.r8.code.Instruction[]):729:738 -> a
    273:274:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):793:794 -> a
    275:279:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):814:818 -> a
    275:279:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):794 -> a
    280:287:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):817:824 -> a
    280:287:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):794 -> a
    288:294:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):823:829 -> a
    288:294:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):794 -> a
    295:310:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):827:842 -> a
    295:310:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):794 -> a
    311:311:void setObsolete():177:177 -> a
    311:311:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):843 -> a
    311:311:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):794 -> a
    312:312:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorDexCode(com.android.tools.r8.graph.DexItemFactory):844:844 -> a
    312:312:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):794 -> a
    313:313:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):796:796 -> a
    314:318:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):848:852 -> a
    314:318:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):796 -> a
    319:327:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):851:859 -> a
    319:327:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):796 -> a
    328:336:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):856:864 -> a
    328:336:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):796 -> a
    337:345:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):861:869 -> a
    337:345:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):796 -> a
    346:350:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):867:871 -> a
    346:350:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):796 -> a
    351:352:boolean isStaticMember():383:384 -> a
    351:352:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):872 -> a
    351:352:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):796 -> a
    353:375:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):876:898 -> a
    353:375:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):796 -> a
    376:376:void setObsolete():177:177 -> a
    376:376:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):899 -> a
    376:376:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):796 -> a
    377:377:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsErrorCfCode(com.android.tools.r8.graph.DexItemFactory):900:900 -> a
    377:377:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.AppView):796 -> a
    378:382:void setDebugInfoWithFakeThisParameter(com.android.tools.r8.graph.Code,int,com.android.tools.r8.graph.AppView):801:805 -> a
    383:388:void setDebugInfoWithFakeThisParameter(com.android.tools.r8.graph.Code,int,com.android.tools.r8.graph.AppView):804:809 -> a
    389:390:com.android.tools.r8.graph.DexEncodedMethod toTypeSubstitutedMethod(com.android.tools.r8.graph.DexMethod):904:905 -> a
    391:405:com.android.tools.r8.graph.DexEncodedMethod toTypeSubstitutedMethod(com.android.tools.r8.graph.DexMethod,java.util.function.Consumer):909:923 -> a
    406:426:com.android.tools.r8.graph.DexEncodedMethod toInitializerForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):927:947 -> a
    427:427:void com.android.tools.r8.graph.MethodAccessFlags.setConstructor():188:188 -> a
    427:427:com.android.tools.r8.graph.DexEncodedMethod toInitializerForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):947 -> a
    428:428:com.android.tools.r8.graph.DexEncodedMethod toInitializerForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):948:948 -> a
    429:434:com.android.tools.r8.graph.DexEncodedMethod createFieldAccessorBridge(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):953:958 -> a
    435:461:com.android.tools.r8.graph.DexEncodedMethod createFieldAccessorBridge(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):955:981 -> a
    462:462:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    462:462:com.android.tools.r8.graph.DexEncodedMethod createFieldAccessorBridge(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):981 -> a
    463:463:com.android.tools.r8.ir.conversion.SourceCode lambda$createFieldAccessorBridge$1(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.ir.code.Position):963:963 -> a
    464:467:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):966:969 -> a
    468:468:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstance():481:481 -> a
    468:468:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstancePut():497 -> a
    468:468:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):970 -> a
    469:469:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstancePut():497:497 -> a
    469:469:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):970 -> a
    470:472:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):971:973 -> a
    473:473:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isStaticPut():489:489 -> a
    473:473:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):973 -> a
    474:475:void lambda$createFieldAccessorBridge$2(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess,com.android.tools.r8.graph.UseRegistry):973:974 -> a
    476:478:com.android.tools.r8.graph.DexEncodedMethod toRenamedHolderMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):987:989 -> a
    479:489:com.android.tools.r8.graph.DexEncodedMethod toEmulateDispatchLibraryMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,java.util.List,com.android.tools.r8.graph.AppView):1000:1010 -> a
    490:490:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    490:490:com.android.tools.r8.graph.DexEncodedMethod toEmulateDispatchLibraryMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,java.util.List,com.android.tools.r8.graph.AppView):1010 -> a
    491:496:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1047:1052 -> a
    497:497:void com.android.tools.r8.graph.AccessFlags.demote(int):276:276 -> a
    497:497:void com.android.tools.r8.graph.AccessFlags.demoteFromFinal():233 -> a
    497:497:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1052 -> a
    498:505:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1054:1061 -> a
    506:506:void com.android.tools.r8.graph.MethodAccessFlags.setAbstract():168:168 -> a
    506:506:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1061 -> a
    507:507:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1064:1064 -> a
    508:508:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    508:508:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1064 -> a
    509:526:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1066:1083 -> a
    527:527:void com.android.tools.r8.graph.MethodAccessFlags.setBridge():140:140 -> a
    527:527:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1083 -> a
    528:531:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):1085:1088 -> a
    532:535:void lambda$toForwardingMethod$4(com.android.tools.r8.graph.UseRegistry):1077:1080 -> a
    536:551:com.android.tools.r8.graph.DexEncodedMethod createDesugaringForwardingMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):1093:1108 -> a
    552:552:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    552:552:com.android.tools.r8.graph.DexEncodedMethod createDesugaringForwardingMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):1108 -> a
    553:564:com.android.tools.r8.graph.DexCode rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.graph.DexItemFactory,boolean):1134:1145 -> a
    565:575:com.android.tools.r8.graph.DexCode rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.graph.DexItemFactory,boolean):1144:1154 -> a
    576:577:void setOptimizationInfo(com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo):1222:1223 -> a
    578:579:void joinCallSiteOptimizationInfo(com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo,com.android.tools.r8.graph.AppView):1233:1234 -> a
    1:2:void removeCode():641:642 -> a0
    1:1:com.android.tools.r8.graph.Code access$400(com.android.tools.r8.graph.DexEncodedMethod):79:79 -> b
    2:5:void upgradeClassFileVersion(int):657:660 -> b
    6:6:void lambda$toInitializerForwardingBridge$0(com.android.tools.r8.graph.UseRegistry):942:942 -> b
    7:34:com.android.tools.r8.graph.DexEncodedMethod toStaticForwardingBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):1016:1043 -> b
    1:1:void setObsolete():177:177 -> b0
    1:1:com.android.tools.r8.graph.DexEncodedMethod$CompilationState access$500(com.android.tools.r8.graph.DexEncodedMethod):79:79 -> c
    2:5:void lambda$toStaticForwardingBridge$3(com.android.tools.r8.graph.UseRegistry):1031:1034 -> c
    6:6:com.android.tools.r8.graph.DexEncodedMethod asDexEncodedMethod():1185:1185 -> c
    1:1:boolean shouldNotHaveCode():628:628 -> c0
    1:7:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):603:609 -> collectIndexedItems
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):614:614 -> collectMixedSectionItems
    1:1:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo access$600(com.android.tools.r8.graph.DexEncodedMethod):79:79 -> d
    2:5:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):1195:1198 -> d
    6:6:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> d
    6:6:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):1198 -> d
    7:7:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):1200:1200 -> d
    1:7:com.android.tools.r8.graph.DexEncodedMethod toAbstractMethod():712:718 -> d0
    8:8:void com.android.tools.r8.graph.MethodAccessFlags.setAbstract():168:168 -> d0
    8:8:com.android.tools.r8.graph.DexEncodedMethod toAbstractMethod():718 -> d0
    9:9:com.android.tools.r8.graph.DexEncodedMethod toAbstractMethod():719:719 -> d0
    1:1:com.android.tools.r8.kotlin.KotlinMemberInfo access$700(com.android.tools.r8.graph.DexEncodedMethod):79:79 -> e
    1:7:com.android.tools.r8.graph.DexEncodedMethod toEmptyThrowingMethodCf():783:789 -> e0
    1:1:int access$800(com.android.tools.r8.graph.DexEncodedMethod):79:79 -> f
    2:2:boolean isDexEncodedMethod():1179:1179 -> f
    1:10:com.android.tools.r8.graph.DexEncodedMethod toEmptyThrowingMethodDex():759:768 -> f0
    1:2:boolean isStaticMember():383:384 -> g
    3:3:com.android.tools.r8.graph.DexEncodedMethod$Builder builder(com.android.tools.r8.graph.DexEncodedMethod):1254:1254 -> g
    1:9:com.android.tools.r8.graph.DexEncodedMethod toStaticMethodWithoutThis():1118:1126 -> g0
    10:10:void setObsolete():177:177 -> g0
    10:10:com.android.tools.r8.graph.DexEncodedMethod toStaticMethodWithoutThis():1127 -> g0
    1:2:com.android.tools.r8.graph.DexReference toReference():1173:1174 -> h
    3:4:void copyMetadata(com.android.tools.r8.graph.DexEncodedMethod):1238:1239 -> h
    5:6:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo getOptimizationInfo():1209:1210 -> h
    5:6:void copyMetadata(com.android.tools.r8.graph.DexEncodedMethod):1241 -> h
    7:11:void copyMetadata(com.android.tools.r8.graph.DexEncodedMethod):1241:1245 -> h
    1:1:void unsetObsolete():204:204 -> h0
    1:5:void setDefaultInterfaceMethodImplementation(com.android.tools.r8.graph.DexEncodedMethod):185:189 -> i
    6:6:void com.android.tools.r8.graph.MethodAccessFlags.setAbstract():168:168 -> i
    6:6:void setDefaultInterfaceMethodImplementation(com.android.tools.r8.graph.DexEncodedMethod):189 -> i
    7:8:void setDefaultInterfaceMethodImplementation(com.android.tools.r8.graph.DexEncodedMethod):190:191 -> i
    9:9:com.android.tools.r8.graph.DexMethod getKey():1168:1168 -> i
    9:9:com.android.tools.r8.graph.PresortedComparable getKey():79 -> i
    1:8:com.android.tools.r8.graph.CfCode buildEmptyThrowingCfCode():772:779 -> j
    9:9:com.android.tools.r8.graph.DexEncodedMethod$Builder syntheticBuilder(com.android.tools.r8.graph.DexEncodedMethod):1250:1250 -> j
    1:2:com.android.tools.r8.graph.DexCode buildEmptyThrowingDexCode():748:749 -> k
    1:1:void checkIfObsolete():165:165 -> l
    1:2:java.lang.String codeToString():1160:1161 -> m
    1:2:java.lang.String descriptor():669:670 -> n
    1:2:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo getCallSiteOptimizationInfo():1227:1228 -> o
    1:3:int getClassFileVersion():646:648 -> p
    1:2:com.android.tools.r8.graph.Code getCode():636:637 -> q
    1:1:com.android.tools.r8.graph.DexEncodedMethod getDefaultInterfaceMethodImplementation():181:181 -> r
    1:1:com.android.tools.r8.graph.DexMethod getKey():1168:1168 -> s
    1:5:com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo getMutableOptimizationInfo():1214:1218 -> t
    1:2:java.lang.String toSourceString():707:708 -> toSourceString
    1:2:java.lang.String toString():596:597 -> toString
    1:2:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo getOptimizationInfo():1209:1210 -> u
    1:1:java.util.Map getParameterInfo():591:591 -> v
    1:2:boolean hasAnnotation():1190:1191 -> w
    1:2:boolean hasClassFileVersion():652:653 -> x
    1:1:boolean hasCode():632:632 -> y
    1:1:boolean hasParameterInfo():587:587 -> z
com.android.tools.r8.graph.DexEncodedMethod$1 -> com.android.tools.r8.graph.U$a:
com.android.tools.r8.graph.DexEncodedMethod$Builder -> com.android.tools.r8.graph.U$b:
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState compilationState -> f
    com.android.tools.r8.graph.DexAnnotationSet annotations -> c
    com.android.tools.r8.graph.Code code -> e
    com.android.tools.r8.kotlin.KotlinMemberInfo kotlinMemberInfo -> h
    com.android.tools.r8.graph.ParameterAnnotationsList parameterAnnotations -> d
    boolean d8R8Synthesized -> j
    boolean $assertionsDisabled -> k
    int classFileVersion -> i
    com.android.tools.r8.graph.MethodAccessFlags accessFlags -> b
    com.android.tools.r8.graph.DexMethod method -> a
    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo optimizationInfo -> g
    1:1:void <clinit>():1257:1257 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$1):1257:1257 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod,boolean,com.android.tools.r8.graph.DexEncodedMethod$1):1257:1257 -> <init>
    3:3:void <init>(com.android.tools.r8.graph.DexEncodedMethod):1271:1271 -> <init>
    4:22:void <init>(com.android.tools.r8.graph.DexEncodedMethod,boolean):1274:1292 -> <init>
    23:23:void <init>(com.android.tools.r8.graph.DexEncodedMethod,boolean):1288:1288 -> <init>
    1:1:com.android.tools.r8.graph.MethodAccessFlags access$000(com.android.tools.r8.graph.DexEncodedMethod$Builder):1257:1257 -> a
    2:2:void setMethod(com.android.tools.r8.graph.DexMethod):1297:1297 -> a
    3:22:com.android.tools.r8.graph.DexEncodedMethod$Builder removeParameterAnnotations(java.util.function.IntPredicate):1306:1325 -> a
    23:23:com.android.tools.r8.graph.DexEncodedMethod$Builder setParameterAnnotations(com.android.tools.r8.graph.ParameterAnnotationsList):1301:1301 -> a
    23:23:com.android.tools.r8.graph.DexEncodedMethod$Builder removeParameterAnnotations(java.util.function.IntPredicate):1325 -> a
    24:26:com.android.tools.r8.graph.DexEncodedMethod$Builder removeParameterAnnotations(java.util.function.IntPredicate):1328:1330 -> a
    27:27:com.android.tools.r8.graph.DexEncodedMethod$Builder setParameterAnnotations(com.android.tools.r8.graph.ParameterAnnotationsList):1301:1301 -> a
    27:27:com.android.tools.r8.graph.DexEncodedMethod$Builder removeParameterAnnotations(java.util.function.IntPredicate):1328 -> a
    28:30:com.android.tools.r8.graph.DexEncodedMethod$Builder adjustOptimizationInfoAfterRemovingThisParameter():1350:1352 -> a
    31:31:void setCode(com.android.tools.r8.graph.Code):1358:1358 -> a
    1:6:com.android.tools.r8.graph.DexEncodedMethod build():1362:1367 -> b
    7:20:com.android.tools.r8.graph.DexEncodedMethod build():1366:1379 -> b
    1:1:com.android.tools.r8.graph.DexEncodedMethod$Builder promoteToStatic():1335:1335 -> c
    2:2:void com.android.tools.r8.graph.AccessFlags.promoteToStatic():246:246 -> c
    2:2:com.android.tools.r8.graph.DexEncodedMethod$Builder promoteToStatic():1335 -> c
    1:5:com.android.tools.r8.graph.DexEncodedMethod$Builder withoutThisParameter():1340:1344 -> d
com.android.tools.r8.graph.DexEncodedMethod$CompilationState -> com.android.tools.r8.graph.U$c:
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_INLINING_CANDIDATE_SAME_NEST -> f
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_INLINING_CANDIDATE_SAME_CLASS -> g
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_NOT_INLINING_CANDIDATE -> b
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_INLINING_CANDIDATE_ANY -> c
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_INLINING_CANDIDATE_SUBCLASS -> d
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_INLINING_CANDIDATE_SAME_PACKAGE -> e
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState NOT_PROCESSED -> a
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState[] $VALUES -> h
    1:24:void <clinit>():93:116 -> <clinit>
    25:25:void <clinit>():89:89 -> <clinit>
    1:1:void <init>(java.lang.String,int):89:89 -> <init>
com.android.tools.r8.graph.DexField -> com.android.tools.r8.graph.V:
    com.android.tools.r8.graph.DexString name -> e
    com.android.tools.r8.graph.DexType type -> d
    com.android.tools.r8.graph.DexType holder -> c
    1:7:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,boolean):17:23 -> <init>
    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):10:10 -> a
    2:2:boolean match(com.android.tools.r8.graph.DexItem):10:10 -> a
    3:3:int slowCompareTo(java.lang.Object):10:10 -> a
    4:4:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):63:63 -> a
    5:13:int slowCompareTo(com.android.tools.r8.graph.DexField):83:91 -> a
    14:14:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):109:109 -> a
    15:15:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):173:173 -> a
    15:15:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):109 -> a
    16:16:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):113:113 -> a
    17:17:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):255:255 -> a
    17:17:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):113 -> a
    18:18:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):117:117 -> a
    19:19:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):173:173 -> a
    19:19:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):117 -> a
    20:20:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):255:255 -> a
    20:20:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):113 -> a
    21:21:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):173:173 -> a
    21:21:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):109 -> a
    22:22:boolean match(com.android.tools.r8.graph.DexEncodedField):127:127 -> a
    23:23:boolean match(com.android.tools.r8.graph.DexField):122:122 -> a
    23:23:boolean match(com.android.tools.r8.graph.DexEncodedField):127 -> a
    com.android.tools.r8.graph.DexField asDexField() -> c
    1:4:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):53:56 -> collectIndexedItems
    5:5:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> collectIndexedItems
    5:5:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):56 -> collectIndexedItems
    1:1:int compareTo(java.lang.Object):10:10 -> compareTo
    2:2:int compareTo(com.android.tools.r8.graph.DexField):78:78 -> compareTo
    2:2:int compareTo(java.lang.Object):10 -> compareTo
    1:5:boolean computeEquals(java.lang.Object):36:40 -> computeEquals
    1:3:int computeHashCode():29:31 -> computeHashCode
    boolean isDexField() -> f
    1:1:java.lang.String toSmaliString():136:136 -> toSmaliString
    1:1:java.lang.String toSourceString():141:141 -> toSourceString
    1:1:java.lang.String toString():47:47 -> toString
com.android.tools.r8.graph.DexItem -> com.android.tools.r8.graph.W:
    1:1:void <init>():12:12 -> <init>
    1:1:void collectAll(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexItem[]):15:15 -> a
    2:2:void lambda$collectAll$0(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexItem):15:15 -> a
    3:3:void collectAll(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.graph.DexItem[]):19:19 -> a
    4:4:void lambda$collectAll$1(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.graph.DexItem):19:19 -> a
    5:5:void collectAll(com.android.tools.r8.dex.MixedSectionCollection,java.util.Collection):24:24 -> a
    6:8:void consumeArray(com.android.tools.r8.graph.DexItem[],java.util.function.Consumer):35:37 -> a
    9:9:java.util.stream.Stream filter(java.util.stream.Stream,java.lang.Class):68:68 -> a
    1:1:void lambda$collectAll$2(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.graph.DexItem):24:24 -> b
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection):46:46 -> collectIndexedItems
    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod):50:50 -> collectIndexedItems
    1:1:java.lang.String toSmaliString():60:60 -> toSmaliString
    1:1:java.lang.String toSourceString():64:64 -> toSourceString
com.android.tools.r8.graph.DexItemFactory -> com.android.tools.r8.graph.X:
    com.android.tools.r8.graph.DexString getFieldName -> A0
    com.android.tools.r8.graph.DexString unboxIntMethodName -> Q
    com.android.tools.r8.graph.DexString iterableDescriptor -> b1
    com.android.tools.r8.graph.DexType fieldType -> F2
    com.android.tools.r8.graph.DexType runtimeExceptionType -> g3
    com.android.tools.r8.graph.DexItemFactory$ProxyMethods proxyMethods -> G3
    com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd setPrologueEnd -> m
    java.util.concurrent.ConcurrentHashMap classTypeLatticeInterfaces -> q
    com.android.tools.r8.graph.DexString runtimeExceptionDescriptor -> I0
    com.android.tools.r8.graph.DexString invocationHandlerDescriptor -> j1
    com.android.tools.r8.graph.DexString ordinalMethodName -> r0
    com.android.tools.r8.graph.DexString shortDescriptor -> A
    com.android.tools.r8.graph.DexString thisName -> R1
    com.android.tools.r8.graph.DexType nullValueType -> x4
    java.util.Map fields -> c
    com.android.tools.r8.graph.DexType annotationCovariantReturnTypes -> W3
    com.android.tools.r8.graph.DexType annotationType -> w2
    com.android.tools.r8.graph.DexItemFactory$ObjectsMethods objectsMethods -> s3
    com.android.tools.r8.graph.DexProto deserializeLambdaMethodProto -> K3
    java.util.Map libraryMethodsWithoutSideEffects -> s4
    com.android.tools.r8.graph.DexString getDeclaredConstructorName -> z0
    com.android.tools.r8.graph.DexItemFactory$AtomicFieldUpdaterMethods atomicFieldUpdaterMethods -> D3
    com.android.tools.r8.graph.DexType annotationInnerClass -> O3
    com.android.tools.r8.graph.DexType charSequenceType -> o2
    com.android.tools.r8.graph.DexString equalsIgnoreCaseMethodName -> a0
    com.android.tools.r8.graph.DexString unboxLongMethodName -> R
    com.android.tools.r8.graph.DexType externalizableType -> h4
    com.android.tools.r8.graph.DexType boxedByteType -> g2
    com.android.tools.r8.graph.DexString deserializeLambdaMethodName -> J3
    com.android.tools.r8.graph.DexString noSuchFieldErrorDescriptor -> I1
    com.android.tools.r8.graph.DexString trimName -> i0
    com.android.tools.r8.graph.DexString classConstructorMethodName -> Q1
    com.android.tools.r8.graph.DexString classDescriptor -> Q0
    com.android.tools.r8.graph.DexString collectionDescriptor -> r1
    com.android.tools.r8.graph.DexString voidDescriptor -> B
    java.util.Map protos -> d
    com.android.tools.r8.graph.DexType comparatorType -> W2
    java.util.concurrent.ConcurrentHashMap referenceTypeLatticeElements -> p
    com.android.tools.r8.graph.DexString annotationDescriptor -> Y0
    com.android.tools.r8.graph.DexString optionalIntDescriptor -> z1
    com.android.tools.r8.graph.DexType proxyType -> O2
    com.android.tools.r8.graph.DexString optionalLongDescriptor -> A1
    com.android.tools.r8.graph.DexString unboxFloatMethodName -> S
    com.android.tools.r8.graph.DexString booleanDescriptor -> t
    com.android.tools.r8.graph.DexType streamType -> f3
    com.android.tools.r8.graph.DexString methodTypeDescriptor -> i1
    com.android.tools.r8.graph.DexType classLoaderType -> E2
    com.android.tools.r8.graph.DexString invokeExactMethodName -> H0
    com.android.tools.r8.graph.DexString objectArrayDescriptor -> P0
    com.android.tools.r8.graph.DexString mapEntryDescriptor -> q1
    com.android.tools.r8.graph.DexString finalizeMethodName -> q0
    com.android.tools.r8.graph.DexType charArrayType -> U1
    com.android.tools.r8.graph.DexType enumType -> v2
    com.android.tools.r8.graph.DexString descriptorSeparator -> C
    com.android.tools.r8.graph.DexType annotationCovariantReturnType -> V3
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap advanceLines -> g
    com.android.tools.r8.graph.DexString getTypeNameName -> y0
    com.android.tools.r8.graph.DexType boxedNumberType -> n2
    java.util.Map methods -> e
    com.android.tools.r8.graph.DexItemFactory$ConstructorMethods constructorMethods -> z3
    com.android.tools.r8.graph.DexType annotationEnclosingMethod -> N3
    com.android.tools.r8.graph.DexString collectionsDescriptor -> a1
    com.android.tools.r8.graph.DexType boxedBooleanType -> f2
    com.android.tools.r8.graph.DexString unboxDoubleMethodName -> T
    com.android.tools.r8.graph.DexString byteDescriptor -> u
    com.android.tools.r8.graph.DexType serializableType -> g4
    com.android.tools.r8.graph.DexString substringName -> h0
    com.android.tools.r8.graph.DexString noClassDefFoundErrorDescriptor -> H1
    java.util.Set libraryClassesWithoutStaticInitialization -> v4
    com.android.tools.r8.graph.DexString getClassMethodName -> p0
    com.android.tools.r8.graph.DexString constructorMethodName -> P1
    com.android.tools.r8.graph.DexItemFactory$NullPointerExceptionMethods npeMethods -> B3
    com.android.tools.r8.graph.DexType collectionType -> V2
    com.android.tools.r8.graph.DexString boxedBooleanDescriptor -> D
    com.android.tools.r8.com.google.common.collect.BiMap primitiveToBoxed -> k4
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap advancePCs -> h
    com.android.tools.r8.graph.DexString enumDescriptor -> X0
    com.android.tools.r8.graph.DexString optionalDoubleDescriptor -> y1
    com.android.tools.r8.graph.DexType invocationHandlerType -> N2
    com.android.tools.r8.graph.DexType reflectiveOperationExceptionType -> o3
    java.util.Map methodHandles -> f
    com.android.tools.r8.graph.DexString getMethodName -> C0
    com.android.tools.r8.graph.DexString strictMathDescriptor -> d1
    com.android.tools.r8.graph.DexType optionalLongType -> e3
    java.util.Map setInlineFrames -> o
    com.android.tools.r8.graph.DexType classType -> D2
    com.android.tools.r8.graph.DexMethod metafactoryAltMethod -> m4
    com.android.tools.r8.graph.DexString charSequenceDescriptor -> K0
    com.android.tools.r8.graph.DexString serviceLoaderDescriptor -> l1
    com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin setEpilogueBegin -> l
    com.android.tools.r8.graph.DexString desiredAssertionStatusMethodName -> t0
    java.util.Set libraryMethodsReturningReceiver -> q4
    com.android.tools.r8.graph.DexString charArrayDescriptor -> T1
    com.android.tools.r8.graph.DexProto twrCloseResourceMethodProto -> I3
    com.android.tools.r8.graph.DexType annotationSynthesizedClassMap -> U3
    com.android.tools.r8.graph.DexType classArrayType -> u2
    com.android.tools.r8.graph.DexItemFactory$StringMethods stringMethods -> u3
    com.android.tools.r8.graph.DexType annotationEnclosingClass -> M3
    com.android.tools.r8.graph.DexType stringConcatFactoryType -> n4
    com.android.tools.r8.graph.DexString unboxBooleanMethodName -> M
    com.android.tools.r8.graph.DexType boxedShortType -> m2
    com.android.tools.r8.graph.DexString arraysDescriptor -> C1
    com.android.tools.r8.graph.DexString indexOfMethodName -> c0
    com.android.tools.r8.graph.DexType enumerationType -> f4
    com.android.tools.r8.graph.DexType voidType -> e2
    com.android.tools.r8.graph.DexString reflectiveOperationExceptionDescriptor -> K1
    com.android.tools.r8.graph.DexString toStringMethodName -> k0
    com.android.tools.r8.graph.DexString autoCloseableDescriptor -> S0
    com.android.tools.r8.graph.DexString callableDescriptor -> t1
    com.android.tools.r8.graph.DexType mapEntryType -> U2
    com.android.tools.r8.graph.DexType methodTypeType -> M2
    com.android.tools.r8.graph.DexType npeType -> n3
    com.android.tools.r8.graph.DexString unboxByteMethodName -> N
    com.android.tools.r8.graph.DexString mathDescriptor -> c1
    com.android.tools.r8.graph.DexString getDeclaredFieldName -> B0
    com.android.tools.r8.graph.DexItemFactory$AssertionErrorMethods assertionErrorMethods -> x3
    com.android.tools.r8.graph.DexType referenceFieldUpdaterType -> C2
    com.android.tools.r8.graph.DexMethod metafactoryMethod -> l4
    com.android.tools.r8.graph.DexType optionalIntType -> d3
    com.android.tools.r8.graph.DexString proxyDescriptor -> k1
    com.android.tools.r8.graph.DexString assertionErrorDescriptor -> J0
    java.util.Map strings -> a
    com.android.tools.r8.graph.DexString enumValuesFieldName -> S1
    com.android.tools.r8.graph.DexString nameMethodName -> s0
    com.android.tools.r8.graph.DexType objectArrayType -> t2
    com.android.tools.r8.graph.DexType annotationThrows -> T3
    com.android.tools.r8.graph.DexType boxedLongType -> l2
    com.android.tools.r8.graph.DexString unboxCharMethodName -> O
    com.android.tools.r8.graph.DexType annotationDefault -> L3
    com.android.tools.r8.graph.DexString unboxShortMethodName -> P
    com.android.tools.r8.graph.DexString contentEqualsMethodName -> b0
    com.android.tools.r8.graph.DexString streamDescriptor -> B1
    com.android.tools.r8.graph.DexType shortType -> d2
    com.android.tools.r8.graph.DexItemFactory$ObjectMethods objectMethods -> t3
    com.android.tools.r8.graph.DexItemFactory$ServiceLoaderMethods serviceLoaderMethods -> j4
    com.android.tools.r8.graph.DexType listIteratorType -> e4
    com.android.tools.r8.graph.DexString valueOfMethodName -> j0
    com.android.tools.r8.graph.DexString npeDescriptor -> J1
    com.android.tools.r8.graph.DexString classLoaderDescriptor -> R0
    com.android.tools.r8.graph.DexString comparatorDescriptor -> s1
    java.util.Map types -> b
    com.android.tools.r8.graph.DexType mapType -> T2
    boolean skipNameValidationForTesting -> w4
    com.android.tools.r8.graph.DexString objectsDescriptor -> Z0
    com.android.tools.r8.graph.DexType methodHandleType -> L2
    com.android.tools.r8.graph.DexType noSuchFieldErrorType -> m3
    com.android.tools.r8.graph.DexString newInstanceName -> E0
    com.android.tools.r8.graph.DexString stringBufferDescriptor -> f1
    com.android.tools.r8.graph.DexType strictMathType -> B2
    com.android.tools.r8.graph.DexType optionalDoubleType -> c3
    com.android.tools.r8.graph.DexItemFactory$ThrowableMethods throwableMethods -> w3
    com.android.tools.r8.graph.DexString endsWithMethodName -> Y
    com.android.tools.r8.graph.DexString longDescriptor -> z
    com.android.tools.r8.graph.DexItemFactory$PrimitiveTypesBoxedTypeFields primitiveTypesBoxedTypeFields -> C3
    com.android.tools.r8.graph.DexMethod stringConcatWithConstantsMethod -> o4
    com.android.tools.r8.graph.DexString stringDescriptor -> M0
    com.android.tools.r8.graph.DexString listDescriptor -> n1
    com.android.tools.r8.graph.DexItemFactory$JavaUtilArraysMethods utilArraysMethods -> v3
    com.android.tools.r8.graph.DexType doubleType -> Z1
    com.android.tools.r8.graph.DexString getNameName -> v0
    com.android.tools.r8.graph.DexString throwableArrayDescriptor -> V1
    com.android.tools.r8.graph.DexType annotationSourceDebugExtension -> S3
    com.android.tools.r8.graph.DexType objectType -> s2
    com.android.tools.r8.kotlin.Kotlin kotlin -> E3
    com.android.tools.r8.graph.DexString boxedIntDescriptor -> I
    com.android.tools.r8.graph.DexType boxedIntType -> k2
    com.android.tools.r8.graph.DexString illegalAccessErrorDescriptor -> E1
    com.android.tools.r8.utils.LRUCacheTable leastUpperBoundOfInterfacesTable -> r
    com.android.tools.r8.graph.DexString compareToMethodName -> e0
    com.android.tools.r8.graph.DexType iteratorType -> d4
    com.android.tools.r8.graph.DexType longType -> c2
    com.android.tools.r8.graph.DexString equalsMethodName -> Z
    com.android.tools.r8.graph.DexString longFieldUpdaterDescriptor -> M1
    com.android.tools.r8.graph.DexString convertMethodName -> m0
    com.android.tools.r8.graph.DexString constructorDescriptor -> U0
    com.android.tools.r8.graph.DexString consumerDescriptor -> v1
    com.android.tools.r8.graph.DexType setType -> S2
    com.android.tools.r8.graph.DexString boxedLongDescriptor -> J
    com.android.tools.r8.graph.DexType varHandleType -> K2
    com.android.tools.r8.graph.DexType noClassDefFoundErrorType -> l3
    com.android.tools.r8.graph.DexType icceType -> j3
    com.android.tools.r8.graph.DexString stringBuilderDescriptor -> e1
    com.android.tools.r8.graph.DexType stringBuilderType -> I2
    com.android.tools.r8.graph.DexString getDeclaredMethodName -> D0
    com.android.tools.r8.graph.DexType optionalType -> b3
    com.android.tools.r8.graph.DexString charSequenceArrayDescriptor -> L0
    com.android.tools.r8.graph.DexString serviceLoaderConfigurationErrorDescriptor -> m1
    com.android.tools.r8.graph.DexType mathType -> A2
    com.android.tools.r8.graph.DexType charType -> Y1
    com.android.tools.r8.graph.DexType iterableType -> z2
    com.android.tools.r8.graph.DexType dalvikCriticalNativeAnnotation -> Z3
    com.android.tools.r8.graph.DexString forNameMethodName -> u0
    com.android.tools.r8.graph.DexType stringArrayType -> r2
    com.android.tools.r8.graph.DexType annotationSignature -> R3
    com.android.tools.r8.graph.DexString boxedShortDescriptor -> K
    com.android.tools.r8.graph.DexType boxedFloatType -> j2
    com.android.tools.r8.graph.DexString lastIndexOfMethodName -> d0
    com.android.tools.r8.graph.DexString throwableDescriptor -> D1
    java.util.Map setFiles -> n
    com.android.tools.r8.graph.DexType intType -> b2
    com.android.tools.r8.graph.DexType lookupType -> c4
    com.android.tools.r8.graph.DexString internMethodName -> l0
    com.android.tools.r8.graph.DexString intFieldUpdaterDescriptor -> L1
    com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods stringBuilderMethods -> p3
    java.util.Set libraryMethodsReturningNonNull -> r4
    com.android.tools.r8.graph.DexType consumerType -> Z2
    com.android.tools.r8.graph.DexString classArrayDescriptor -> T0
    com.android.tools.r8.graph.DexString supplierDescriptor -> u1
    com.android.tools.r8.graph.DexType listType -> R2
    com.android.tools.r8.graph.DexString boxedNumberDescriptor -> L
    com.android.tools.r8.graph.DexType stringBufferType -> J2
    com.android.tools.r8.graph.DexType exceptionInInitializerErrorType -> k3
    com.android.tools.r8.graph.DexType illegalAccessErrorType -> i3
    com.android.tools.r8.graph.DexType autoCloseableType -> H2
    com.android.tools.r8.graph.DexString isEmptyMethodName -> U
    com.android.tools.r8.graph.DexString charDescriptor -> v
    com.android.tools.r8.graph.DexString invokeMethodName -> G0
    com.android.tools.r8.graph.DexString methodHandleDescriptor -> h1
    com.android.tools.r8.graph.DexType runnableType -> a3
    com.android.tools.r8.graph.DexString objectDescriptor -> O0
    com.android.tools.r8.graph.DexString mapDescriptor -> p1
    com.android.tools.r8.graph.DexType dalvikFastNativeAnnotation -> Y3
    com.android.tools.r8.graph.DexType byteType -> X1
    com.android.tools.r8.graph.DexType collectionsType -> y2
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap defaults -> i
    com.android.tools.r8.graph.DexString boxedByteDescriptor -> E
    com.android.tools.r8.graph.DexString getSimpleNameName -> x0
    com.android.tools.r8.graph.DexType annotationMethodParameters -> Q3
    com.android.tools.r8.graph.DexType stringType -> q2
    com.android.tools.r8.graph.DexType boxedDoubleType -> i2
    com.android.tools.r8.graph.DexString twrCloseResourceMethodName -> H3
    com.android.tools.r8.graph.DexString exceptionInInitializerErrorDescriptor -> G1
    com.android.tools.r8.graph.DexString lengthMethodName -> V
    com.android.tools.r8.graph.DexString doubleDescriptor -> w
    com.android.tools.r8.graph.DexString cloneMethodName -> g0
    com.android.tools.r8.graph.DexType callSiteType -> b4
    boolean $assertionsDisabled -> A4
    com.android.tools.r8.graph.DexType floatType -> a2
    com.android.tools.r8.graph.DexString newUpdaterName -> O1
    java.util.Set libraryTypesAssumedToBePresent -> u4
    com.android.tools.r8.graph.DexString initMethodName -> o0
    com.android.tools.r8.graph.DexType supplierType -> Y2
    com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods stringBufferMethods -> q3
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap endLocals -> j
    com.android.tools.r8.graph.DexItemFactory$ClassMethods classMethods -> y3
    com.android.tools.r8.graph.DexString boxedCharDescriptor -> F
    com.android.tools.r8.graph.DexString methodDescriptor -> W0
    com.android.tools.r8.graph.DexString optionalDescriptor -> x1
    com.android.tools.r8.graph.DexItemFactory$BooleanMembers booleanMembers -> r3
    com.android.tools.r8.graph.DexType serviceLoaderConfigurationErrorType -> Q2
    com.android.tools.r8.graph.DexType methodType -> G2
    com.android.tools.r8.graph.DexType throwableType -> h3
    com.android.tools.r8.graph.DexString varHandleDescriptor -> g1
    com.android.tools.r8.graph.DexString assertionsDisabled -> F0
    com.android.tools.r8.graph.DexString containsMethodName -> W
    com.android.tools.r8.graph.DexString floatDescriptor -> x
    com.android.tools.r8.graph.DexMethod stringConcatMethod -> p4
    com.android.tools.r8.graph.DexString stringArrayDescriptor -> N0
    com.android.tools.r8.graph.DexString setDescriptor -> o1
    com.android.tools.r8.graph.DexItemFactory$EnumMethods enumMethods -> A3
    boolean sorted -> s
    com.android.tools.r8.graph.DexType booleanType -> W1
    com.android.tools.r8.graph.DexType objectsType -> x2
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap restartLocals -> k
    com.android.tools.r8.graph.DexType annotationReachabilitySensitive -> X3
    com.android.tools.r8.graph.DexString unknownTypeName -> y4
    com.android.tools.r8.graph.DexString boxedDoubleDescriptor -> G
    com.android.tools.r8.graph.DexString getCanonicalNameName -> w0
    com.android.tools.r8.graph.DexType charSequenceArrayType -> p2
    com.android.tools.r8.graph.DexType annotationMemberClasses -> P3
    com.android.tools.r8.graph.DexType boxedCharType -> h2
    java.util.IdentityHashMap internalSentinels -> z4
    com.android.tools.r8.graph.DexType comparableType -> i4
    com.android.tools.r8.graph.DexString compareToIgnoreCaseMethodName -> f0
    com.android.tools.r8.graph.DexString icceDescriptor -> F1
    com.android.tools.r8.graph.DexString startsWithMethodName -> X
    com.android.tools.r8.graph.DexString intDescriptor -> y
    com.android.tools.r8.graph.DexItemFactory$PolymorphicMethods polymorphicMethods -> F3
    com.android.tools.r8.graph.DexType metafactoryType -> a4
    com.android.tools.r8.graph.DexString wrapperFieldName -> n0
    com.android.tools.r8.graph.DexString referenceFieldUpdaterDescriptor -> N1
    java.util.Set libraryMethodsWithReturnValueDependingOnlyOnArguments -> t4
    com.android.tools.r8.graph.DexType callableType -> X2
    com.android.tools.r8.graph.DexString fieldDescriptor -> V0
    com.android.tools.r8.graph.DexString runnableDescriptor -> w1
    com.android.tools.r8.graph.DexString boxedFloatDescriptor -> H
    com.android.tools.r8.graph.DexType serviceLoaderType -> P2
    1:41:void <clinit>():59:99 -> <clinit>
    1:1:void <init>():103:103 -> <init>
    2:377:void <init>():63:438 -> <init>
    378:426:void <init>():428:476 -> <init>
    427:443:void <init>():466:482 -> <init>
    444:462:void <init>():479:497 -> <init>
    463:483:void <init>():488:508 -> <init>
    484:517:void <init>():501:534 -> <init>
    518:522:void <init>():533:537 -> <init>
    523:526:void <init>():536:539 -> <init>
    527:565:void <init>():529:567 -> <init>
    566:568:void <init>():104:106 -> <init>
    569:569:void <init>():105:105 -> <init>
    com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame lambda$createSetInlineFrame$2(com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame) -> a
    1:1:com.android.tools.r8.graph.DexType access$2000(com.android.tools.r8.graph.DexItemFactory):59:59 -> a
    2:2:boolean isInternalSentinel(com.android.tools.r8.graph.DexItem):110:110 -> a
    3:4:com.android.tools.r8.graph.DexType getBoxedForPrimitiveType(com.android.tools.r8.graph.DexType):441:442 -> a
    5:16:java.util.Set boxedValueOfMethods():451:462 -> a
    17:19:com.android.tools.r8.graph.DexMethod lambda$boxedValueOfMethods$0(java.util.Map$Entry):454:456 -> a
    20:20:com.android.tools.r8.utils.Pair lambda$mapToPredicate$1(java.util.function.Predicate,com.android.tools.r8.graph.DexMethod):544:544 -> a
    21:21:java.util.stream.Stream mapToPredicate(java.util.Set,java.util.function.Predicate):544:544 -> a
    22:22:void setSkipNameValidationForTesting(boolean):570:570 -> a
    23:24:com.android.tools.r8.graph.DexItem canonicalize(java.util.Map,com.android.tools.r8.graph.DexItem):1201:1202 -> a
    25:25:boolean isInternalSentinel(com.android.tools.r8.graph.DexItem):110:110 -> a
    25:25:com.android.tools.r8.graph.DexItem canonicalize(java.util.Map,com.android.tools.r8.graph.DexItem):1202 -> a
    26:27:com.android.tools.r8.graph.DexItem canonicalize(java.util.Map,com.android.tools.r8.graph.DexItem):1202:1203 -> a
    28:29:com.android.tools.r8.graph.DexString createString(int,byte[]):1208:1209 -> a
    30:31:com.android.tools.r8.graph.DexString createString(java.lang.String):1213:1214 -> a
    32:33:com.android.tools.r8.graph.DexType createArrayType(int,com.android.tools.r8.graph.DexType):1262:1263 -> a
    34:36:com.android.tools.r8.graph.DexField createField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):1267:1269 -> a
    37:37:com.android.tools.r8.graph.DexField createField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,java.lang.String):1273:1273 -> a
    38:40:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString):1277:1279 -> a
    41:44:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):1283:1286 -> a
    45:50:com.android.tools.r8.graph.DexString createShorty(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):1352:1357 -> a
    45:50:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):1287 -> a
    51:51:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):1284:1284 -> a
    52:52:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,java.util.List):1291:1291 -> a
    53:55:com.android.tools.r8.graph.DexProto protoWithDifferentFirstParameter(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexType):1295:1297 -> a
    56:59:com.android.tools.r8.graph.DexProto prependTypeToProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto):1301:1304 -> a
    60:62:com.android.tools.r8.graph.DexProto prependTypeToProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto):1303:1305 -> a
    63:67:com.android.tools.r8.graph.DexProto applyClassMappingToProto(com.android.tools.r8.graph.DexProto,java.util.function.Function,java.util.Map):1318:1322 -> a
    68:77:com.android.tools.r8.graph.DexType[] applyClassMappingToDexTypes(com.android.tools.r8.graph.DexType[],java.util.function.Function):1339:1348 -> a
    68:77:com.android.tools.r8.graph.DexProto applyClassMappingToProto(com.android.tools.r8.graph.DexProto,java.util.function.Function,java.util.Map):1322 -> a
    78:84:com.android.tools.r8.graph.DexProto applyClassMappingToProto(com.android.tools.r8.graph.DexProto,java.util.function.Function,java.util.Map):1323:1329 -> a
    85:89:com.android.tools.r8.graph.DexProto applyClassMappingToProto(com.android.tools.r8.graph.DexProto,java.util.function.Function,java.util.Map):1328:1332 -> a
    90:92:com.android.tools.r8.graph.DexMethod createMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexString):1361:1363 -> a
    93:93:com.android.tools.r8.graph.DexMethod createMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto,java.lang.String):1367:1367 -> a
    94:96:com.android.tools.r8.graph.DexMethodHandle createMethodHandle(com.android.tools.r8.graph.DexMethodHandle$MethodHandleType,com.android.tools.r8.graph.Descriptor,boolean):1374:1376 -> a
    97:98:com.android.tools.r8.graph.DexCallSite createCallSite(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,java.util.List):1385:1386 -> a
    99:108:com.android.tools.r8.graph.DexMethod createMethod(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString[]):1394:1403 -> a
    109:111:com.android.tools.r8.graph.DexDebugEvent$AdvanceLine createAdvanceLine(int):1407:1409 -> a
    112:114:com.android.tools.r8.graph.DexDebugEvent$SetFile createSetFile(com.android.tools.r8.graph.DexString):1445:1447 -> a
    115:117:com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame createSetInlineFrame(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):1452:1454 -> a
    118:118:boolean isClassConstructor(com.android.tools.r8.graph.DexMethod):1462:1462 -> a
    119:126:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement createReferenceTypeLatticeElement(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView):1495:1502 -> a
    127:155:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement createReferenceTypeLatticeElement(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView):1501:1529 -> a
    156:164:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement lambda$createReferenceTypeLatticeElement$3(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DexType):1509:1517 -> a
    165:176:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement lambda$createReferenceTypeLatticeElement$3(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DexType):1516:1527 -> a
    177:178:java.util.Set getOrComputeLeastUpperBoundOfImplementedInterfaces(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):1534:1535 -> a
    179:180:java.util.Set lambda$getOrComputeLeastUpperBoundOfImplementedInterfaces$4(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):1538:1539 -> a
    181:185:void assignSortedIndices(java.util.Collection,com.android.tools.r8.naming.NamingLens):1546:1550 -> a
    186:186:int lambda$assignSortedIndices$5(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.PresortedComparable,com.android.tools.r8.graph.PresortedComparable):1547:1547 -> a
    187:193:void sort(com.android.tools.r8.naming.NamingLens):1555:1561 -> a
    194:194:void forAllTypes(java.util.function.Consumer):1578:1578 -> a
    1:1:com.android.tools.r8.graph.DexString lookupString(int,byte[]):1218:1218 -> b
    2:8:com.android.tools.r8.graph.DexType createType(com.android.tools.r8.graph.DexString):1240:1246 -> b
    9:11:com.android.tools.r8.graph.DexType createType(com.android.tools.r8.graph.DexString):1245:1247 -> b
    12:12:boolean isInternalSentinel(com.android.tools.r8.graph.DexItem):110:110 -> b
    12:12:com.android.tools.r8.graph.DexType createType(com.android.tools.r8.graph.DexString):1247 -> b
    13:14:com.android.tools.r8.graph.DexType createType(com.android.tools.r8.graph.DexString):1247:1248 -> b
    15:15:com.android.tools.r8.graph.DexType createType(java.lang.String):1254:1254 -> b
    16:18:com.android.tools.r8.graph.DexDebugEvent$AdvancePC createAdvancePC(int):1413:1415 -> b
    19:19:boolean isConstructor(com.android.tools.r8.graph.DexMethod):1458:1458 -> b
    20:22:void clearTypeLatticeElementsCache():1466:1468 -> b
    1:1:boolean isLambdaMetafactoryMethod(com.android.tools.r8.graph.DexMethod):578:578 -> c
    2:2:com.android.tools.r8.graph.DexString lookupString(java.lang.String):1222:1222 -> c
    3:3:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexString):1258:1258 -> c
    4:6:com.android.tools.r8.graph.DexDebugEvent$Default createDefault(int):1419:1421 -> c
    7:7:com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin createSetEpilogueBegin():1437:1437 -> c
    1:3:com.android.tools.r8.graph.DexDebugEvent$EndLocal createEndLocal(int):1425:1427 -> d
    4:4:com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd createSetPrologueEnd():1441:1441 -> d
    1:5:java.util.List extractMarkers():1229:1233 -> e
    6:8:com.android.tools.r8.graph.DexDebugEvent$RestartLocal createRestartLocal(int):1431:1433 -> e
    1:1:boolean getSkipNameValidationForTesting():574:574 -> f
    1:10:void resetSortedIndices():1565:1574 -> g
    1:3:boolean verifyNoCachedTypeLatticeElements():1472:1474 -> h
com.android.tools.r8.graph.DexItemFactory$1 -> com.android.tools.r8.graph.X$a:
com.android.tools.r8.graph.DexItemFactory$AssertionErrorMethods -> com.android.tools.r8.graph.X$b:
    com.android.tools.r8.graph.DexMethod initMessageAndCause -> b
    com.android.tools.r8.graph.DexMethod initMessage -> a
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):642:642 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.DexItemFactory):646:651 -> <init>
com.android.tools.r8.graph.DexItemFactory$AtomicFieldUpdaterMethods -> com.android.tools.r8.graph.X$c:
    java.util.Set updaters -> d
    com.android.tools.r8.graph.DexMethod referenceUpdater -> c
    com.android.tools.r8.graph.DexMethod longUpdater -> b
    com.android.tools.r8.graph.DexMethod intUpdater -> a
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):875:875 -> <init>
    2:21:void <init>(com.android.tools.r8.graph.DexItemFactory):881:900 -> <init>
    1:1:boolean isFieldUpdater(com.android.tools.r8.graph.DexMethod):904:904 -> a
com.android.tools.r8.graph.DexItemFactory$BooleanMembers -> com.android.tools.r8.graph.X$d:
    com.android.tools.r8.graph.DexItemFactory this$0 -> f
    com.android.tools.r8.graph.DexField TRUE -> b
    com.android.tools.r8.graph.DexField FALSE -> a
    com.android.tools.r8.graph.DexMethod valueOf -> e
    com.android.tools.r8.graph.DexField TYPE -> c
    com.android.tools.r8.graph.DexMethod booleanValue -> d
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):581:581 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexItemFactory):592:592 -> <init>
    3:10:void <init>(com.android.tools.r8.graph.DexItemFactory):583:590 -> <init>
com.android.tools.r8.graph.DexItemFactory$ClassMethods -> com.android.tools.r8.graph.X$e:
    com.android.tools.r8.graph.DexMethod newInstance -> m
    com.android.tools.r8.graph.DexMethod getDeclaredMethod -> l
    com.android.tools.r8.graph.DexMethod getMethod -> k
    com.android.tools.r8.graph.DexMethod getDeclaredField -> j
    com.android.tools.r8.graph.DexMethod getField -> i
    com.android.tools.r8.graph.DexMethod getDeclaredConstructor -> h
    com.android.tools.r8.graph.DexMethod getTypeName -> g
    com.android.tools.r8.graph.DexMethod getSimpleName -> f
    com.android.tools.r8.graph.DexMethod getCanonicalName -> e
    com.android.tools.r8.graph.DexMethod getName -> d
    com.android.tools.r8.graph.DexMethod forName3 -> c
    com.android.tools.r8.graph.DexMethod forName -> b
    com.android.tools.r8.graph.DexMethod desiredAssertionStatus -> a
    java.util.Set getNames -> o
    java.util.Set getMembers -> n
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):685:685 -> <init>
    2:41:void <init>(com.android.tools.r8.graph.DexItemFactory):703:742 -> <init>
    1:1:java.util.Set access$1800(com.android.tools.r8.graph.DexItemFactory$ClassMethods):685:685 -> a
    2:2:boolean isReflectiveClassLookup(com.android.tools.r8.graph.DexMethod):746:746 -> a
    1:1:boolean isReflectiveMemberLookup(com.android.tools.r8.graph.DexMethod):750:750 -> b
    1:1:boolean isReflectiveNameLookup(com.android.tools.r8.graph.DexMethod):754:754 -> c
com.android.tools.r8.graph.DexItemFactory$ConstructorMethods -> com.android.tools.r8.graph.X$f:
    com.android.tools.r8.graph.DexMethod newInstance -> a
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):758:758 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexItemFactory):762:764 -> <init>
com.android.tools.r8.graph.DexItemFactory$EnumMethods -> com.android.tools.r8.graph.X$g:
    com.android.tools.r8.graph.DexItemFactory this$0 -> g
    com.android.tools.r8.graph.DexMethod finalize -> f
    com.android.tools.r8.graph.DexMethod constructor -> e
    com.android.tools.r8.graph.DexMethod toString -> d
    com.android.tools.r8.graph.DexMethod name -> c
    com.android.tools.r8.graph.DexMethod ordinal -> b
    com.android.tools.r8.graph.DexMethod valueOf -> a
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):772:772 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexItemFactory):784:784 -> <init>
    3:28:void <init>(com.android.tools.r8.graph.DexItemFactory):779:804 -> <init>
com.android.tools.r8.graph.DexItemFactory$JavaUtilArraysMethods -> com.android.tools.r8.graph.X$h:
    com.android.tools.r8.graph.DexMethod asList -> a
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):605:605 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.DexItemFactory):609:613 -> <init>
    7:7:void <init>(com.android.tools.r8.graph.DexItemFactory):611:611 -> <init>
com.android.tools.r8.graph.DexItemFactory$LongMethods -> com.android.tools.r8.graph.X$i:
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):595:595 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexItemFactory):599:601 -> <init>
    5:5:void <init>(com.android.tools.r8.graph.DexItemFactory):600:600 -> <init>
com.android.tools.r8.graph.DexItemFactory$NullPointerExceptionMethods -> com.android.tools.r8.graph.X$j:
    com.android.tools.r8.graph.DexMethod init -> a
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):812:812 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexItemFactory):816:818 -> <init>
com.android.tools.r8.graph.DexItemFactory$ObjectMethods -> com.android.tools.r8.graph.X$k:
    com.android.tools.r8.graph.DexMethod toString -> d
    com.android.tools.r8.graph.DexMethod finalize -> c
    com.android.tools.r8.graph.DexMethod constructor -> b
    com.android.tools.r8.graph.DexMethod getClass -> a
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):656:656 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.DexItemFactory):663:670 -> <init>
com.android.tools.r8.graph.DexItemFactory$ObjectsMethods -> com.android.tools.r8.graph.X$l:
    com.android.tools.r8.graph.DexMethod requireNonNull -> a
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):675:675 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexItemFactory):679:681 -> <init>
    5:5:void <init>(com.android.tools.r8.graph.DexItemFactory):680:680 -> <init>
com.android.tools.r8.graph.DexItemFactory$PolymorphicMethods -> com.android.tools.r8.graph.X$m:
    com.android.tools.r8.graph.DexProto compareAndSetSignature -> c
    java.util.Set varHandleMethods -> d
    com.android.tools.r8.graph.DexItemFactory this$0 -> g
    java.util.Set varHandleSetMethods -> e
    java.util.Set varHandleCompareAndSetMethods -> f
    com.android.tools.r8.graph.DexProto signature -> a
    com.android.tools.r8.graph.DexProto setSignature -> b
    1:36:void <init>(com.android.tools.r8.graph.DexItemFactory):1089:1124 -> <init>
    1:11:com.android.tools.r8.graph.DexMethod canonicalize(com.android.tools.r8.graph.DexMethod):1132:1142 -> a
    12:17:java.util.Set createStrings(java.lang.String[]):1149:1154 -> a
com.android.tools.r8.graph.DexItemFactory$PrimitiveTypesBoxedTypeFields -> com.android.tools.r8.graph.X$n:
    com.android.tools.r8.graph.DexField floatTYPE -> f
    com.android.tools.r8.graph.DexField longTYPE -> e
    com.android.tools.r8.graph.DexField doubleTYPE -> g
    com.android.tools.r8.graph.DexField charTYPE -> b
    com.android.tools.r8.graph.DexField byteTYPE -> a
    com.android.tools.r8.graph.DexField intTYPE -> d
    com.android.tools.r8.graph.DexField shortTYPE -> c
    java.util.Map boxedFieldTypeToPrimitiveType -> h
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):832:832 -> <init>
    2:21:void <init>(com.android.tools.r8.graph.DexItemFactory):844:863 -> <init>
    1:1:com.android.tools.r8.graph.DexType boxedFieldTypeToPrimitiveType(com.android.tools.r8.graph.DexField):867:867 -> a
com.android.tools.r8.graph.DexItemFactory$ProxyMethods -> com.android.tools.r8.graph.X$o:
    com.android.tools.r8.graph.DexMethod newProxyInstance -> a
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):1158:1158 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.DexItemFactory):1162:1167 -> <init>
    8:8:void <init>(com.android.tools.r8.graph.DexItemFactory):1164:1164 -> <init>
com.android.tools.r8.graph.DexItemFactory$ServiceLoaderMethods -> com.android.tools.r8.graph.X$p:
    com.android.tools.r8.graph.DexMethod iterator -> d
    com.android.tools.r8.graph.DexMethod loadInstalled -> c
    com.android.tools.r8.graph.DexMethod loadWithClassLoader -> b
    com.android.tools.r8.graph.DexMethod load -> a
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):1171:1171 -> <init>
    2:8:void <init>(com.android.tools.r8.graph.DexItemFactory):1178:1184 -> <init>
    9:17:void <init>(com.android.tools.r8.graph.DexItemFactory):1182:1190 -> <init>
    18:23:void <init>(com.android.tools.r8.graph.DexItemFactory):1187:1192 -> <init>
    1:1:boolean isLoadMethod(com.android.tools.r8.graph.DexMethod):1196:1196 -> a
com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods -> com.android.tools.r8.graph.X$q:
    com.android.tools.r8.graph.DexMethod defaultConstructor -> o
    com.android.tools.r8.graph.DexMethod charSequenceConstructor -> n
    com.android.tools.r8.graph.DexMethod appendStringBuffer -> m
    com.android.tools.r8.graph.DexMethod appendString -> l
    com.android.tools.r8.graph.DexMethod appendObject -> k
    java.util.Set appendMethods -> s
    com.android.tools.r8.graph.DexMethod appendLong -> j
    java.util.Set constructorMethods -> t
    com.android.tools.r8.graph.DexMethod appendFloat -> i
    com.android.tools.r8.graph.DexMethod appendDouble -> h
    boolean $assertionsDisabled -> u
    com.android.tools.r8.graph.DexMethod appendInt -> g
    com.android.tools.r8.graph.DexMethod appendSubCharSequence -> f
    com.android.tools.r8.graph.DexMethod appendCharSequence -> e
    com.android.tools.r8.graph.DexMethod appendSubCharArray -> d
    com.android.tools.r8.graph.DexMethod appendCharArray -> c
    com.android.tools.r8.graph.DexMethod appendChar -> b
    com.android.tools.r8.graph.DexMethod appendBoolean -> a
    com.android.tools.r8.graph.DexMethod toString -> r
    com.android.tools.r8.graph.DexMethod stringConstructor -> q
    com.android.tools.r8.graph.DexMethod intConstructor -> p
    1:1:void <clinit>():981:981 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory$1):981:981 -> <init>
    2:46:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):1005:1049 -> <init>
    1:1:java.util.Set access$1700(com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods):981:981 -> a
    2:2:boolean isAppendMethod(com.android.tools.r8.graph.DexMethod):1054:1054 -> a
    3:29:boolean constructorInvokeIsSideEffectFree(com.android.tools.r8.ir.code.InvokeMethod):1058:1084 -> a
    1:1:java.util.Set access$1900(com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods):981:981 -> b
com.android.tools.r8.graph.DexItemFactory$StringMethods -> com.android.tools.r8.graph.X$r:
    com.android.tools.r8.graph.DexMethod hashCode -> o
    com.android.tools.r8.graph.DexMethod compareToIgnoreCase -> n
    com.android.tools.r8.graph.DexMethod compareTo -> m
    com.android.tools.r8.graph.DexMethod lastIndexOfString -> l
    com.android.tools.r8.graph.DexMethod lastIndexOfInt -> k
    com.android.tools.r8.graph.DexMethod indexOfString -> j
    com.android.tools.r8.graph.DexMethod indexOfInt -> i
    com.android.tools.r8.graph.DexMethod contentEqualsCharSequence -> h
    com.android.tools.r8.graph.DexMethod equalsIgnoreCase -> g
    com.android.tools.r8.graph.DexMethod equals -> f
    com.android.tools.r8.graph.DexMethod endsWith -> e
    com.android.tools.r8.graph.DexMethod startsWith -> d
    com.android.tools.r8.graph.DexMethod contains -> c
    com.android.tools.r8.graph.DexMethod length -> b
    com.android.tools.r8.graph.DexMethod isEmpty -> a
    com.android.tools.r8.graph.DexItemFactory this$0 -> t
    com.android.tools.r8.graph.DexMethod trim -> s
    com.android.tools.r8.graph.DexMethod intern -> r
    com.android.tools.r8.graph.DexMethod toString -> q
    com.android.tools.r8.graph.DexMethod valueOf -> p
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):908:908 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexItemFactory):933:933 -> <init>
    3:48:void <init>(com.android.tools.r8.graph.DexItemFactory):931:976 -> <init>
com.android.tools.r8.graph.DexItemFactory$ThrowableMethods -> com.android.tools.r8.graph.X$s:
    com.android.tools.r8.graph.DexMethod initCause -> d
    com.android.tools.r8.graph.DexMethod getSuppressed -> c
    com.android.tools.r8.graph.DexMethod getMessage -> b
    com.android.tools.r8.graph.DexMethod addSuppressed -> a
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):619:619 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexItemFactory):626:628 -> <init>
    5:8:void <init>(com.android.tools.r8.graph.DexItemFactory):627:630 -> <init>
    9:16:void <init>(com.android.tools.r8.graph.DexItemFactory):629:636 -> <init>
    17:17:void <init>(com.android.tools.r8.graph.DexItemFactory):634:634 -> <init>
com.android.tools.r8.graph.DexLibraryClass -> com.android.tools.r8.graph.Y:
    boolean $assertionsDisabled -> s
    1:1:void <clinit>():17:17 -> <clinit>
    1:27:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean):37:63 -> <init>
    boolean isLibraryClass() -> L
    boolean isNotProgramClass() -> Q
    1:1:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):98:98 -> a
    1:1:boolean verifyLibraryField(com.android.tools.r8.graph.DexEncodedField):74:74 -> c
    2:2:boolean com.android.tools.r8.graph.DexEncodedField.isPrivate():143:143 -> c
    2:2:boolean verifyLibraryField(com.android.tools.r8.graph.DexEncodedField):74 -> c
    3:4:boolean verifyLibraryField(com.android.tools.r8.graph.DexEncodedField):74:75 -> c
    5:5:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():139:139 -> c
    5:5:boolean verifyLibraryField(com.android.tools.r8.graph.DexEncodedField):75 -> c
    6:6:boolean verifyLibraryField(com.android.tools.r8.graph.DexEncodedField):75:75 -> c
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):82:82 -> collectIndexedItems
    1:3:boolean verifyLibraryMethod(com.android.tools.r8.graph.DexEncodedMethod):67:69 -> d
    com.android.tools.r8.graph.DexLibraryClass asLibraryClass() -> k
    1:1:java.lang.String toSourceString():92:92 -> toSourceString
    1:1:java.lang.String toString():87:87 -> toString
    com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo() -> w
com.android.tools.r8.graph.DexMemberAnnotation -> com.android.tools.r8.graph.Z:
    com.android.tools.r8.graph.Descriptor item -> a
    com.android.tools.r8.graph.DexItem annotations -> b
    1:3:void <init>(com.android.tools.r8.graph.Descriptor,com.android.tools.r8.graph.DexItem):14:16 -> <init>
    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):22:23 -> collectIndexedItems
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):28:28 -> collectMixedSectionItems
    1:3:boolean equals(java.lang.Object):41:43 -> equals
    1:1:int hashCode():33:33 -> hashCode
com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation -> com.android.tools.r8.graph.Z$a:
    1:1:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexAnnotationSet):51:51 -> <init>
com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation -> com.android.tools.r8.graph.Z$b:
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexAnnotationSet):58:58 -> <init>
com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation -> com.android.tools.r8.graph.Z$c:
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ParameterAnnotationsList):66:66 -> <init>
com.android.tools.r8.graph.DexMethod -> com.android.tools.r8.graph.a0:
    com.android.tools.r8.graph.DexProto proto -> d
    com.android.tools.r8.graph.DexString name -> e
    com.android.tools.r8.graph.DexType holder -> c
    boolean $assertionsDisabled -> g
    java.util.Map singleTargetCache -> f
    1:1:void <clinit>():12:12 -> <clinit>
    1:7:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexString,boolean):22:28 -> <init>
    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):12:12 -> a
    2:2:boolean match(com.android.tools.r8.graph.DexItem):12:12 -> a
    3:3:boolean match(com.android.tools.r8.graph.DexEncodedMethod):157:157 -> a
    3:3:boolean match(com.android.tools.r8.graph.DexItem):12 -> a
    4:4:int slowCompareTo(java.lang.Object):12:12 -> a
    5:5:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):67:67 -> a
    6:6:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):139:139 -> a
    7:7:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):173:173 -> a
    7:7:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):139 -> a
    8:8:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):143:143 -> a
    9:9:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):255:255 -> a
    9:9:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):143 -> a
    10:10:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):147:147 -> a
    11:11:int com.android.tools.r8.graph.DexProto.compareTo(com.android.tools.r8.graph.DexProto):63:63 -> a
    11:11:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):147 -> a
    12:12:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):255:255 -> a
    12:12:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):143 -> a
    13:13:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):173:173 -> a
    13:13:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):139 -> a
    14:14:boolean match(com.android.tools.r8.graph.DexMethod):152:152 -> a
    15:26:java.lang.String toSourceString(boolean):179:190 -> a
    27:27:void setSingleVirtualMethodCache(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):200:200 -> a
    28:28:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> a
    28:28:void setSingleVirtualMethodCache(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):201 -> a
    29:31:void setSingleVirtualMethodCache(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):201:203 -> a
    32:32:com.android.tools.r8.graph.DexEncodedMethod getSingleVirtualMethodCache(com.android.tools.r8.graph.DexType):211:211 -> a
    33:33:boolean isSingleVirtualMethodCached(com.android.tools.r8.graph.DexType):207:207 -> a
    33:33:com.android.tools.r8.graph.DexEncodedMethod getSingleVirtualMethodCache(com.android.tools.r8.graph.DexType):211 -> a
    34:35:com.android.tools.r8.graph.DexEncodedMethod getSingleVirtualMethodCache(com.android.tools.r8.graph.DexType):211:212 -> a
    1:9:int slowCompareTo(com.android.tools.r8.graph.DexMethod):113:121 -> b
    10:10:boolean isSingleVirtualMethodCached(com.android.tools.r8.graph.DexType):207:207 -> b
    1:3:boolean collectIndexedItemsExceptName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):52:54 -> collectIndexedItems
    1:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):45 -> collectIndexedItems
    4:4:void collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):62:62 -> collectIndexedItems
    4:4:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):46 -> collectIndexedItems
    5:5:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> collectIndexedItems
    5:5:void collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):62 -> collectIndexedItems
    5:5:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):46 -> collectIndexedItems
    1:1:int compareTo(java.lang.Object):12:12 -> compareTo
    2:2:int compareTo(com.android.tools.r8.graph.DexMethod):108:108 -> compareTo
    2:2:int compareTo(java.lang.Object):12 -> compareTo
    1:5:boolean computeEquals(java.lang.Object):89:93 -> computeEquals
    1:3:int computeHashCode():82:84 -> computeHashCode
    com.android.tools.r8.graph.DexMethod asDexMethod() -> d
    boolean isDexMethod() -> g
    1:1:int getArity():39:39 -> i
    1:1:java.lang.String qualifiedName():161:161 -> j
    1:1:java.lang.String toSourceStringWithoutHolder():175:175 -> k
    1:1:java.lang.String toSmaliString():166:166 -> toSmaliString
    1:1:java.lang.String toSourceString():171:171 -> toSourceString
    1:1:java.lang.String toString():35:35 -> toString
com.android.tools.r8.graph.DexMethodHandle -> com.android.tools.r8.graph.b0:
    com.android.tools.r8.graph.Descriptor fieldOrMethod -> d
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType type -> c
    boolean isInterface -> e
    com.android.tools.r8.graph.DexMethod rewrittenTarget -> f
    boolean $assertionsDisabled -> g
    1:1:void <clinit>():15:15 -> <clinit>
    1:5:void <init>(com.android.tools.r8.graph.DexMethodHandle$MethodHandleType,com.android.tools.r8.graph.Descriptor,boolean):208:212 -> <init>
    6:10:void <init>(com.android.tools.r8.graph.DexMethodHandle$MethodHandleType,com.android.tools.r8.graph.Descriptor,boolean,com.android.tools.r8.graph.DexMethod):219:223 -> <init>
    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):15:15 -> a
    2:2:int layeredCompareTo(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.naming.NamingLens):344:344 -> a
    2:2:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):15 -> a
    3:3:boolean isFieldHandle():293:293 -> a
    3:3:int layeredCompareTo(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.naming.NamingLens):346 -> a
    3:3:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):15 -> a
    4:6:int layeredCompareTo(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.naming.NamingLens):347:349 -> a
    4:6:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):15 -> a
    7:7:boolean isMethodHandle():297:297 -> a
    7:7:int layeredCompareTo(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.naming.NamingLens):349 -> a
    7:7:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):15 -> a
    8:9:int layeredCompareTo(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.naming.NamingLens):349:350 -> a
    8:9:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):15 -> a
    10:10:int slowCompareTo(java.lang.Object):15:15 -> a
    11:14:com.android.tools.r8.graph.DexMethodHandle fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):228:231 -> a
    15:15:com.android.tools.r8.graph.DexField com.android.tools.r8.graph.JarApplicationReader.getField(java.lang.String,java.lang.String,java.lang.String):84:84 -> a
    15:15:com.android.tools.r8.graph.DexMethodHandle fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):231 -> a
    16:16:com.android.tools.r8.graph.DexMethodHandle fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):232:232 -> a
    17:17:com.android.tools.r8.graph.DexMethod com.android.tools.r8.graph.JarApplicationReader.getMethod(java.lang.String,java.lang.String,java.lang.String):92:92 -> a
    17:17:com.android.tools.r8.graph.DexMethodHandle fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):232 -> a
    18:18:com.android.tools.r8.graph.DexMethodHandle fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):233:233 -> a
    19:19:com.android.tools.r8.graph.DexMethodHandle com.android.tools.r8.graph.JarApplicationReader.getMethodHandle(com.android.tools.r8.graph.DexMethodHandle$MethodHandleType,com.android.tools.r8.graph.Descriptor,boolean):109:109 -> a
    19:19:com.android.tools.r8.graph.DexMethodHandle fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):233 -> a
    20:20:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):283:283 -> a
    21:21:boolean isMethodHandle():297:297 -> a
    21:21:com.android.tools.r8.org.objectweb.asm.Handle toAsmHandle(com.android.tools.r8.naming.NamingLens):366 -> a
    22:36:com.android.tools.r8.org.objectweb.asm.Handle toAsmHandle(com.android.tools.r8.naming.NamingLens):367:381 -> a
    37:37:boolean isFieldHandle():293:293 -> a
    37:37:com.android.tools.r8.org.objectweb.asm.Handle toAsmHandle(com.android.tools.r8.naming.NamingLens):381 -> a
    38:45:com.android.tools.r8.org.objectweb.asm.Handle toAsmHandle(com.android.tools.r8.naming.NamingLens):381:388 -> a
    46:67:int getAsmTag():392:413 -> a
    46:67:com.android.tools.r8.org.objectweb.asm.Handle toAsmHandle(com.android.tools.r8.naming.NamingLens):388 -> a
    68:68:com.android.tools.r8.org.objectweb.asm.Handle toAsmHandle(com.android.tools.r8.naming.NamingLens):388:388 -> a
    69:69:int slowCompareTo(com.android.tools.r8.graph.DexMethodHandle):316:316 -> a
    70:70:boolean isFieldHandle():293:293 -> a
    70:70:int slowCompareTo(com.android.tools.r8.graph.DexMethodHandle):318 -> a
    71:73:int slowCompareTo(com.android.tools.r8.graph.DexMethodHandle):319:321 -> a
    74:74:boolean isMethodHandle():297:297 -> a
    74:74:int slowCompareTo(com.android.tools.r8.graph.DexMethodHandle):321 -> a
    75:76:int slowCompareTo(com.android.tools.r8.graph.DexMethodHandle):321:322 -> a
    1:1:com.android.tools.r8.graph.DexField asField():310:310 -> c
    2:2:boolean isFieldHandle():293:293 -> c
    2:2:com.android.tools.r8.graph.DexField asField():310 -> c
    3:4:com.android.tools.r8.graph.DexField asField():310:311 -> c
    1:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):266:271 -> collectIndexedItems
    7:9:boolean com.android.tools.r8.graph.DexMethod.collectIndexedItemsExceptName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):52:54 -> collectIndexedItems
    7:9:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):271 -> collectIndexedItems
    10:10:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):273:273 -> collectIndexedItems
    11:11:void com.android.tools.r8.graph.DexMethod.collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):62:62 -> collectIndexedItems
    11:11:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):273 -> collectIndexedItems
    12:12:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> collectIndexedItems
    12:12:void com.android.tools.r8.graph.DexMethod.collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):62 -> collectIndexedItems
    12:12:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):273 -> collectIndexedItems
    13:13:void com.android.tools.r8.graph.DexMethod.collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):62:62 -> collectIndexedItems
    13:13:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):273 -> collectIndexedItems
    14:14:boolean com.android.tools.r8.graph.DexMethod.collectIndexedItemsExceptName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):52:52 -> collectIndexedItems
    14:14:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):271 -> collectIndexedItems
    15:15:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):276:276 -> collectIndexedItems
    1:1:int compareTo(java.lang.Object):15:15 -> compareTo
    2:2:int compareTo(com.android.tools.r8.graph.DexMethodHandle):358:358 -> compareTo
    2:2:int compareTo(java.lang.Object):15 -> compareTo
    1:6:boolean computeEquals(java.lang.Object):243:248 -> computeEquals
    1:1:int computeHashCode():238:238 -> computeHashCode
    1:1:com.android.tools.r8.graph.DexMethod asMethod():305:305 -> d
    2:2:boolean isMethodHandle():297:297 -> d
    2:2:com.android.tools.r8.graph.DexMethod asMethod():305 -> d
    3:4:com.android.tools.r8.graph.DexMethod asMethod():305:306 -> d
    1:1:boolean isStaticHandle():301:301 -> e
    2:2:boolean com.android.tools.r8.graph.DexMethodHandle$MethodHandleType.isStaticPut():126:126 -> e
    2:2:boolean isStaticHandle():301 -> e
    3:3:boolean isStaticHandle():301:301 -> e
    4:4:boolean com.android.tools.r8.graph.DexMethodHandle$MethodHandleType.isStaticGet():130:130 -> e
    4:4:boolean isStaticHandle():301 -> e
    5:5:boolean isStaticHandle():301:301 -> e
    6:6:boolean com.android.tools.r8.graph.DexMethodHandle$MethodHandleType.isStaticGet():130:130 -> e
    6:6:boolean isStaticHandle():301 -> e
    7:7:boolean com.android.tools.r8.graph.DexMethodHandle$MethodHandleType.isStaticPut():126:126 -> e
    7:7:boolean isStaticHandle():301 -> e
    1:1:java.lang.String toSmaliString():289:289 -> toSmaliString
    1:6:java.lang.String toString():255:260 -> toString
com.android.tools.r8.graph.DexMethodHandle$MethodHandleType -> com.android.tools.r8.graph.b0$a:
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_CONSTRUCTOR -> h
    boolean $assertionsDisabled -> m
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_INSTANCE -> g
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType[] $VALUES -> l
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_STATIC -> f
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INSTANCE_GET -> e
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INSTANCE_PUT -> d
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType STATIC_GET -> c
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType STATIC_PUT -> b
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_SUPER -> k
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_INTERFACE -> j
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_DIRECT -> i
    short value -> a
    1:12:void <clinit>():18:29 -> <clinit>
    13:13:void <clinit>():18:18 -> <clinit>
    1:2:void <init>(java.lang.String,int,short):33:34 -> <init>
    1:1:short getValue():38:38 -> a
    2:29:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):85:112 -> a
    30:34:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):106:110 -> a
    35:48:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):95:108 -> a
    49:49:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):104:104 -> a
    50:50:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):93:93 -> a
    51:51:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):91:91 -> a
    52:52:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):89:89 -> a
    53:53:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):87:87 -> a
    1:1:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):76:76 -> b
    2:2:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):73:73 -> b
    3:3:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):70:70 -> b
    4:4:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):67:67 -> b
    5:5:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):64:64 -> b
    6:6:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):61:61 -> b
    7:7:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):58:58 -> b
    8:8:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):55:55 -> b
    9:9:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):52:52 -> b
    10:10:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):49:49 -> b
    11:44:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):46:79 -> b
    45:45:short getValue():38:38 -> b
    45:45:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):79 -> b
    46:46:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):79:79 -> b
    47:47:boolean isStaticPut():126:126 -> b
    47:47:boolean isFieldType():117 -> b
    48:48:boolean isStaticGet():130:130 -> b
    48:48:boolean isFieldType():117 -> b
    49:49:boolean isInstancePut():134:134 -> b
    49:49:boolean isFieldType():117 -> b
    50:50:boolean isInstanceGet():138:138 -> b
    50:50:boolean isFieldType():117 -> b
    1:1:boolean isInvokeConstructor():162:162 -> c
    1:1:boolean isInvokeDirect():146:146 -> d
    1:1:boolean isInvokeInstance():150:150 -> e
    1:1:boolean isInvokeInterface():154:154 -> f
    1:1:boolean isInvokeStatic():142:142 -> g
    1:1:boolean isMethodType():121:121 -> h
    2:2:boolean isInvokeSuper():158:158 -> h
    2:2:boolean isMethodType():121 -> h
    3:3:boolean isMethodType():122:122 -> h
    1:16:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():166:181 -> i
    17:17:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():179:179 -> i
    18:18:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():177:177 -> i
    19:19:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():175:175 -> i
    20:20:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():173:173 -> i
    21:21:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():171:171 -> i
    22:22:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():169:169 -> i
    1:1:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType[] values():18:18 -> j
com.android.tools.r8.graph.DexProgramClass -> com.android.tools.r8.graph.c0:
    java.util.Collection synthesizedFrom -> u
    com.android.tools.r8.kotlin.KotlinInfo kotlinInfo -> w
    com.android.tools.r8.graph.DexEncodedArray staticValues -> t
    com.android.tools.r8.graph.DexProgramClass[] EMPTY_ARRAY -> y
    com.android.tools.r8.graph.DexEncodedArray SENTINEL_NOT_YET_COMPUTED -> z
    com.android.tools.r8.ProgramResource$Kind originKind -> s
    int initialClassFileVersion -> v
    com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier checksumSupplier -> x
    boolean $assertionsDisabled -> A
    1:10:void <clinit>():24:33 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier):82:82 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier):63:63 -> <init>
    3:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier,java.util.Collection):105:105 -> <init>
    4:94:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.NestHostClassAttribute,java.util.List,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier,java.util.Collection):37:127 -> <init>
    boolean isNotProgramClass() -> Q
    boolean isProgramClass() -> R
    1:12:void computeStaticValues():330:341 -> X
    13:13:boolean com.android.tools.r8.graph.DexValue.isDefault(com.android.tools.r8.graph.DexType):183:183 -> X
    13:13:void computeStaticValues():341 -> X
    14:16:void computeStaticValues():347:349 -> X
    1:1:long getChecksum():524:524 -> Y
    1:2:int getInitialClassFileVersion():436:437 -> Z
    1:5:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):192:196 -> a
    6:9:void sortMembers():403:406 -> a
    6:9:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):200 -> a
    10:18:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):201:209 -> a
    19:19:void com.android.tools.r8.graph.DexTypeList.collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):46:46 -> a
    19:19:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):210 -> a
    20:20:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):212:212 -> a
    21:21:com.android.tools.r8.graph.DexProgramClass asProgramClassOrNull(com.android.tools.r8.graph.DexClass):263:263 -> a
    22:23:void setKotlinInfo(com.android.tools.r8.kotlin.KotlinInfo):277:278 -> a
    24:27:void addSynthesizedFrom(com.android.tools.r8.graph.DexProgramClass):321:324 -> a
    28:32:boolean isSorted(com.android.tools.r8.graph.KeyedDexItem[]):362:366 -> a
    33:56:boolean hasReachabilitySensitiveAnnotation(com.android.tools.r8.graph.DexItemFactory):449:472 -> a
    57:57:java.lang.Iterable asProgramClasses(java.lang.Iterable,com.android.tools.r8.graph.DexDefinitionSupplier):482:482 -> a
    1:2:com.android.tools.r8.graph.DexEncodedArray getStaticValues():370:371 -> a0
    1:3:void synchronizedCollectAll(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexItem[]):172:174 -> b
    4:6:void synchronizedCollectAll(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.graph.DexItem[]):217:219 -> b
    7:7:java.util.Iterator lambda$asProgramClasses$2(java.lang.Iterable,com.android.tools.r8.graph.DexDefinitionSupplier):483:483 -> b
    8:8:long checksumFromType(com.android.tools.r8.graph.DexProgramClass):520:520 -> b
    9:9:boolean com.android.tools.r8.graph.DexClass.isFinal():634:634 -> b
    9:9:boolean isEffectivelyFinal(com.android.tools.r8.graph.AppView):238 -> b
    10:16:boolean isEffectivelyFinal(com.android.tools.r8.graph.AppView):241:247 -> b
    1:1:java.util.Collection getSynthesizedFrom():178:178 -> b0
    1:3:boolean hasAnnotations(com.android.tools.r8.graph.DexEncodedField[]):309:311 -> c
    4:6:boolean hasAnnotations(com.android.tools.r8.graph.DexEncodedMethod[]):315:317 -> c
    7:7:com.android.tools.r8.graph.DexField lambda$sortEncodedFields$0(com.android.tools.r8.graph.DexEncodedField):411:411 -> c
    8:9:void setInitialClassFileVersion(int):427:428 -> c
    10:10:long invalidChecksumRequest(com.android.tools.r8.graph.DexProgramClass):515:515 -> c
    11:11:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> c
    11:11:long invalidChecksumRequest(com.android.tools.r8.graph.DexProgramClass):515 -> c
    12:12:long invalidChecksumRequest(com.android.tools.r8.graph.DexProgramClass):515:515 -> c
    1:5:boolean hasAnnotations():294:298 -> c0
    1:8:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):141:148 -> collectIndexedItems
    9:9:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> collectIndexedItems
    9:9:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):149 -> collectIndexedItems
    10:10:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):151:151 -> collectIndexedItems
    11:11:void com.android.tools.r8.graph.DexAnnotationSet.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):70:70 -> collectIndexedItems
    11:11:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):152 -> collectIndexedItems
    12:24:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):154:166 -> collectIndexedItems
    1:4:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):183:186 -> collectMixedSectionItems
    1:1:void addDirectMethod(com.android.tools.r8.graph.DexEncodedMethod):396:396 -> d
    2:2:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> d
    2:2:void addDirectMethod(com.android.tools.r8.graph.DexEncodedMethod):397 -> d
    3:6:void addDirectMethod(com.android.tools.r8.graph.DexEncodedMethod):396:399 -> d
    7:9:void sortEncodedFields(com.android.tools.r8.graph.DexEncodedField[]):410:412 -> d
    10:12:void sortEncodedMethods(com.android.tools.r8.graph.DexEncodedMethod[]):416:418 -> d
    1:1:boolean hasClassFileVersion():432:432 -> d0
    1:2:void addMethod(com.android.tools.r8.graph.DexEncodedMethod):378:379 -> e
    3:3:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> e
    3:3:void addMethod(com.android.tools.r8.graph.DexEncodedMethod):380 -> e
    4:4:void addMethod(com.android.tools.r8.graph.DexEncodedMethod):383:383 -> e
    5:5:void addMethod(com.android.tools.r8.graph.DexEncodedMethod):381:381 -> e
    1:1:boolean hasMethods():286:286 -> e0
    1:1:boolean hasMethodsOrFields():290 -> e0
    2:2:boolean hasFields():282:282 -> e0
    2:2:boolean hasMethodsOrFields():290 -> e0
    1:3:void addVirtualMethod(com.android.tools.r8.graph.DexEncodedMethod):388:390 -> f
    4:4:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> f
    4:4:void addVirtualMethod(com.android.tools.r8.graph.DexEncodedMethod):390 -> f
    5:7:void addVirtualMethod(com.android.tools.r8.graph.DexEncodedMethod):390:392 -> f
    1:4:boolean hasOnlyInternalizableAnnotations():302:305 -> f0
    1:1:com.android.tools.r8.graph.DexMethod lambda$sortEncodedMethods$1(com.android.tools.r8.graph.DexEncodedMethod):417:417 -> g
    1:4:boolean isSorted():354:357 -> g0
    1:1:boolean originatesFromClassResource():135:135 -> h0
    1:1:boolean originatesFromDexResource():131:131 -> i0
    com.android.tools.r8.graph.DexProgramClass asProgramClass() -> l
    1:1:java.lang.String toSourceString():229:229 -> toSourceString
    1:1:java.lang.String toString():224:224 -> toString
    1:1:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo():273:273 -> w
com.android.tools.r8.graph.DexProgramClass$1 -> com.android.tools.r8.graph.c0$a:
    java.util.Iterator iterator -> b
    com.android.tools.r8.graph.DexProgramClass next -> a
    java.lang.Iterable val$types -> c
    com.android.tools.r8.graph.DexDefinitionSupplier val$definitions -> d
    1:5:void <init>(java.lang.Iterable,com.android.tools.r8.graph.DexDefinitionSupplier):483:487 -> <init>
    1:5:com.android.tools.r8.graph.DexProgramClass findNext():502:506 -> c
    1:1:boolean hasNext():491:491 -> hasNext
    1:2:com.android.tools.r8.graph.DexProgramClass next():496:497 -> next
    1:2:java.lang.Object next():483 -> next
com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier -> com.android.tools.r8.graph.c0$b:
    long getChecksum(com.android.tools.r8.graph.DexProgramClass) -> a
com.android.tools.r8.graph.DexProto -> com.android.tools.r8.graph.d0:
    com.android.tools.r8.graph.DexString shorty -> c
    com.android.tools.r8.graph.DexTypeList parameters -> e
    com.android.tools.r8.graph.DexProto SENTINEL -> f
    com.android.tools.r8.graph.DexType returnType -> d
    1:1:void <clinit>():11:11 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList):17:20 -> <init>
    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):9:9 -> a
    2:2:int slowCompareTo(java.lang.Object):9:9 -> a
    3:3:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):58:58 -> a
    4:4:int layeredCompareTo(com.android.tools.r8.graph.DexProto,com.android.tools.r8.naming.NamingLens):86:86 -> a
    5:5:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):173:173 -> a
    5:5:int layeredCompareTo(com.android.tools.r8.graph.DexProto,com.android.tools.r8.naming.NamingLens):86 -> a
    6:6:int layeredCompareTo(com.android.tools.r8.graph.DexProto,com.android.tools.r8.naming.NamingLens):88:88 -> a
    7:7:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):173:173 -> a
    7:7:int layeredCompareTo(com.android.tools.r8.graph.DexProto,com.android.tools.r8.naming.NamingLens):86 -> a
    8:15:java.lang.String toDescriptorString(com.android.tools.r8.naming.NamingLens):103:110 -> a
    1:3:int slowCompareTo(com.android.tools.r8.graph.DexProto):68:70 -> b
    4:16:int com.android.tools.r8.graph.DexTypeList.slowCompareTo(com.android.tools.r8.graph.DexTypeList):96:108 -> b
    4:16:int slowCompareTo(com.android.tools.r8.graph.DexProto):70 -> b
    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):49:50 -> collectIndexedItems
    3:3:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> collectIndexedItems
    3:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):50 -> collectIndexedItems
    4:5:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):51:52 -> collectIndexedItems
    6:6:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> collectIndexedItems
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):50 -> collectIndexedItems
    1:1:int compareTo(java.lang.Object):9:9 -> compareTo
    2:2:int compareTo(com.android.tools.r8.graph.DexProto):63:63 -> compareTo
    2:2:int compareTo(java.lang.Object):9 -> compareTo
    1:5:boolean computeEquals(java.lang.Object):32:36 -> computeEquals
    1:3:int computeHashCode():25:27 -> computeHashCode
    1:1:java.lang.String toDescriptorString():99:99 -> toSmaliString
    1:1:java.lang.String toSmaliString():95 -> toSmaliString
    1:1:java.lang.String toString():43:43 -> toString
com.android.tools.r8.graph.DexReference -> com.android.tools.r8.graph.e0:
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void <init>():14:14 -> <init>
    1:1:java.util.stream.Stream filterDexReference(java.util.stream.Stream):49:49 -> a
    1:1:java.util.stream.Stream filterDexType(java.util.stream.Stream):76:76 -> b
    2:2:java.util.stream.Stream filter(java.util.stream.Stream,java.util.function.Predicate,java.util.function.Function):72:72 -> b
    2:2:java.util.stream.Stream filterDexType(java.util.stream.Stream):76 -> b
    com.android.tools.r8.graph.DexField asDexField() -> c
    com.android.tools.r8.graph.DexMethod asDexMethod() -> d
    com.android.tools.r8.graph.DexType asDexType() -> e
    boolean isDexField() -> f
    boolean isDexMethod() -> g
    boolean isDexType() -> h
com.android.tools.r8.graph.DexString -> com.android.tools.r8.graph.f0:
    boolean $assertionsDisabled -> f
    byte[] content -> d
    int size -> c
    com.android.tools.r8.graph.DexString[] EMPTY_ARRAY -> e
    1:3:void <clinit>():17:19 -> <clinit>
    1:3:void <init>(int,byte[]):25:27 -> <init>
    4:6:void <init>(java.lang.String):30:32 -> <init>
    int countBytes(char) -> a
    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):17:17 -> a
    2:2:int slowCompareTo(java.lang.Object):17:17 -> a
    3:19:int decodePrefix(char[]):124:140 -> a
    20:32:int decodePrefix(char[]):138:150 -> a
    33:40:int decodePrefix(char[]):148:155 -> a
    41:43:int countBytes(java.lang.String):200:202 -> a
    41:43:byte[] encodeToMutf8(java.lang.String):219 -> a
    44:49:byte[] encodeToMutf8(java.lang.String):219:224 -> a
    50:57:int encodeToMutf8(char,byte[],int):230:237 -> a
    58:58:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):250:250 -> a
    59:66:boolean isValidSimpleName(int,java.lang.String):394:401 -> a
    67:71:boolean endsWith(com.android.tools.r8.graph.DexString):462:466 -> a
    1:1:int layeredCompareTo(com.android.tools.r8.graph.DexString,com.android.tools.r8.naming.NamingLens):300:300 -> b
    1:3:java.lang.String decode():115:117 -> c
    4:16:int slowCompareTo(com.android.tools.r8.graph.DexString):268:280 -> c
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> collectIndexedItems
    1:1:int compareTo(java.lang.Object):17:17 -> compareTo
    2:2:int compareTo(com.android.tools.r8.graph.DexString):255:255 -> compareTo
    2:2:int compareTo(java.lang.Object):17 -> compareTo
    1:3:boolean computeEquals(java.lang.Object):82:84 -> computeEquals
    1:1:int computeHashCode():77:77 -> computeHashCode
    1:32:int decodedHashCode():161:192 -> d
    33:46:int decodedHashCode():175:188 -> d
    47:49:boolean isValidSimpleName(int):409:411 -> d
    50:54:boolean startsWith(com.android.tools.r8.graph.DexString):434:438 -> d
    1:11:java.lang.String dump():420:430 -> e
    1:1:boolean isValidClassDescriptor():386:386 -> f
    2:13:boolean isValidClassDescriptor(java.lang.String):304:315 -> f
    2:13:boolean isValidClassDescriptor():386 -> f
    14:14:boolean isValidClassDescriptor(java.lang.String):313:313 -> f
    14:14:boolean isValidClassDescriptor():386 -> f
    1:1:boolean isValidFieldName():378:378 -> g
    2:18:boolean isValidFieldName(java.lang.String):345:361 -> g
    2:18:boolean isValidFieldName():378 -> g
    19:19:boolean isValidFieldName(java.lang.String):359:359 -> g
    19:19:boolean isValidFieldName():378 -> g
    1:1:boolean isValidMethodName():370:370 -> h
    2:16:boolean isValidMethodName(java.lang.String):323:337 -> h
    2:16:boolean isValidMethodName():370 -> h
    17:17:boolean isValidMethodName(java.lang.String):335:335 -> h
    17:17:boolean isValidMethodName():370 -> h
    1:1:com.android.tools.r8.utils.ThrowingCharIterator iterator():36:36 -> i
    1:3:java.lang.String toASCIIString():100:102 -> j
    1:3:java.lang.String toString():92:94 -> toString
com.android.tools.r8.graph.DexString$1 -> com.android.tools.r8.graph.f0$a:
    com.android.tools.r8.graph.DexString this$0 -> b
    boolean $assertionsDisabled -> c
    int i -> a
    1:1:void <clinit>():36:36 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexString):36:38 -> <init>
    1:24:char nextChar():42:65 -> a
    25:25:char nextChar():43:43 -> a
    1:1:boolean hasNext():70:70 -> hasNext
com.android.tools.r8.graph.DexType -> com.android.tools.r8.graph.g0:
    com.android.tools.r8.graph.DexString descriptor -> c
    java.util.List OLD_SYNTHESIZED_NAMES -> f
    boolean $assertionsDisabled -> g
    com.android.tools.r8.graph.DexType[] EMPTY_ARRAY -> e
    java.lang.String toStringCache -> d
    1:6:void <clinit>():33:38 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexString):43:43 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.DexString):41:46 -> <init>
    1:1:char toShorty():127:127 -> A
    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):33:33 -> a
    2:3:int layeredCompareTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.NamingLens):190:191 -> a
    2:3:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):33 -> a
    4:4:int com.android.tools.r8.graph.DexString.compareTo(com.android.tools.r8.graph.DexString):255:255 -> a
    4:4:int layeredCompareTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.NamingLens):192 -> a
    4:4:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):33 -> a
    5:5:int slowCompareTo(java.lang.Object):33:33 -> a
    6:6:boolean isAlwaysNull(com.android.tools.r8.graph.AppView):83:83 -> a
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    7:7:boolean isAlwaysNull(com.android.tools.r8.graph.AppView):84 -> a
    8:15:boolean isAlwaysNull(com.android.tools.r8.graph.AppView):84:91 -> a
    16:16:boolean isSamePackage(com.android.tools.r8.graph.DexType):98:98 -> a
    17:17:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):158:158 -> a
    18:18:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    18:18:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate):68 -> a
    19:19:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView,java.util.function.Predicate):69:69 -> a
    20:22:com.android.tools.r8.graph.DexType replaceBaseType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):357:359 -> a
    23:27:com.android.tools.r8.graph.DexType toArrayType(int,com.android.tools.r8.graph.DexItemFactory):363:367 -> a
    28:30:com.android.tools.r8.graph.DexType toArrayElementType(com.android.tools.r8.graph.DexItemFactory):371:373 -> a
    31:33:com.android.tools.r8.graph.DexType toArrayElementType(com.android.tools.r8.graph.DexItemFactory):372:374 -> a
    34:41:java.lang.String getPackageOrName(boolean):378:385 -> a
    1:1:int slowCompareTo(com.android.tools.r8.graph.DexType):178:178 -> b
    2:7:com.android.tools.r8.graph.DexType toBaseType(com.android.tools.r8.graph.DexItemFactory):332:337 -> b
    8:10:com.android.tools.r8.graph.DexType toBaseType(com.android.tools.r8.graph.DexItemFactory):336:338 -> b
    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):144:145 -> collectIndexedItems
    3:3:void com.android.tools.r8.graph.DexString.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):245:245 -> collectIndexedItems
    3:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):145 -> collectIndexedItems
    1:1:int compareTo(java.lang.Object):33:33 -> compareTo
    2:2:int compareTo(com.android.tools.r8.graph.DexType):173:173 -> compareTo
    2:2:int compareTo(java.lang.Object):33 -> compareTo
    1:2:boolean computeEquals(java.lang.Object):56:57 -> computeEquals
    1:1:int computeHashCode():51:51 -> computeHashCode
    com.android.tools.r8.graph.DexType asDexType() -> e
    1:2:void flushCachedValues():152:153 -> flushCachedValues
    boolean isDexType() -> h
    1:16:int elementSizeForPrimitiveArrayType():304:319 -> i
    1:2:java.lang.String getInternalName():402:403 -> j
    1:4:java.lang.String getName():394:397 -> k
    1:1:int getNumberOfLeadingSquareBrackets():325:325 -> l
    1:1:java.lang.String getPackageDescriptor():390:390 -> m
    1:4:java.lang.String toBinaryName():106:109 -> n
    1:4:java.lang.String getPackageName():407 -> n
    5:8:java.lang.String toBinaryName():107:110 -> n
    5:8:java.lang.String getPackageName():407 -> n
    9:9:java.lang.String getPackageName():407:407 -> n
    1:1:boolean isArrayType():236:236 -> o
    1:1:boolean isBooleanType():204:204 -> p
    1:1:boolean isClassType():241:241 -> q
    1:13:boolean isD8R8SynthesizedClassType():268:280 -> r
    14:15:boolean oldSynthesizedName(java.lang.String):285:286 -> r
    14:15:boolean isD8R8SynthesizedClassType():281 -> r
    1:1:boolean isDoubleType():232:232 -> s
    1:1:boolean isIntType():220:220 -> t
    1:1:java.lang.String toSmaliString():133:133 -> toSmaliString
    1:9:java.lang.String toSourceString():115:123 -> toSourceString
    1:1:java.lang.String toString():138:138 -> toString
    1:1:boolean isLongType():228:228 -> u
    1:4:boolean isPrimitiveArrayType():252:255 -> v
    1:1:boolean isPrimitiveType():196:196 -> w
    1:2:boolean isReferenceType():246:247 -> x
    1:1:boolean isVoidType():200:200 -> y
    1:1:java.lang.String toDescriptorString():102:102 -> z
com.android.tools.r8.graph.DexTypeList -> com.android.tools.r8.graph.h0:
    com.android.tools.r8.graph.DexType[] values -> a
    com.android.tools.r8.graph.DexTypeList theEmptyTypeList -> b
    boolean $assertionsDisabled -> c
    1:3:void <clinit>():12:14 -> <clinit>
    1:2:void <init>():22:23 -> <init>
    3:5:void <init>(com.android.tools.r8.graph.DexType[]):26:28 -> <init>
    1:1:com.android.tools.r8.graph.DexTypeList empty():19:19 -> a
    2:8:int compareTo(com.android.tools.r8.graph.DexTypeList):80:86 -> a
    9:9:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):173:173 -> a
    9:9:int compareTo(com.android.tools.r8.graph.DexTypeList):86 -> a
    10:10:int compareTo(com.android.tools.r8.graph.DexTypeList):92:92 -> a
    1:1:boolean isEmpty():59:59 -> b
    1:1:int size():63:63 -> c
    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):39:40 -> collectIndexedItems
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):46:46 -> collectMixedSectionItems
    1:1:int compareTo(java.lang.Object):12:12 -> compareTo
    1:2:boolean equals(java.lang.Object):54:55 -> equals
    1:1:int hashCode():33:33 -> hashCode
    1:8:java.lang.String toString():68:75 -> toString
com.android.tools.r8.graph.DexValue -> com.android.tools.r8.graph.i0:
    com.android.tools.r8.graph.DexValue$UnknownDexValue UNKNOWN -> b
    com.android.tools.r8.graph.DexValue[] EMPTY_ARRAY -> a
    1:3:void <clinit>():29:31 -> <clinit>
    1:1:void <init>():27:27 -> <init>
    java.lang.Object asAsmEncodedObject() -> a
    com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo) -> a
    void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping) -> a
    1:22:com.android.tools.r8.graph.DexValue fromAsmBootstrapArgument(java.lang.Object,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):94:115 -> a
    23:36:com.android.tools.r8.graph.DexValue fromAsmBootstrapArgument(java.lang.Object,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):109:122 -> a
    37:57:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):150:170 -> a
    58:74:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):152:168 -> a
    75:75:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):162:162 -> a
    76:82:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):160:166 -> a
    83:83:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):156:156 -> a
    84:84:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):154:154 -> a
    com.android.tools.r8.graph.DexValue$DexValueArray asDexValueArray() -> b
    com.android.tools.r8.graph.DexValue$DexValueInt asDexValueInt() -> c
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):133:133 -> collectMixedSectionItems
    com.android.tools.r8.graph.DexValue$DexValueMethodHandle asDexValueMethodHandle() -> d
    com.android.tools.r8.graph.DexValue$DexValueMethodType asDexValueMethodType() -> e
    com.android.tools.r8.graph.DexValue$DexValueString asDexValueString() -> f
    com.android.tools.r8.graph.DexValue$DexValueType asDexValueType() -> g
    java.lang.Object getBoxedValue() -> h
    boolean isDexValueArray() -> i
    boolean isDexValueInt() -> j
    boolean isDexValueType() -> k
    boolean mayHaveSideEffects() -> l
    void sort() -> m
com.android.tools.r8.graph.DexValue$1 -> com.android.tools.r8.graph.i0$a:
com.android.tools.r8.graph.DexValue$DexItemBasedValueString -> com.android.tools.r8.graph.i0$b:
    boolean $assertionsDisabled -> e
    com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo nameComputationInfo -> d
    1:1:void <clinit>():829:829 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):834:835 -> <init>
    1:1:java.lang.Object asAsmEncodedObject():844:844 -> a
    2:9:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):855:862 -> a
    10:10:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):870:870 -> a
    1:1:void com.android.tools.r8.graph.DexValue$NestedDexValue.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):752:752 -> collectIndexedItems
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):829 -> collectIndexedItems
    1:1:boolean equals(java.lang.Object):829:829 -> equals
    1:1:java.lang.Object getBoxedValue():829:829 -> h
    1:1:int hashCode():829:829 -> hashCode
    void sort() -> m
    com.android.tools.r8.graph.IndexedDexItem getValue() -> n
    byte getValueKind() -> o
    1:1:com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo getNameComputationInfo():839:839 -> p
    1:1:java.lang.String toString():829:829 -> toString
com.android.tools.r8.graph.DexValue$DexValueAnnotation -> com.android.tools.r8.graph.i0$c:
    com.android.tools.r8.graph.DexEncodedAnnotation value -> c
    1:2:void <init>(com.android.tools.r8.graph.DexEncodedAnnotation):1061:1062 -> <init>
    1:1:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
    1:1:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1073 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1074:1074 -> a
    3:3:java.lang.Object asAsmEncodedObject():1084:1084 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):1068:1068 -> collectIndexedItems
    2:3:void com.android.tools.r8.graph.DexEncodedAnnotation.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):29:30 -> collectIndexedItems
    2:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):1068 -> collectIndexedItems
    1:3:boolean equals(java.lang.Object):1102:1104 -> equals
    1:1:java.lang.Object getBoxedValue():1079:1079 -> h
    1:1:int hashCode():1094:1094 -> hashCode
    1:1:void sort():1089:1089 -> m
    1:1:java.lang.String toString():1111:1111 -> toString
com.android.tools.r8.graph.DexValue$DexValueArray -> com.android.tools.r8.graph.i0$d:
    com.android.tools.r8.graph.DexValue[] values -> c
    1:2:void <init>(com.android.tools.r8.graph.DexValue[]):984:985 -> <init>
    1:1:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
    1:1:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1000 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1001:1001 -> a
    3:3:void com.android.tools.r8.dex.DexOutputBuffer.putUleb128(int):80:80 -> a
    3:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1001 -> a
    4:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1002:1003 -> a
    6:6:java.lang.Object asAsmEncodedObject():1014:1014 -> a
    com.android.tools.r8.graph.DexValue$DexValueArray asDexValueArray() -> b
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):995:995 -> collectIndexedItems
    1:3:boolean equals(java.lang.Object):1034:1036 -> equals
    1:1:java.lang.Object getBoxedValue():1009:1009 -> h
    1:1:int hashCode():1026:1026 -> hashCode
    boolean isDexValueArray() -> i
    1:2:void sort():1019:1020 -> m
    1:1:com.android.tools.r8.graph.DexValue[] getValues():989:989 -> n
    1:1:java.lang.String toString():1043:1043 -> toString
com.android.tools.r8.graph.DexValue$DexValueBoolean -> com.android.tools.r8.graph.i0$e:
    com.android.tools.r8.graph.DexValue$DexValueBoolean TRUE -> d
    com.android.tools.r8.graph.DexValue$DexValueBoolean FALSE -> e
    com.android.tools.r8.graph.DexValue$DexValueBoolean DEFAULT -> f
    boolean value -> c
    1:4:void <clinit>():1169:1172 -> <clinit>
    1:2:void <init>(boolean):1176:1177 -> <init>
    1:1:com.android.tools.r8.graph.DexValue$DexValueBoolean create(boolean):1181:1181 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1195:1195 -> a
    3:3:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
    3:3:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
    3:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1195 -> a
    4:4:java.lang.Object asAsmEncodedObject():1200:1200 -> a
    5:5:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):1224:1224 -> a
    1:1:boolean equals(java.lang.Object):1213:1213 -> equals
    1:1:java.lang.Object getBoxedValue():1190:1190 -> h
    1:1:int hashCode():1205:1205 -> hashCode
    boolean mayHaveSideEffects() -> l
    void sort() -> m
    1:1:com.android.tools.r8.graph.DexValue$DexValueBoolean access$000():1167:1167 -> n
    1:1:boolean getValue():1185:1185 -> o
    1:1:java.lang.String toString():1218:1218 -> toString
com.android.tools.r8.graph.DexValue$DexValueByte -> com.android.tools.r8.graph.i0$f:
    byte value -> c
    com.android.tools.r8.graph.DexValue$DexValueByte DEFAULT -> d
    1:1:void <clinit>():290:290 -> <clinit>
    1:2:void <init>(byte):294:295 -> <init>
    1:1:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
    1:1:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):313 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):314:314 -> a
    3:3:int com.android.tools.r8.dex.DexOutputBuffer.putSignedEncodedValue(long,int):88:88 -> a
    3:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):314 -> a
    4:4:com.android.tools.r8.graph.DexValue$DexValueByte create(byte):299:299 -> a
    5:5:java.lang.Object asAsmEncodedObject():319:319 -> a
    6:6:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):343:343 -> a
    1:1:boolean equals(java.lang.Object):332:332 -> equals
    1:1:java.lang.Object getBoxedValue():308:308 -> h
    1:1:int hashCode():324:324 -> hashCode
    boolean mayHaveSideEffects() -> l
    void sort() -> m
    1:1:byte getValue():303:303 -> n
    1:1:java.lang.String toString():337:337 -> toString
com.android.tools.r8.graph.DexValue$DexValueChar -> com.android.tools.r8.graph.i0$g:
    com.android.tools.r8.graph.DexValue$DexValueChar DEFAULT -> d
    char value -> c
    1:1:void <clinit>():406:406 -> <clinit>
    1:2:void <init>(char):409:410 -> <init>
    1:1:com.android.tools.r8.graph.DexValue$DexValueChar create(char):414:414 -> a
    2:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):428:429 -> a
    4:4:int com.android.tools.r8.dex.DexOutputBuffer.putUnsignedEncodedValue(long,int):92:92 -> a
    4:4:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):429 -> a
    5:5:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):166:166 -> a
    5:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):430 -> a
    6:6:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
    6:6:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
    6:6:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):431 -> a
    7:7:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):432:432 -> a
    8:8:java.lang.Object asAsmEncodedObject():437:437 -> a
    9:9:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):461:461 -> a
    1:1:boolean equals(java.lang.Object):450:450 -> equals
    1:1:java.lang.Object getBoxedValue():423:423 -> h
    1:1:int hashCode():442:442 -> hashCode
    boolean mayHaveSideEffects() -> l
    void sort() -> m
    1:1:char getValue():418:418 -> n
    1:1:java.lang.String toString():455:455 -> toString
com.android.tools.r8.graph.DexValue$DexValueDouble -> com.android.tools.r8.graph.i0$h:
    com.android.tools.r8.graph.DexValue$DexValueDouble DEFAULT -> d
    double value -> c
    1:1:void <clinit>():654:654 -> <clinit>
    1:2:void <init>(double):658:659 -> <init>
    1:1:com.android.tools.r8.graph.DexValue$DexValueDouble create(double):663:663 -> a
    2:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):677:678 -> a
    4:4:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):166:166 -> a
    4:4:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):679 -> a
    5:5:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
    5:5:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
    5:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):680 -> a
    6:6:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):681:681 -> a
    7:7:java.lang.Object asAsmEncodedObject():686:686 -> a
    8:8:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):692:692 -> a
    9:10:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createDoubleConstant(double,com.android.tools.r8.graph.DebugLocalInfo):1049:1050 -> a
    9:10:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):692 -> a
    11:11:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createDoubleConstant(double,com.android.tools.r8.graph.DebugLocalInfo):1049:1049 -> a
    11:11:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):692 -> a
    1:2:boolean equals(java.lang.Object):705:706 -> equals
    1:1:java.lang.Object getBoxedValue():672:672 -> h
    1:1:int hashCode():697:697 -> hashCode
    boolean mayHaveSideEffects() -> l
    void sort() -> m
    1:1:double getValue():667:667 -> n
    1:1:java.lang.String toString():711:711 -> toString
com.android.tools.r8.graph.DexValue$DexValueEnum -> com.android.tools.r8.graph.i0$i:
    1:1:void <init>(com.android.tools.r8.graph.DexField):942:942 -> <init>
    1:1:java.lang.Object asAsmEncodedObject():939:939 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):939:939 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):953:953 -> collectIndexedItems
    1:1:boolean equals(java.lang.Object):939:939 -> equals
    1:1:java.lang.Object getBoxedValue():939:939 -> h
    1:1:int hashCode():939:939 -> hashCode
    void sort() -> m
    byte getValueKind() -> o
    1:1:java.lang.String toString():939:939 -> toString
com.android.tools.r8.graph.DexValue$DexValueField -> com.android.tools.r8.graph.i0$j:
    1:1:void <init>(com.android.tools.r8.graph.DexField):906:906 -> <init>
    1:1:java.lang.Object asAsmEncodedObject():903:903 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):903:903 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):917:917 -> collectIndexedItems
    1:1:boolean equals(java.lang.Object):903:903 -> equals
    1:1:java.lang.Object getBoxedValue():903:903 -> h
    1:1:int hashCode():903:903 -> hashCode
    void sort() -> m
    byte getValueKind() -> o
    1:1:java.lang.String toString():903:903 -> toString
com.android.tools.r8.graph.DexValue$DexValueFloat -> com.android.tools.r8.graph.i0$k:
    float value -> c
    com.android.tools.r8.graph.DexValue$DexValueFloat DEFAULT -> d
    1:1:void <clinit>():591:591 -> <clinit>
    1:2:void <init>(float):594:595 -> <init>
    1:1:com.android.tools.r8.graph.DexValue$DexValueFloat create(float):599:599 -> a
    2:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):613:614 -> a
    4:4:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):166:166 -> a
    4:4:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):615 -> a
    5:5:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
    5:5:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
    5:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):616 -> a
    6:6:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):617:617 -> a
    7:7:java.lang.Object asAsmEncodedObject():622:622 -> a
    8:8:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):628:628 -> a
    9:10:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createFloatConstant(float,com.android.tools.r8.graph.DebugLocalInfo):1054:1055 -> a
    9:10:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):628 -> a
    11:11:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createFloatConstant(float,com.android.tools.r8.graph.DebugLocalInfo):1054:1054 -> a
    11:11:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):628 -> a
    1:2:boolean equals(java.lang.Object):641:642 -> equals
    1:1:java.lang.Object getBoxedValue():608:608 -> h
    1:1:int hashCode():633:633 -> hashCode
    boolean mayHaveSideEffects() -> l
    void sort() -> m
    1:1:float getValue():603:603 -> n
    1:1:java.lang.String toString():647:647 -> toString
com.android.tools.r8.graph.DexValue$DexValueInt -> com.android.tools.r8.graph.i0$l:
    int value -> c
    com.android.tools.r8.graph.DexValue$DexValueInt DEFAULT -> d
    1:1:void <clinit>():467:467 -> <clinit>
    1:2:void <init>(int):470:471 -> <init>
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):489:489 -> a
    2:2:java.lang.Object asAsmEncodedObject():504:504 -> a
    3:3:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):528:528 -> a
    1:1:com.android.tools.r8.graph.DexValue$DexValueInt create(int):475:475 -> b
    com.android.tools.r8.graph.DexValue$DexValueInt asDexValueInt() -> c
    1:1:boolean equals(java.lang.Object):517:517 -> equals
    1:1:java.lang.Object getBoxedValue():484:484 -> h
    1:1:int hashCode():509:509 -> hashCode
    boolean isDexValueInt() -> j
    boolean mayHaveSideEffects() -> l
    void sort() -> m
    1:1:int getValue():479:479 -> n
    1:1:java.lang.String toString():522:522 -> toString
com.android.tools.r8.graph.DexValue$DexValueLong -> com.android.tools.r8.graph.i0$m:
    com.android.tools.r8.graph.DexValue$DexValueLong DEFAULT -> d
    long value -> c
    1:1:void <clinit>():534:534 -> <clinit>
    1:2:void <init>(long):537:538 -> <init>
    1:1:com.android.tools.r8.graph.DexValue$DexValueLong create(long):542:542 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):556:556 -> a
    3:3:java.lang.Object asAsmEncodedObject():561:561 -> a
    4:4:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):585:585 -> a
    5:6:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createLongConstant(long,com.android.tools.r8.graph.DebugLocalInfo):1068:1069 -> a
    5:6:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):585 -> a
    7:7:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createLongConstant(long,com.android.tools.r8.graph.DebugLocalInfo):1068:1068 -> a
    7:7:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):585 -> a
    1:1:boolean equals(java.lang.Object):574:574 -> equals
    1:1:java.lang.Object getBoxedValue():551:551 -> h
    1:1:int hashCode():566:566 -> hashCode
    boolean mayHaveSideEffects() -> l
    void sort() -> m
    1:1:long getValue():546:546 -> n
    1:1:java.lang.String toString():579:579 -> toString
com.android.tools.r8.graph.DexValue$DexValueMethod -> com.android.tools.r8.graph.i0$n:
    1:1:void <init>(com.android.tools.r8.graph.DexMethod):924:924 -> <init>
    1:1:java.lang.Object asAsmEncodedObject():921:921 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):921:921 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):935:935 -> collectIndexedItems
    1:1:boolean equals(java.lang.Object):921:921 -> equals
    1:1:java.lang.Object getBoxedValue():921:921 -> h
    1:1:int hashCode():921:921 -> hashCode
    void sort() -> m
    byte getValueKind() -> o
    1:1:java.lang.String toString():921:921 -> toString
com.android.tools.r8.graph.DexValue$DexValueMethodHandle -> com.android.tools.r8.graph.i0$o:
    1:1:void <init>(com.android.tools.r8.graph.DexMethodHandle):1231:1231 -> <init>
    1:1:java.lang.Object asAsmEncodedObject():1228:1228 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1228:1228 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):1247:1247 -> collectIndexedItems
    com.android.tools.r8.graph.DexValue$DexValueMethodHandle asDexValueMethodHandle() -> d
    1:1:boolean equals(java.lang.Object):1228:1228 -> equals
    1:1:java.lang.Object getBoxedValue():1228:1228 -> h
    1:1:int hashCode():1228:1228 -> hashCode
    void sort() -> m
    byte getValueKind() -> o
    1:1:java.lang.String toString():1228:1228 -> toString
com.android.tools.r8.graph.DexValue$DexValueMethodType -> com.android.tools.r8.graph.i0$p:
    1:1:void <init>(com.android.tools.r8.graph.DexProto):960:960 -> <init>
    1:1:java.lang.Object asAsmEncodedObject():957:957 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):957:957 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):976:976 -> collectIndexedItems
    com.android.tools.r8.graph.DexValue$DexValueMethodType asDexValueMethodType() -> e
    1:1:boolean equals(java.lang.Object):957:957 -> equals
    1:1:java.lang.Object getBoxedValue():957:957 -> h
    1:1:int hashCode():957:957 -> hashCode
    void sort() -> m
    byte getValueKind() -> o
    1:1:java.lang.String toString():957:957 -> toString
com.android.tools.r8.graph.DexValue$DexValueNull -> com.android.tools.r8.graph.i0$q:
    com.android.tools.r8.graph.DexValue NULL -> c
    1:1:void <clinit>():1117:1117 -> <clinit>
    1:1:void <init>():1120:1120 -> <init>
    java.lang.Object asAsmEncodedObject() -> a
    1:1:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
    1:1:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1129 -> a
    2:3:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createConstNull(com.android.tools.r8.graph.DebugLocalInfo):1092:1093 -> a
    2:3:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):1163 -> a
    4:4:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createConstNull(com.android.tools.r8.graph.DebugLocalInfo):1092:1092 -> a
    4:4:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):1163 -> a
    1:1:boolean equals(java.lang.Object):1152:1152 -> equals
    java.lang.Object getBoxedValue() -> h
    boolean mayHaveSideEffects() -> l
    void sort() -> m
com.android.tools.r8.graph.DexValue$DexValueShort -> com.android.tools.r8.graph.i0$r:
    com.android.tools.r8.graph.DexValue$DexValueShort DEFAULT -> d
    short value -> c
    1:1:void <clinit>():349:349 -> <clinit>
    1:2:void <init>(short):352:353 -> <init>
    1:1:com.android.tools.r8.graph.DexValue$DexValueShort create(short):357:357 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):371:371 -> a
    3:3:java.lang.Object asAsmEncodedObject():376:376 -> a
    4:4:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):400:400 -> a
    1:1:boolean equals(java.lang.Object):389:389 -> equals
    1:1:java.lang.Object getBoxedValue():366:366 -> h
    1:1:int hashCode():381:381 -> hashCode
    boolean mayHaveSideEffects() -> l
    void sort() -> m
    1:1:short getValue():361:361 -> n
    1:1:java.lang.String toString():394:394 -> toString
com.android.tools.r8.graph.DexValue$DexValueString -> com.android.tools.r8.graph.i0$s:
    1:1:void <init>(com.android.tools.r8.graph.DexString):786:786 -> <init>
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):783:783 -> a
    2:2:java.lang.Object asAsmEncodedObject():801:801 -> a
    3:7:com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo):812:816 -> a
    1:1:void com.android.tools.r8.graph.DexValue$NestedDexValue.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):752:752 -> collectIndexedItems
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):783 -> collectIndexedItems
    1:1:boolean equals(java.lang.Object):783:783 -> equals
    com.android.tools.r8.graph.DexValue$DexValueString asDexValueString() -> f
    1:1:java.lang.Object getBoxedValue():783:783 -> h
    1:1:int hashCode():783:783 -> hashCode
    boolean mayHaveSideEffects() -> l
    void sort() -> m
    com.android.tools.r8.graph.IndexedDexItem getValue() -> n
    byte getValueKind() -> o
    1:1:java.lang.String toString():783:783 -> toString
com.android.tools.r8.graph.DexValue$DexValueType -> com.android.tools.r8.graph.i0$t:
    1:1:void <init>(com.android.tools.r8.graph.DexType):878:878 -> <init>
    1:1:java.lang.Object asAsmEncodedObject():875:875 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):875:875 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):889:889 -> collectIndexedItems
    1:1:boolean equals(java.lang.Object):875:875 -> equals
    com.android.tools.r8.graph.DexValue$DexValueType asDexValueType() -> g
    1:1:java.lang.Object getBoxedValue():875:875 -> h
    1:1:int hashCode():875:875 -> hashCode
    boolean isDexValueType() -> k
    void sort() -> m
    byte getValueKind() -> o
    1:1:java.lang.String toString():875:875 -> toString
com.android.tools.r8.graph.DexValue$NestedDexValue -> com.android.tools.r8.graph.i0$u:
    com.android.tools.r8.graph.IndexedDexItem value -> c
    1:1:void <init>(com.android.tools.r8.graph.IndexedDexItem,com.android.tools.r8.graph.DexValue$1):715:715 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.IndexedDexItem):719:720 -> <init>
    1:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):731:732 -> a
    3:3:int com.android.tools.r8.dex.DexOutputBuffer.putUnsignedEncodedValue(long,int):92:92 -> a
    3:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):733 -> a
    4:4:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):166:166 -> a
    4:4:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):734 -> a
    5:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):735:735 -> a
    6:6:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
    6:6:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
    6:6:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):735 -> a
    7:7:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):736:736 -> a
    8:8:java.lang.Object asAsmEncodedObject():746:746 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):752:752 -> collectIndexedItems
    1:3:boolean equals(java.lang.Object):770:772 -> equals
    1:1:java.lang.Object getBoxedValue():741:741 -> h
    1:1:int hashCode():762:762 -> hashCode
    void sort() -> m
    1:1:com.android.tools.r8.graph.IndexedDexItem getValue():726:726 -> n
    byte getValueKind() -> o
    1:1:java.lang.String toString():779:779 -> toString
com.android.tools.r8.graph.DexValue$SimpleDexValue -> com.android.tools.r8.graph.i0$v:
    1:1:void <init>():259:259 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexValue$1):259:259 -> <init>
    1:1:void writeIntegerTo(byte,long,int,com.android.tools.r8.dex.DexOutputBuffer):280:280 -> a
    2:2:int com.android.tools.r8.dex.DexOutputBuffer.putSignedEncodedValue(long,int):88:88 -> a
    2:2:void writeIntegerTo(byte,long,int,com.android.tools.r8.dex.DexOutputBuffer):281 -> a
    3:3:void com.android.tools.r8.dex.DexOutputBuffer.rewind(int):166:166 -> a
    3:3:void writeIntegerTo(byte,long,int,com.android.tools.r8.dex.DexOutputBuffer):282 -> a
    4:4:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):127:127 -> a
    4:4:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):27 -> a
    4:4:void writeIntegerTo(byte,long,int,com.android.tools.r8.dex.DexOutputBuffer):283 -> a
    5:5:void writeIntegerTo(byte,long,int,com.android.tools.r8.dex.DexOutputBuffer):284:284 -> a
com.android.tools.r8.graph.DexValue$UnknownDexValue -> com.android.tools.r8.graph.i0$w:
    com.android.tools.r8.graph.DexValue$UnknownDexValue UNKNOWN -> c
    1:1:void <clinit>():201:201 -> <clinit>
    1:1:void <init>():203:203 -> <init>
    com.android.tools.r8.ir.code.ConstInstruction asConstInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DebugLocalInfo) -> a
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):224:224 -> a
    2:2:java.lang.Object asAsmEncodedObject():234:234 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):209:209 -> collectIndexedItems
    1:1:java.lang.Object getBoxedValue():229:229 -> h
    1:1:int hashCode():239:239 -> hashCode
    boolean mayHaveSideEffects() -> l
    1:1:void sort():214:214 -> m
com.android.tools.r8.graph.DirectMappedDexApplication -> com.android.tools.r8.graph.j0:
    boolean $assertionsDisabled -> n
    com.android.tools.r8.com.google.common.collect.ImmutableList libraryClasses -> m
    com.android.tools.r8.com.google.common.collect.ImmutableList classpathClasses -> l
    com.android.tools.r8.com.google.common.collect.ImmutableList programClasses -> k
    java.util.Map codeOwners -> i
    java.util.Map allClasses -> j
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.ClassNameMapper,java.util.Map,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableSet,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing,com.android.tools.r8.graph.DirectMappedDexApplication$1):22:22 -> <init>
    2:2:void <init>(com.android.tools.r8.naming.ClassNameMapper,java.util.Map,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableSet,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing):46:46 -> <init>
    3:33:void <init>(com.android.tools.r8.naming.ClassNameMapper,java.util.Map,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableSet,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing):26:56 -> <init>
    com.android.tools.r8.graph.DirectMappedDexApplication asDirect() -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$100(com.android.tools.r8.graph.DirectMappedDexApplication):22:22 -> a
    2:3:com.android.tools.r8.graph.DexProgramClass programDefinitionFor(com.android.tools.r8.graph.DexType):114:115 -> a
    4:4:com.android.tools.r8.graph.DirectMappedDexApplication$Builder builder():120:120 -> a
    4:4:com.android.tools.r8.graph.DirectMappedDexApplication rewrittenWithLense(com.android.tools.r8.graph.GraphLense):140 -> a
    5:6:com.android.tools.r8.graph.DirectMappedDexApplication rewrittenWithLense(com.android.tools.r8.graph.GraphLense):140:141 -> a
    7:13:boolean mappingIsValid(com.android.tools.r8.graph.GraphLense,java.lang.Iterable):150:156 -> a
    7:13:com.android.tools.r8.graph.DirectMappedDexApplication rewrittenWithLense(com.android.tools.r8.graph.GraphLense):141 -> a
    14:14:com.android.tools.r8.graph.DirectMappedDexApplication rewrittenWithLense(com.android.tools.r8.graph.GraphLense):142:142 -> a
    15:17:void addAll(java.util.Map,java.lang.Iterable):245:247 -> a
    15:17:void access$300(java.util.Map,java.lang.Iterable):22 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$200(com.android.tools.r8.graph.DirectMappedDexApplication):22:22 -> b
    2:2:com.android.tools.r8.graph.DirectMappedDexApplication$Builder builder():120:120 -> b
    2:2:com.android.tools.r8.graph.DexApplication$Builder builder():22 -> b
    1:2:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):98:99 -> definitionFor
    1:1:com.android.tools.r8.graph.DexItemFactory dexItemFactory():109:109 -> dexItemFactory
    1:1:java.util.List programClasses():65:65 -> f
    com.android.tools.r8.graph.DirectMappedDexApplication toDirect() -> g
    1:1:java.util.Collection allClasses():60:60 -> h
    1:1:java.util.Collection libraryClasses():69:69 -> i
    1:12:boolean verifyCodeObjectsOwners():175:186 -> j
com.android.tools.r8.graph.DirectMappedDexApplication$1 -> com.android.tools.r8.graph.j0$a:
com.android.tools.r8.graph.DirectMappedDexApplication$Builder -> com.android.tools.r8.graph.j0$b:
    com.android.tools.r8.com.google.common.collect.ImmutableList classpathClasses -> l
    com.android.tools.r8.com.google.common.collect.ImmutableList libraryClasses -> k
    1:1:void <init>(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.DirectMappedDexApplication$1):192:192 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.LazyLoadedDexApplication):198:203 -> <init>
    8:10:void <init>(com.android.tools.r8.graph.DirectMappedDexApplication):207:209 -> <init>
    1:16:com.android.tools.r8.graph.DexApplication build():221:236 -> a
    com.android.tools.r8.graph.DexApplication$Builder self() -> e
com.android.tools.r8.graph.EnclosingMethodAttribute -> com.android.tools.r8.graph.k0:
    com.android.tools.r8.graph.DexType enclosingClass -> a
    com.android.tools.r8.graph.DexMethod enclosingMethod -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():17:17 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexType):27:28 -> <init>
    3:4:void <init>(com.android.tools.r8.graph.DexMethod):31:32 -> <init>
    1:5:void write(com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.naming.NamingLens):36:40 -> a
    6:11:void write(com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.naming.NamingLens):37:42 -> a
    12:12:com.android.tools.r8.graph.DexType getEnclosingClass():51:51 -> a
    13:17:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection):68:72 -> a
    1:1:com.android.tools.r8.graph.DexMethod getEnclosingMethod():47:47 -> b
    1:1:boolean equals(java.lang.Object):62:62 -> equals
    1:2:int hashCode():56:57 -> hashCode
    1:4:java.lang.String toString():78:81 -> toString
com.android.tools.r8.graph.FieldAccessFlags -> com.android.tools.r8.graph.l0:
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():12:12 -> <clinit>
    1:1:void <init>(int,int):45:45 -> <init>
    1:1:int com.android.tools.r8.graph.AccessFlags.materialize():67:67 -> B
    1:1:int getAsCfAccessFlags():73 -> B
    1:1:int com.android.tools.r8.graph.AccessFlags.materialize():67:67 -> C
    1:1:int getAsDexAccessFlags():78 -> C
    1:1:boolean isEnum():103:103 -> D
    1:1:boolean isTransient():95:95 -> E
    1:1:boolean isVolatile():87:87 -> F
    1:6:java.util.List getNames():22:27 -> b
    1:6:java.util.List getPredicates():32:37 -> d
    1:1:com.android.tools.r8.graph.FieldAccessFlags fromCfAccessFlags(int):68:68 -> e
    2:2:void <init>(int):41:41 -> e
    2:2:com.android.tools.r8.graph.FieldAccessFlags fromCfAccessFlags(int):68 -> e
    1:1:com.android.tools.r8.graph.FieldAccessFlags fromDexAccessFlags(int):64:64 -> f
    2:2:void <init>(int):41:41 -> f
    2:2:com.android.tools.r8.graph.FieldAccessFlags fromDexAccessFlags(int):64 -> f
    1:2:com.android.tools.r8.graph.FieldAccessFlags fromSharedAccessFlags(int):59:60 -> g
    3:3:void <init>(int):41:41 -> g
    3:3:com.android.tools.r8.graph.FieldAccessFlags fromSharedAccessFlags(int):60 -> g
com.android.tools.r8.graph.FieldAccessInfo -> com.android.tools.r8.graph.m0:
com.android.tools.r8.graph.FieldAccessInfoCollection -> com.android.tools.r8.graph.n0:
com.android.tools.r8.graph.FieldAccessInfoCollectionImpl -> com.android.tools.r8.graph.o0:
    java.util.Map infos -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():13:13 -> <clinit>
    1:4:void <init>():13:16 -> <init>
    1:1:com.android.tools.r8.graph.FieldAccessInfoImpl get(com.android.tools.r8.graph.DexField):20:20 -> a
    1:1:com.android.tools.r8.graph.FieldAccessInfo get(com.android.tools.r8.graph.DexField):13 -> a
    2:3:void extend(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.FieldAccessInfoImpl):24:25 -> a
    4:5:void forEach(java.util.function.Consumer):31:32 -> a
    6:6:boolean lambda$removeIf$0(java.util.function.BiPredicate,java.util.Map$Entry):36:36 -> a
    7:7:void removeIf(java.util.function.BiPredicate):36:36 -> a
    8:9:com.android.tools.r8.graph.FieldAccessInfoCollectionImpl rewrittenWithLens(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.GraphLense):41:42 -> a
    10:11:void lambda$rewrittenWithLens$1(com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.FieldAccessInfoImpl):44:45 -> a
    12:12:void lambda$rewrittenWithLens$1(com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.FieldAccessInfoImpl):44:44 -> a
    13:13:boolean verifyMappingIsOneToOne():52:52 -> a
    1:1:com.android.tools.r8.graph.FieldAccessInfoImpl get(com.android.tools.r8.graph.DexField):20:20 -> b
com.android.tools.r8.graph.FieldAccessInfoImpl -> com.android.tools.r8.graph.p0:
    java.util.Map readsWithContexts -> b
    java.util.Map writesWithContexts -> c
    com.android.tools.r8.graph.FieldAccessInfoImpl MISSING_FIELD_ACCESS_INFO -> d
    com.android.tools.r8.graph.DexField field -> a
    1:3:void <clinit>():20:22 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexField):35:36 -> <init>
    1:4:void forEachIndirectAccess(java.util.function.Consumer):64:67 -> a
    5:5:boolean lambda$forEachIndirectAccess$0(java.util.Set,com.android.tools.r8.graph.DexField):66:66 -> a
    6:6:void forEachAccessInMap(java.util.Map,java.util.function.Predicate,java.util.function.Consumer):76:76 -> a
    7:8:void lambda$forEachAccessInMap$2(java.util.function.Predicate,java.util.function.Consumer,com.android.tools.r8.graph.DexField,java.util.Set):78:79 -> a
    9:14:void forEachIndirectAccessWithContexts(java.util.function.BiConsumer):88:93 -> a
    15:15:void extendAccessesWithContexts(java.util.Map,java.util.function.Predicate,java.util.Map):101:101 -> a
    16:19:void lambda$extendAccessesWithContexts$6(java.util.function.Predicate,java.util.Map,com.android.tools.r8.graph.DexField,java.util.Set):103:106 -> a
    20:20:java.util.Set lambda$extendAccessesWithContexts$5(com.android.tools.r8.graph.DexField):105:105 -> a
    21:24:boolean isWrittenInMethodSatisfying(java.util.function.Predicate):154:157 -> a
    25:27:boolean isWrittenOutside(com.android.tools.r8.graph.DexEncodedMethod):171:173 -> a
    28:33:boolean recordRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):184:189 -> a
    34:34:void clearWrites():206:206 -> a
    35:50:com.android.tools.r8.graph.FieldAccessInfoImpl rewrittenWithLens(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.GraphLense):210:225 -> a
    51:53:void lambda$rewrittenWithLens$10(com.android.tools.r8.graph.FieldAccessInfoImpl,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexField,java.util.Set):215:217 -> a
    54:57:void lambda$rewrittenWithLens$10(com.android.tools.r8.graph.FieldAccessInfoImpl,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexField,java.util.Set):216:219 -> a
    1:1:com.android.tools.r8.graph.DexField getField():46:46 -> b
    2:2:boolean lambda$forEachIndirectAccess$1(java.util.Set,com.android.tools.r8.graph.DexField):68:68 -> b
    3:3:boolean lambda$forEachIndirectAccessWithContexts$3(com.android.tools.r8.graph.DexField):90:90 -> b
    4:10:void forEachReadContext(java.util.function.Consumer):116:122 -> b
    11:16:boolean recordWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):193:198 -> b
    17:19:void lambda$rewrittenWithLens$12(com.android.tools.r8.graph.FieldAccessInfoImpl,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexField,java.util.Set):227:229 -> b
    20:23:void lambda$rewrittenWithLens$12(com.android.tools.r8.graph.FieldAccessInfoImpl,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexField,java.util.Set):228:231 -> b
    1:4:com.android.tools.r8.graph.DexEncodedMethod getUniqueReadContext():51:54 -> c
    5:5:boolean lambda$forEachIndirectAccessWithContexts$4(com.android.tools.r8.graph.DexField):92:92 -> c
    1:1:boolean isRead():132:132 -> d
    2:2:java.util.Set lambda$recordRead$7(com.android.tools.r8.graph.DexField):188:188 -> d
    1:1:boolean isWritten():146:146 -> e
    2:2:java.util.Set lambda$recordWrite$8(com.android.tools.r8.graph.DexField):197:197 -> e
    1:1:java.util.Set lambda$rewrittenWithLens$11(com.android.tools.r8.graph.DexField):229:229 -> f
    1:1:java.util.Set lambda$rewrittenWithLens$9(com.android.tools.r8.graph.DexField):217:217 -> g
com.android.tools.r8.graph.GraphLense -> com.android.tools.r8.graph.q0:
    1:1:void <clinit>():50:50 -> <clinit>
    1:1:void <init>():50:50 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense getIdentityLense():501:501 -> a
    2:6:com.android.tools.r8.com.google.common.collect.ImmutableMap rewriteReferenceKeys(java.util.Map,java.util.function.Function):678:682 -> a
    1:6:boolean assertDefinitionsNotModified(java.lang.Iterable):509:514 -> assertDefinitionsNotModified
    1:11:boolean assertReferencesNotModified(java.lang.Iterable):520:530 -> assertReferencesNotModified
    1:1:boolean isContextFreeForMethod(com.android.tools.r8.graph.DexMethod):497:497 -> isContextFreeForMethod
    1:1:boolean isIdentityLense():505:505 -> isIdentityLense
    1:2:com.android.tools.r8.graph.DexMethod lookupMethod(com.android.tools.r8.graph.DexMethod):444:445 -> lookupMethod
    1:6:java.util.Set lookupMethodInAllContexts(com.android.tools.r8.graph.DexMethod):455:460 -> lookupMethodInAllContexts
    1:7:com.android.tools.r8.graph.DexReference lookupReference(com.android.tools.r8.graph.DexReference):474:480 -> lookupReference
    1:14:com.android.tools.r8.graph.DexEncodedMethod mapDexEncodedMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexDefinitionSupplier):423:436 -> mapDexEncodedMethod
    1:19:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet rewriteMethodsConservatively(java.util.Set):634:652 -> rewriteMethodsConservatively
    1:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet rewriteMethodsWithRenamedSignature(java.util.Set):625:630 -> rewriteMethodsWithRenamedSignature
    1:14:java.util.SortedSet rewriteMutableMethodsConservatively(java.util.Set):656:669 -> rewriteMutableMethodsConservatively
    1:11:java.util.Set rewriteMutableReferencesConservatively(java.util.Set):571:581 -> rewriteMutableReferencesConservatively
    1:3:java.util.Set rewriteMutableTypesConservatively(java.util.Set):617:619 -> rewriteMutableTypesConservatively
    1:14:com.android.tools.r8.com.google.common.collect.ImmutableList rewriteReferencesConservatively(java.util.List):537:550 -> rewriteReferencesConservatively
    15:28:com.android.tools.r8.com.google.common.collect.ImmutableSet rewriteReferencesConservatively(java.util.Set):554:567 -> rewriteReferencesConservatively
    29:42:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap rewriteReferencesConservatively(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap):589:602 -> rewriteReferencesConservatively
    1:5:com.android.tools.r8.com.google.common.collect.ImmutableSet rewriteTypesConservatively(java.util.Set):609:613 -> rewriteTypesConservatively
    1:29:boolean verifyMappingToOriginalProgram(java.lang.Iterable,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexItemFactory):699:727 -> verifyMappingToOriginalProgram
    30:50:boolean verifyIsBridgeMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexApplication,java.util.Set,com.android.tools.r8.graph.DexItemFactory):746:766 -> verifyMappingToOriginalProgram
    30:50:boolean verifyMappingToOriginalProgram(java.lang.Iterable,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexItemFactory):728 -> verifyMappingToOriginalProgram
    51:55:boolean verifyMappingToOriginalProgram(java.lang.Iterable,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexItemFactory):727:731 -> verifyMappingToOriginalProgram
com.android.tools.r8.graph.GraphLense$1 -> com.android.tools.r8.graph.q0$a:
com.android.tools.r8.graph.GraphLense$Builder -> com.android.tools.r8.graph.q0$b:
    java.util.Map typeMap -> a
    java.util.Map methodMap -> b
    java.util.Map fieldMap -> c
    com.android.tools.r8.com.google.common.collect.BiMap originalFieldSignatures -> d
    com.android.tools.r8.com.google.common.collect.BiMap originalMethodSignatures -> e
    1:8:void <init>():342:349 -> <init>
    1:1:void map(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):362:362 -> a
    2:2:void map(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):369:369 -> a
    3:6:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.GraphLense):393:396 -> a
    1:1:void map(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):362:362 -> b
    1:1:void move(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):376 -> b
    2:2:void move(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):377:377 -> b
com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult -> com.android.tools.r8.graph.q0$c:
    com.android.tools.r8.ir.code.Invoke$Type type -> b
    com.android.tools.r8.graph.DexMethod method -> a
    1:3:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):62:64 -> <init>
    1:1:com.android.tools.r8.graph.DexMethod getMethod():68:68 -> a
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():72:72 -> b
com.android.tools.r8.graph.GraphLense$IdentityGraphLense -> com.android.tools.r8.graph.q0$d:
    com.android.tools.r8.graph.GraphLense$IdentityGraphLense INSTANCE -> a
    1:1:void <clinit>():774:774 -> <clinit>
    1:1:void <init>():776:776 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense$IdentityGraphLense getInstance():779:779 -> b
    1:1:com.android.tools.r8.graph.GraphLense$IdentityGraphLense access$100():772 -> b
    1:1:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):814:814 -> lookupMethod
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):819:819 -> lookupPrototypeChanges
com.android.tools.r8.graph.GraphLense$NestedGraphLense -> com.android.tools.r8.graph.q0$e:
    1:1:void <clinit>():843:843 -> <clinit>
    1:1:void <init>(java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory):871:871 -> <init>
    2:26:void <init>(java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory):849:873 -> <init>
    27:35:void <init>(java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory):872:880 -> <init>
    1:4:com.android.tools.r8.graph.DexField getOriginalFieldSignature(com.android.tools.r8.graph.DexField):891:894 -> getOriginalFieldSignature
    1:4:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):900:903 -> getOriginalMethodSignature
    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):885:885 -> getOriginalType
    1:3:com.android.tools.r8.graph.DexField getRenamedFieldSignature(com.android.tools.r8.graph.DexField):908:910 -> getRenamedFieldSignature
    1:3:com.android.tools.r8.graph.DexMethod getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):916:918 -> getRenamedMethodSignature
    1:1:boolean isContextFreeForMethod(com.android.tools.r8.graph.DexMethod):1037:1037 -> isContextFreeForMethod
    1:1:boolean isContextFreeForMethods():1032:1032 -> isContextFreeForMethods
    1:2:com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField):1026:1027 -> lookupField
    1:1:com.android.tools.r8.graph.DexMethod lookupGetFieldForMethod(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod):969:969 -> lookupGetFieldForMethod
    1:12:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):948:959 -> lookupMethod
    1:3:java.util.Set lookupMethodInAllContexts(com.android.tools.r8.graph.DexMethod):1017:1019 -> lookupMethodInAllContexts
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):964:964 -> lookupPrototypeChanges
    1:1:com.android.tools.r8.graph.DexMethod lookupPutFieldForMethod(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod):974:974 -> lookupPutFieldForMethod
    1:19:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType):924:942 -> lookupType
    1:12:com.android.tools.r8.ir.code.Invoke$Type mapVirtualInterfaceInvocationTypes(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):997:1008 -> mapVirtualInterfaceInvocationTypes
    13:13:boolean com.android.tools.r8.graph.ClassAccessFlags.isInterface():155:155 -> mapVirtualInterfaceInvocationTypes
    13:13:com.android.tools.r8.ir.code.Invoke$Type mapVirtualInterfaceInvocationTypes(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):1008 -> mapVirtualInterfaceInvocationTypes
    14:16:com.android.tools.r8.ir.code.Invoke$Type mapVirtualInterfaceInvocationTypes(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):1008:1010 -> mapVirtualInterfaceInvocationTypes
    17:17:boolean com.android.tools.r8.graph.ClassAccessFlags.isInterface():155:155 -> mapVirtualInterfaceInvocationTypes
    17:17:com.android.tools.r8.ir.code.Invoke$Type mapVirtualInterfaceInvocationTypes(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):1010 -> mapVirtualInterfaceInvocationTypes
    18:18:com.android.tools.r8.ir.code.Invoke$Type mapVirtualInterfaceInvocationTypes(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):1010:1010 -> mapVirtualInterfaceInvocationTypes
    1:17:java.lang.String toString():1042:1058 -> toString
com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription -> com.android.tools.r8.graph.q0$f:
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription none -> d
    boolean hasBeenChangedToReturnVoid -> a
    boolean extraNullParameter -> b
    com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo removedArgumentsInfo -> c
    1:161:void <clinit>():76:236 -> <clinit>
    162:162:void <init>():243:243 -> <clinit>
    162:162:void <clinit>():236 -> <clinit>
    163:163:void <clinit>():236:236 -> <clinit>
    1:5:void <init>(boolean,boolean,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):249:253 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo():275:275 -> a
    2:4:com.android.tools.r8.ir.code.ConstInstruction getConstantReturn(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position):288:290 -> a
    5:6:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription withRemovedArguments(com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):328:329 -> a
    1:1:boolean hasBeenChangedToReturnVoid():271:271 -> b
    1:1:boolean hasExtraNullParameter():267:267 -> c
    1:1:boolean isEmpty():261:261 -> d
    2:2:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo():275:275 -> d
    2:2:boolean isEmpty():263 -> d
    3:3:boolean isEmpty():263:263 -> d
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription none():257:257 -> e
    1:2:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription withConstantReturn():322:323 -> f
    1:2:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription withExtraNullParameter():333:334 -> g
com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo -> com.android.tools.r8.graph.q0$f$a:
    com.android.tools.r8.graph.DexType type -> c
    boolean isAlwaysNull -> b
    int argumentIndex -> a
    1:1:void <init>(int,boolean,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.GraphLense$1):78:78 -> <init>
    2:5:void <init>(int,boolean,com.android.tools.r8.graph.DexType):112:115 -> <init>
    1:1:int getArgumentIndex():123:123 -> a
    2:3:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo withArgumentIndex(int):139:140 -> a
    1:1:com.android.tools.r8.graph.DexType getType():127:127 -> b
    1:1:boolean isAlwaysNull():131:131 -> c
    1:1:boolean isNeverUsed():135:135 -> d
com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder -> com.android.tools.r8.graph.r0:
    com.android.tools.r8.graph.DexType type -> c
    boolean isAlwaysNull -> b
    boolean $assertionsDisabled -> d
    int argumentIndex -> a
    1:1:void <clinit>():80:80 -> <clinit>
    1:5:void <init>():80:84 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder setArgumentIndex(int):87:87 -> a
    2:2:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder setType(com.android.tools.r8.graph.DexType):97:97 -> a
    3:5:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo build():102:104 -> a
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder setIsAlwaysNull():92:92 -> b
com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo -> com.android.tools.r8.graph.q0$f$b:
    java.util.List removedArguments -> a
    com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo empty -> b
    boolean $assertionsDisabled -> c
    1:3:void <clinit>():145:147 -> <clinit>
    1:3:void <init>(java.util.List):151:153 -> <init>
    1:6:boolean verifyRemovedArguments(java.util.List):157:162 -> a
    7:7:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo empty():170:170 -> a
    8:10:boolean isArgumentRemoved(int):184:186 -> a
    11:32:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo combine(com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):199:220 -> a
    33:34:java.util.function.Consumer createParameterAnnotationsRemover(com.android.tools.r8.graph.DexEncodedMethod):225:226 -> a
    35:36:void lambda$createParameterAnnotationsRemover$1(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$Builder):227:228 -> a
    37:37:boolean lambda$createParameterAnnotationsRemover$0(int,int):229:229 -> a
    1:1:boolean hasRemovedArguments():180:180 -> b
    1:3:java.util.ListIterator iterator():174:176 -> c
    1:1:int numberOfRemovedArguments():195:195 -> d
com.android.tools.r8.graph.IndexedDexItem -> com.android.tools.r8.graph.s0:
    boolean $assertionsDisabled -> b
    int sortedIndex -> a
    1:1:void <clinit>():12:12 -> <clinit>
    1:4:void <init>():12:15 -> <init>
    int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping) -> a
    1:1:int getSortedIndex():40:40 -> a
    1:3:void setSortedIndex(int):33:35 -> b
    4:4:void resetSortedIndex():58:58 -> b
    1:4:int sortedCompareTo(int):45:48 -> c
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):24:24 -> collectMixedSectionItems
    1:1:void flushCachedValues():53:53 -> flushCachedValues
    2:2:void resetSortedIndex():58:58 -> flushCachedValues
    2:2:void flushCachedValues():54 -> flushCachedValues
com.android.tools.r8.graph.InnerClassAttribute -> com.android.tools.r8.graph.t0:
    com.android.tools.r8.graph.DexString innerName -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.DexType outer -> c
    com.android.tools.r8.graph.DexType inner -> b
    int access -> a
    1:1:void <clinit>():13:13 -> <clinit>
    1:6:void <init>(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):33:38 -> <init>
    1:1:com.android.tools.r8.graph.InnerClassAttribute createUnknownNamedInnerClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):30:30 -> a
    2:2:int getAccess():50:50 -> a
    3:3:com.android.tools.r8.graph.DexType getOuter():58:58 -> a
    3:3:com.android.tools.r8.graph.DexType getLiveContext(com.android.tools.r8.shaking.AppInfoWithLiveness):85 -> a
    4:4:com.android.tools.r8.graph.DexType getInner():54:54 -> a
    4:4:com.android.tools.r8.graph.DexType getLiveContext(com.android.tools.r8.shaking.AppInfoWithLiveness):87 -> a
    5:17:com.android.tools.r8.graph.DexType getLiveContext(com.android.tools.r8.shaking.AppInfoWithLiveness):87:99 -> a
    18:22:void write(com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):66:70 -> a
    23:23:void write(com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):67:67 -> a
    24:29:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection):75:80 -> a
    1:1:com.android.tools.r8.graph.DexType getInner():54:54 -> b
    1:1:com.android.tools.r8.graph.DexString getInnerName():62:62 -> c
    1:1:com.android.tools.r8.graph.DexType getOuter():58:58 -> d
    1:1:boolean isAnonymous():46:46 -> e
    1:1:boolean isNamed():42:42 -> f
    1:4:java.lang.String toString():108:111 -> toString
com.android.tools.r8.graph.JarApplicationReader -> com.android.tools.r8.graph.u0:
    java.util.concurrent.ConcurrentHashMap stringCache -> d
    com.android.tools.r8.utils.InternalOptions options -> a
    java.util.concurrent.ConcurrentHashMap asmTypeCache -> c
    java.util.concurrent.ConcurrentHashMap asmObjectTypeCache -> b
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():20:20 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions):27:27 -> <init>
    2:7:void <init>(com.android.tools.r8.utils.InternalOptions):23:28 -> <init>
    1:1:com.android.tools.r8.org.objectweb.asm.Type getAsmObjectType(java.lang.String):32:32 -> a
    2:2:com.android.tools.r8.graph.DexItemFactory getFactory():40:40 -> a
    3:3:com.android.tools.r8.graph.DexField getField(com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String):88:88 -> a
    1:1:com.android.tools.r8.org.objectweb.asm.Type getAsmType(java.lang.String):36:36 -> b
    2:2:com.android.tools.r8.graph.DexMethod getMethod(com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String):96:96 -> b
    1:1:com.android.tools.r8.graph.DexProto getProto(java.lang.String):113:113 -> c
    2:2:boolean isValidDescriptor(java.lang.String):138:138 -> c
    2:2:com.android.tools.r8.graph.DexProto getProto(java.lang.String):113 -> c
    3:13:com.android.tools.r8.graph.DexProto getProto(java.lang.String):113:123 -> c
    14:21:com.android.tools.r8.graph.DexTypeList getTypeListFromDescriptors(java.lang.String[]):73:80 -> c
    14:21:com.android.tools.r8.graph.DexProto getProto(java.lang.String):124 -> c
    22:22:com.android.tools.r8.graph.DexProto getProto(java.lang.String):125:125 -> c
    23:23:com.android.tools.r8.graph.DexProto getProto(java.lang.String):122:122 -> c
    1:4:java.lang.String getShortyDescriptor(java.lang.String):130:133 -> d
    1:1:com.android.tools.r8.graph.DexString getString(java.lang.String):44:44 -> e
    1:1:com.android.tools.r8.graph.DexType getTypeFromDescriptor(java.lang.String):57:57 -> f
    2:2:boolean isValidDescriptor(java.lang.String):138:138 -> f
    2:2:com.android.tools.r8.graph.DexType getTypeFromDescriptor(java.lang.String):57 -> f
    3:4:com.android.tools.r8.graph.DexType getTypeFromDescriptor(java.lang.String):57:58 -> f
    1:1:com.android.tools.r8.graph.DexType getTypeFromName(java.lang.String):52:52 -> g
    2:2:boolean isValidInternalName(java.lang.String):142:142 -> g
    2:2:com.android.tools.r8.graph.DexType getTypeFromName(java.lang.String):52 -> g
    3:4:com.android.tools.r8.graph.DexType getTypeFromName(java.lang.String):52:53 -> g
    5:5:com.android.tools.r8.graph.DexType getType(com.android.tools.r8.org.objectweb.asm.Type):48:48 -> g
    5:5:com.android.tools.r8.graph.DexType getTypeFromName(java.lang.String):53 -> g
com.android.tools.r8.graph.JarClassFileReader -> com.android.tools.r8.graph.v0:
    java.util.function.Consumer classConsumer -> b
    com.android.tools.r8.graph.JarApplicationReader application -> a
    byte[] CLASSFILE_HEADER -> c
    boolean $assertionsDisabled -> d
    1:3:void <clinit>():69:71 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.JarApplicationReader,java.util.function.Consumer):80:82 -> <init>
    1:1:int access$000(int):69:69 -> a
    2:2:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor access$100(java.lang.String,boolean,java.util.List,com.android.tools.r8.graph.JarApplicationReader):69:69 -> a
    3:3:com.android.tools.r8.graph.DexEncodedAnnotation access$1700(java.lang.String,java.util.List,java.util.List,com.android.tools.r8.graph.JarApplicationReader):69:69 -> a
    4:13:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):86:95 -> a
    14:14:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    14:14:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):95 -> a
    15:37:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):95:117 -> a
    38:38:void com.android.tools.r8.org.objectweb.asm.ClassReader.accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,int):400:400 -> a
    38:38:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):117 -> a
    39:45:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):122:128 -> a
    46:50:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):126:130 -> a
    51:51:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
    51:51:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):130 -> a
    52:52:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):130:130 -> a
    53:53:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):100:100 -> a
    54:54:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    54:54:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):100 -> a
    55:55:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):100:100 -> a
    56:58:com.android.tools.r8.graph.MethodAccessFlags createMethodAccessFlags(java.lang.String,int):149:151 -> a
    59:61:void lambda$createAnnotationVisitor$0(java.util.List,int,java.lang.String,com.android.tools.r8.graph.JarApplicationReader,java.util.List,java.util.List):163:165 -> a
    62:62:void lambda$createAnnotationVisitor$0(java.util.List,int,java.lang.String,com.android.tools.r8.graph.JarApplicationReader,java.util.List,java.util.List):163:163 -> a
    63:70:com.android.tools.r8.graph.DexAnnotationSet createAnnotationSet(java.util.List,com.android.tools.r8.utils.InternalOptions):545:552 -> a
    63:70:com.android.tools.r8.graph.DexAnnotationSet access$200(java.util.List,com.android.tools.r8.utils.InternalOptions):69 -> a
    71:71:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    71:71:com.android.tools.r8.graph.DexAnnotationSet createAnnotationSet(java.util.List,com.android.tools.r8.utils.InternalOptions):552 -> a
    71:71:com.android.tools.r8.graph.DexAnnotationSet access$200(java.util.List,com.android.tools.r8.utils.InternalOptions):69 -> a
    72:75:com.android.tools.r8.graph.DexAnnotationSet createAnnotationSet(java.util.List,com.android.tools.r8.utils.InternalOptions):552:555 -> a
    72:75:com.android.tools.r8.graph.DexAnnotationSet access$200(java.util.List,com.android.tools.r8.utils.InternalOptions):69 -> a
    76:76:com.android.tools.r8.graph.DexAnnotationSet createAnnotationSet(java.util.List,com.android.tools.r8.utils.InternalOptions):546:546 -> a
    76:76:com.android.tools.r8.graph.DexAnnotationSet access$200(java.util.List,com.android.tools.r8.utils.InternalOptions):69 -> a
    int cleanAccessFlags(int) -> b
    1:1:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor createAnnotationVisitor(java.lang.String,boolean,java.util.List,com.android.tools.r8.graph.JarApplicationReader):157:157 -> b
    2:4:boolean retainCompileTimeAnnotation(java.lang.String,com.android.tools.r8.graph.JarApplicationReader):172:174 -> b
    2:4:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor createAnnotationVisitor(java.lang.String,boolean,java.util.List,com.android.tools.r8.graph.JarApplicationReader):158 -> b
    5:5:boolean retainCompileTimeAnnotation(java.lang.String,com.android.tools.r8.graph.JarApplicationReader):173:173 -> b
    5:5:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor createAnnotationVisitor(java.lang.String,boolean,java.util.List,com.android.tools.r8.graph.JarApplicationReader):158 -> b
    6:6:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor createAnnotationVisitor(java.lang.String,boolean,java.util.List,com.android.tools.r8.graph.JarApplicationReader):160:160 -> b
    7:8:com.android.tools.r8.graph.DexEncodedAnnotation createEncodedAnnotation(java.lang.String,java.util.List,java.util.List,com.android.tools.r8.graph.JarApplicationReader):179:180 -> b
    9:15:com.android.tools.r8.graph.DexEncodedAnnotation createEncodedAnnotation(java.lang.String,java.util.List,java.util.List,com.android.tools.r8.graph.JarApplicationReader):179:185 -> b
    1:1:com.android.tools.r8.graph.FieldAccessFlags createFieldAccessFlags(int):144:144 -> c
com.android.tools.r8.graph.JarClassFileReader$CreateAnnotationVisitor -> com.android.tools.r8.graph.v0$a:
    java.util.List values -> d
    java.util.List names -> c
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.JarApplicationReader application -> a
    java.util.function.BiConsumer onVisitEnd -> b
    1:1:void <clinit>():873:873 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.JarApplicationReader,java.util.function.BiConsumer):882:882 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.JarApplicationReader,java.util.function.BiConsumer):877:884 -> <init>
    1:2:void visitEnum(java.lang.String,java.lang.String,java.lang.String):894:895 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,java.lang.String):900:900 -> a
    4:5:void lambda$visitAnnotation$0(java.lang.String,java.lang.String,java.util.List,java.util.List):901:902 -> a
    6:6:void lambda$visitAnnotation$0(java.lang.String,java.lang.String,java.util.List,java.util.List):901:901 -> a
    7:7:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitArray(java.lang.String):907:907 -> a
    8:9:void lambda$visitArray$1(java.lang.String,java.util.List,java.util.List):908:909 -> a
    10:10:void visitEnd():915:915 -> a
    11:16:void addElement(java.lang.String,com.android.tools.r8.graph.DexValue):920:925 -> a
    17:38:com.android.tools.r8.graph.DexValue getDexValue(java.lang.Object):991:1012 -> a
    17:38:void visit(java.lang.String,java.lang.Object):889 -> a
    39:94:com.android.tools.r8.graph.DexValue$DexValueArray getDexValueArray(java.lang.Object):929:984 -> a
    39:94:com.android.tools.r8.graph.DexValue getDexValue(java.lang.Object):1014 -> a
    39:94:void visit(java.lang.String,java.lang.Object):889 -> a
    95:95:void visit(java.lang.String,java.lang.Object):889:889 -> a
    96:96:com.android.tools.r8.graph.DexValue$DexValueArray getDexValueArray(java.lang.Object):986:986 -> a
    96:96:com.android.tools.r8.graph.DexValue getDexValue(java.lang.Object):1014 -> a
    96:96:void visit(java.lang.String,java.lang.Object):889 -> a
com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor -> com.android.tools.r8.graph.v0$b:
    com.android.tools.r8.graph.ClassKind classKind -> d
    java.util.List annotations -> r
    java.util.Set methodSignatures -> y
    com.android.tools.r8.graph.ClassAccessFlags accessFlags -> j
    int version -> h
    java.util.List staticFields -> t
    com.android.tools.r8.graph.EnclosingMethodAttribute enclosingMember -> p
    java.util.List virtualMethods -> x
    com.android.tools.r8.origin.Origin origin -> c
    java.util.function.Consumer classConsumer -> f
    boolean $assertionsDisabled -> A
    com.android.tools.r8.graph.JarClassFileReader$ReparseContext context -> g
    com.android.tools.r8.graph.DexType superType -> k
    java.util.List innerClasses -> q
    com.android.tools.r8.graph.DexType type -> i
    java.util.List nestMembers -> o
    java.util.List instanceFields -> u
    java.util.List defaultAnnotations -> s
    java.util.Set fieldSignatures -> v
    java.util.List directMethods -> w
    com.android.tools.r8.graph.JarApplicationReader application -> e
    boolean hasReachabilitySensitiveMethod -> z
    com.android.tools.r8.graph.NestHostClassAttribute nestHost -> n
    com.android.tools.r8.graph.DexTypeList interfaces -> l
    com.android.tools.r8.graph.DexString sourceFile -> m
    1:1:void <clinit>():188:188 -> <clinit>
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,byte[],com.android.tools.r8.graph.JarApplicationReader,java.util.function.Consumer):223:223 -> <init>
    2:36:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,byte[],com.android.tools.r8.graph.JarApplicationReader,java.util.function.Consumer):194:228 -> <init>
    long lambda$getChecksumSupplier$0(long,com.android.tools.r8.graph.DexProgramClass) -> a
    void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute) -> a
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> a
    1:1:com.android.tools.r8.graph.JarClassFileReader$ReparseContext access$1000(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):188:188 -> a
    2:2:boolean access$1376(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,int):188:188 -> a
    3:7:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):234:238 -> a
    8:22:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):236:250 -> a
    23:23:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):245:245 -> a
    24:29:void visitOuterClass(java.lang.String,java.lang.String,java.lang.String):256:261 -> a
    30:32:void visitNestHost(java.lang.String):266:268 -> a
    33:33:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):291:291 -> a
    34:34:java.lang.String illegalClassFilePrefix(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String):279:279 -> a
    34:34:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):291 -> a
    35:35:boolean com.android.tools.r8.graph.ClassAccessFlags.isInterface():155:155 -> a
    35:35:java.lang.String illegalClassFilePrefix(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String):280 -> a
    35:35:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):291 -> a
    36:36:java.lang.String illegalClassFilePrefix(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String):280:280 -> a
    36:36:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):291 -> a
    37:37:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):291:291 -> a
    38:38:java.lang.String illegalClassFilePostfix(int):286:286 -> a
    38:38:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):293 -> a
    39:39:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):293:293 -> a
    40:55:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):299:314 -> a
    56:56:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    56:56:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    56:56:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):314 -> a
    57:60:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):314:317 -> a
    61:61:boolean com.android.tools.r8.graph.ClassAccessFlags.isInterface():155:155 -> a
    61:61:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):317 -> a
    62:65:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):318:321 -> a
    66:66:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):320:320 -> a
    67:67:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    67:67:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    67:67:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):320 -> a
    68:75:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):320:327 -> a
    76:83:com.android.tools.r8.graph.DexTypeList com.android.tools.r8.graph.JarApplicationReader.getTypeListFromNames(java.lang.String[]):62:69 -> a
    76:83:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):327 -> a
    84:86:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):327:329 -> a
    87:87:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
    87:87:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):329 -> a
    88:88:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):329:329 -> a
    89:89:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):520:520 -> a
    89:89:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):329 -> a
    90:90:com.android.tools.r8.graph.DexTypeList com.android.tools.r8.graph.JarApplicationReader.getTypeListFromNames(java.lang.String[]):62:62 -> a
    90:90:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):327 -> a
    91:93:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):308:310 -> a
    94:94:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):309:309 -> a
    95:95:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    95:95:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    95:95:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):309 -> a
    96:96:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):309:309 -> a
    97:97:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):301:301 -> a
    98:98:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    98:98:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    98:98:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):301 -> a
    99:99:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):301:301 -> a
    100:105:void visitSource(java.lang.String,java.lang.String):336:341 -> a
    106:106:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
    106:106:void visitSource(java.lang.String,java.lang.String):341 -> a
    107:110:com.android.tools.r8.graph.DexAnnotation com.android.tools.r8.graph.DexAnnotation.createSourceDebugExtensionAnnotation(com.android.tools.r8.graph.DexValue,com.android.tools.r8.graph.DexItemFactory):199:202 -> a
    107:110:void visitSource(java.lang.String,java.lang.String):340 -> a
    111:111:void visitSource(java.lang.String,java.lang.String):339:339 -> a
    112:120:com.android.tools.r8.org.objectweb.asm.FieldVisitor visitField(int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):348:356 -> a
    121:123:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):362:364 -> a
    124:124:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> a
    124:124:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):364 -> a
    125:130:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):364:369 -> a
    131:131:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):374:374 -> a
    132:133:void visitEnd():391:392 -> a
    134:134:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
    134:134:void visitEnd():393 -> a
    135:135:void visitEnd():392:392 -> a
    136:136:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):520:520 -> a
    136:136:void visitEnd():392 -> a
    137:137:void checkReachabilitySensitivity():477:477 -> a
    137:137:void visitEnd():395 -> a
    138:138:boolean hasReachabilitySensitiveField():494:494 -> a
    138:138:void checkReachabilitySensitivity():477 -> a
    138:138:void visitEnd():395 -> a
    139:139:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
    139:139:boolean hasReachabilitySensitiveField():494 -> a
    139:139:void checkReachabilitySensitivity():477 -> a
    139:139:void visitEnd():395 -> a
    140:150:boolean hasReachabilitySensitiveField():494:504 -> a
    140:150:void checkReachabilitySensitivity():477 -> a
    140:150:void visitEnd():395 -> a
    151:160:void checkReachabilitySensitivity():478:487 -> a
    151:160:void visitEnd():395 -> a
    161:178:void visitEnd():396:413 -> a
    179:179:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
    179:179:void visitEnd():414 -> a
    180:181:void visitEnd():414:415 -> a
    182:221:void visitEnd():397:436 -> a
    222:222:void visitEnd():432:432 -> a
    223:223:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    223:223:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    223:223:void visitEnd():432 -> a
    224:244:void visitEnd():432:452 -> a
    245:251:com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier getChecksumSupplier(com.android.tools.r8.graph.ClassKind):456:462 -> a
    252:255:void addDefaultAnnotation(java.lang.String,com.android.tools.r8.graph.DexValue):513:516 -> a
    252:255:void access$1600(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):188 -> a
    1:1:int access$1100(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):188:188 -> b
    2:4:void visitNestMember(java.lang.String):273:275 -> b
    5:8:java.util.List getAnnotations():524:527 -> b
    1:1:java.util.Set access$1200(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):188:188 -> c
    2:2:void checkName(java.lang.String):466:466 -> c
    3:3:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> c
    3:3:void checkName(java.lang.String):466 -> c
    4:6:void checkName(java.lang.String):466:468 -> c
    7:7:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> c
    7:7:void checkName(java.lang.String):468 -> c
    8:8:void checkName(java.lang.String):468:468 -> c
    9:9:int getMajorVersion():531:531 -> c
    1:1:java.util.List access$1400(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):188:188 -> d
    2:2:boolean isInANest():539:539 -> d
    1:1:java.util.List access$1500(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):188:188 -> e
    1:1:com.android.tools.r8.graph.JarApplicationReader access$300(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):188:188 -> f
    1:1:com.android.tools.r8.graph.DexType access$400(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):188:188 -> g
    1:1:java.util.Set access$500(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):188:188 -> h
    1:1:java.util.List access$600(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):188:188 -> i
    1:1:java.util.List access$700(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):188:188 -> j
    1:1:com.android.tools.r8.graph.ClassKind access$800(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):188:188 -> k
    1:1:com.android.tools.r8.origin.Origin access$900(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):188:188 -> l
com.android.tools.r8.graph.JarClassFileReader$CreateFieldVisitor -> com.android.tools.r8.graph.v0$c:
    com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor parent -> b
    java.lang.Object value -> f
    boolean $assertionsDisabled -> h
    java.util.List annotations -> g
    int access -> c
    java.lang.String desc -> e
    java.lang.String name -> d
    1:1:void <clinit>():558:558 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):569:569 -> <init>
    2:14:void <init>(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):565:577 -> <init>
    15:15:void <init>(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):576:576 -> <init>
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> a
    1:7:void visitEnd():595:601 -> a
    8:8:com.android.tools.r8.graph.DexValue getStaticValue(java.lang.Object,com.android.tools.r8.graph.DexType):619:619 -> a
    8:8:void visitEnd():601 -> a
    9:9:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> a
    9:9:com.android.tools.r8.graph.DexValue getStaticValue(java.lang.Object,com.android.tools.r8.graph.DexType):619 -> a
    9:9:void visitEnd():601 -> a
    10:39:com.android.tools.r8.graph.DexValue getStaticValue(java.lang.Object,com.android.tools.r8.graph.DexType):620:649 -> a
    10:39:void visitEnd():601 -> a
    40:49:void visitEnd():602:611 -> a
    50:50:void visitEnd():609:609 -> a
    51:54:java.util.List getAnnotations():657:660 -> a
    51:54:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):653 -> a
    55:55:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):653:653 -> a
    56:59:java.util.List getAnnotations():657:660 -> a
    56:59:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):583 -> a
    60:60:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):583:583 -> a
com.android.tools.r8.graph.JarClassFileReader$CreateMethodVisitor -> com.android.tools.r8.graph.v0$d:
    java.util.List parameterFlags -> r
    int annotableParameterCount -> o
    java.util.List parameterNames -> q
    com.android.tools.r8.graph.Code code -> u
    int parameterCount -> l
    java.util.List parameterAnnotationsLists -> p
    com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor parent -> k
    java.lang.String name -> j
    com.android.tools.r8.graph.DexValue defaultAnnotation -> n
    boolean $assertionsDisabled -> v
    com.android.tools.r8.graph.MethodAccessFlags flags -> t
    com.android.tools.r8.graph.DexMethod method -> s
    java.util.List annotations -> m
    1:1:void <clinit>():664:664 -> <clinit>
    1:1:void <init>(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):681:681 -> <init>
    2:26:void <init>(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):669:693 -> <init>
    27:32:void <init>(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):692:697 -> <init>
    33:33:void <init>(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):696:696 -> <init>
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> a
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean) -> a
    1:1:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):703:703 -> a
    2:2:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotationDefault():708:708 -> a
    3:4:void lambda$visitAnnotationDefault$0(java.util.List,java.util.List):709:710 -> a
    5:11:void visitAnnotableParameterCount(int,boolean):723:729 -> a
    12:23:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):734:745 -> a
    24:24:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):744:744 -> a
    25:25:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):869:869 -> a
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> b
    1:6:void visitParameter(java.lang.String,int):771:776 -> b
    7:7:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> b
    7:7:void visitParameter(java.lang.String,int):776 -> b
    8:10:void visitParameter(java.lang.String,int):776:778 -> b
    11:11:void visitCode():783:783 -> b
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> c
    1:2:void visitEnd():796:797 -> c
    3:5:boolean classRequiresCode():787:789 -> c
    3:5:void visitEnd():797 -> c
    6:6:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> c
    6:6:boolean com.android.tools.r8.utils.InternalOptions.canUseNestBasedAccess():1116 -> c
    6:6:boolean classRequiresCode():789 -> c
    6:6:void visitEnd():797 -> c
    7:9:boolean classRequiresCode():789:791 -> c
    7:9:void visitEnd():797 -> c
    10:20:void visitEnd():798:808 -> c
    21:21:void com.android.tools.r8.graph.ParameterAnnotationsList.<init>(com.android.tools.r8.graph.DexAnnotationSet[]):56:56 -> c
    21:21:void visitEnd():808 -> c
    22:26:void visitEnd():810:814 -> c
    27:33:void visitEnd():813:819 -> c
    34:34:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> c
    34:34:void visitEnd():819 -> c
    35:43:com.android.tools.r8.graph.DexAnnotation com.android.tools.r8.graph.DexAnnotation.createMethodParametersAnnotation(com.android.tools.r8.graph.DexValue[],com.android.tools.r8.graph.DexValue[],com.android.tools.r8.graph.DexItemFactory):208:216 -> c
    35:43:void visitEnd():816 -> c
    44:56:void visitEnd():816:828 -> c
    57:57:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,int):223:223 -> c
    57:57:void visitEnd():828 -> c
    58:60:void visitEnd():829:831 -> c
    61:61:boolean isReachabilitySensitive():852:852 -> c
    61:61:void visitEnd():831 -> c
    62:62:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.graph.JarApplicationReader.getFactory():40:40 -> c
    62:62:boolean isReachabilitySensitive():852 -> c
    62:62:void visitEnd():831 -> c
    63:65:boolean isReachabilitySensitive():852:854 -> c
    63:65:void visitEnd():831 -> c
    66:67:void visitEnd():831:832 -> c
    68:68:boolean com.android.tools.r8.graph.MethodAccessFlags.isConstructor():184:184 -> c
    68:68:void visitEnd():832 -> c
    69:72:void visitEnd():832:835 -> c
    73:83:void visitEnd():833:843 -> c
    84:84:void visitEnd():840:840 -> c
    85:93:void visitEnd():838:846 -> c
    1:4:java.util.List getAnnotations():862:865 -> d
com.android.tools.r8.graph.JarClassFileReader$ReparseContext -> com.android.tools.r8.graph.v0$e:
    com.android.tools.r8.graph.DexClass owner -> b
    byte[] classCache -> a
    java.util.List codeList -> c
    1:8:void <init>():1018:1025 -> <init>
com.android.tools.r8.graph.KeyedDexItem -> com.android.tools.r8.graph.w0:
    1:1:void <init>():6:6 -> <init>
    1:1:boolean equals(java.lang.Object):15:15 -> equals
    1:1:int hashCode():20:20 -> hashCode
    com.android.tools.r8.graph.PresortedComparable getKey() -> i
com.android.tools.r8.graph.LazyCfCode -> com.android.tools.r8.graph.C0:
    com.android.tools.r8.graph.JarClassFileReader$ReparseContext context -> c
    com.android.tools.r8.graph.CfCode code -> b
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.JarApplicationReader application -> a
    boolean reachabilitySensitive -> d
    1:1:void <clinit>():84:84 -> <clinit>
    1:12:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader):93:104 -> <init>
    13:15:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader):95:97 -> <init>
    1:2:void markReachabilitySensitive():107:108 -> a
    3:3:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):150:150 -> a
    4:12:int getParsingOptions(com.android.tools.r8.graph.JarApplicationReader,boolean):925:933 -> a
    4:12:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):150 -> a
    13:13:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):151:151 -> a
    14:14:java.util.function.BiFunction createCodeLocator(com.android.tools.r8.graph.JarClassFileReader$ReparseContext):228:228 -> a
    14:14:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):152 -> a
    15:16:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):152:153 -> a
    17:17:void com.android.tools.r8.org.objectweb.asm.ClassReader.accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,int):400:400 -> a
    17:17:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):153 -> a
    18:22:void setCode(com.android.tools.r8.graph.CfCode):157:161 -> a
    18:22:void access$100(com.android.tools.r8.graph.LazyCfCode,com.android.tools.r8.graph.CfCode):84 -> a
    1:21:com.android.tools.r8.graph.CfCode asCfCode():123:143 -> asCfCode
    22:28:boolean verifyNoReparseContext(com.android.tools.r8.graph.DexClass):951:957 -> asCfCode
    22:28:com.android.tools.r8.graph.CfCode asCfCode():143 -> asCfCode
    29:35:com.android.tools.r8.graph.CfCode asCfCode():140:146 -> asCfCode
    1:1:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):191:191 -> buildIR
    1:2:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):202:203 -> buildInliningIR
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap collectParameterInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):965:965 -> collectParameterInfo
    1:1:boolean computeEquals(java.lang.Object):171:171 -> computeEquals
    1:1:int computeHashCode():166:166 -> computeHashCode
    1:1:int estimatedSizeForInlining():181:181 -> estimatedSizeForInlining
    1:1:boolean estimatedSizeForInliningAtMost(int):186:186 -> estimatedSizeForInliningAtMost
    1:1:boolean isEmptyVoidMethod():176:176 -> isEmptyVoidMethod
    1:1:void registerArgumentReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.ArgumentUse):214:214 -> registerArgumentReferences
    1:1:void registerCodeReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry):209:209 -> registerCodeReferences
    1:1:java.lang.String toString():219:219 -> toString
    2:2:java.lang.String toString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):224:224 -> toString
    1:1:boolean verifyNoInputReaders():946:946 -> verifyNoInputReaders
com.android.tools.r8.graph.LazyCfCode$1 -> com.android.tools.r8.graph.x0:
com.android.tools.r8.graph.LazyCfCode$ClassCodeVisitor -> com.android.tools.r8.graph.y0:
    java.util.function.BiFunction codeLocator -> d
    com.android.tools.r8.graph.JarApplicationReader application -> e
    boolean usrJsrInliner -> f
    com.android.tools.r8.graph.DexClass clazz -> c
    1:5:void <init>(com.android.tools.r8.graph.DexClass,java.util.function.BiFunction,com.android.tools.r8.graph.JarApplicationReader,boolean):259:263 -> <init>
    1:10:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):269:278 -> a
com.android.tools.r8.graph.LazyCfCode$DefaultCodeLocator -> com.android.tools.r8.graph.z0:
    com.android.tools.r8.graph.JarClassFileReader$ReparseContext context -> a
    int methodIndex -> b
    1:1:void <init>(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.LazyCfCode$1):231:231 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader):236:236 -> <init>
    3:6:void <init>(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader):234:237 -> <init>
    1:1:java.lang.Object apply(java.lang.Object,java.lang.Object):231:231 -> apply
    2:2:com.android.tools.r8.graph.LazyCfCode apply(java.lang.String,java.lang.String):243:243 -> apply
    2:2:java.lang.Object apply(java.lang.Object,java.lang.Object):231 -> apply
com.android.tools.r8.graph.LazyCfCode$JsrEncountered -> com.android.tools.r8.graph.A0:
    1:1:void <init>(java.lang.String):88:88 -> <init>
com.android.tools.r8.graph.LazyCfCode$MethodCodeVisitor -> com.android.tools.r8.graph.B0:
    java.util.Map canonicalDebugLocalInfo -> q
    java.util.Map labelMap -> r
    int maxStack -> l
    java.util.List localVariables -> p
    int maxLocals -> m
    java.util.List tryCatchRanges -> o
    com.android.tools.r8.graph.LazyCfCode code -> s
    boolean $assertionsDisabled -> u
    com.android.tools.r8.graph.DexItemFactory factory -> k
    com.android.tools.r8.graph.DexMethod method -> t
    java.util.List instructions -> n
    com.android.tools.r8.graph.JarApplicationReader application -> j
    1:1:void <clinit>():285:285 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.LazyCfCode):299:299 -> <init>
    2:13:void <init>(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.LazyCfCode):293:304 -> <init>
    com.android.tools.r8.graph.DebugLocalInfo lambda$canonicalize$1(com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.DebugLocalInfo) -> a
    1:1:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):327:327 -> a
    2:8:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap parseLocals(int,java.lang.Object[]):334:340 -> a
    2:8:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):328 -> a
    9:11:java.util.List parseStack(int,java.lang.Object[]):348:350 -> a
    9:11:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):329 -> a
    12:12:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):330:330 -> a
    13:14:com.android.tools.r8.graph.DexType createTypeFromInternalType(java.lang.String):391:392 -> a
    15:15:void visitInsn(int):558:558 -> a
    16:16:void visitInsn(int):543:543 -> a
    17:17:void visitInsn(int):540:540 -> a
    18:18:void visitInsn(int):537:537 -> a
    19:19:void visitInsn(int):534:534 -> a
    20:20:void visitInsn(int):531:531 -> a
    21:21:void visitInsn(int):528:528 -> a
    22:22:void visitInsn(int):525:525 -> a
    23:23:void visitInsn(int):518:518 -> a
    24:24:void visitInsn(int):501:501 -> a
    25:25:void visitInsn(int):487:487 -> a
    26:26:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):71:71 -> a
    26:26:void visitInsn(int):487 -> a
    27:27:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):69:69 -> a
    27:27:void visitInsn(int):487 -> a
    28:28:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):67:67 -> a
    28:28:void visitInsn(int):487 -> a
    29:29:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):65:65 -> a
    29:29:void visitInsn(int):487 -> a
    30:30:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):63:63 -> a
    30:30:void visitInsn(int):487 -> a
    31:31:void visitInsn(int):487:487 -> a
    32:32:void visitInsn(int):481:481 -> a
    33:33:void visitInsn(int):459:459 -> a
    34:34:void visitInsn(int):448:448 -> a
    35:35:void visitInsn(int):438:438 -> a
    36:38:void visitInsn(int):426:428 -> a
    39:39:void visitInsn(int):426:426 -> a
    40:42:void visitInsn(int):420:422 -> a
    43:43:void visitInsn(int):420:420 -> a
    44:44:void visitInsn(int):415:415 -> a
    45:45:void visitInsn(int):411:411 -> a
    46:46:void visitInsn(int):402:402 -> a
    47:203:void visitInsn(int):399:555 -> a
    204:204:void visitInsn(int):552:552 -> a
    205:205:void visitInsn(int):549:549 -> a
    206:206:void visitInsn(int):546:546 -> a
    207:222:void visitTypeInsn(int,java.lang.String):670:685 -> a
    223:223:void visitTypeInsn(int,java.lang.String):679:679 -> a
    224:224:void visitTypeInsn(int,java.lang.String):676:676 -> a
    225:225:void visitTypeInsn(int,java.lang.String):673:673 -> a
    226:230:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):691:695 -> a
    231:231:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):700:700 -> a
    232:232:com.android.tools.r8.graph.DexMethod com.android.tools.r8.graph.JarApplicationReader.getMethod(java.lang.String,java.lang.String,java.lang.String):92:92 -> a
    232:232:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):700 -> a
    233:233:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):701:701 -> a
    234:236:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):706:708 -> a
    237:267:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):713:743 -> a
    268:272:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):737:741 -> a
    273:273:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):733:733 -> a
    274:274:void visitLabel(com.android.tools.r8.org.objectweb.asm.Label):777:777 -> a
    275:298:void visitLdcInsn(java.lang.Object):782:805 -> a
    299:303:void visitLdcInsn(java.lang.Object):803:807 -> a
    304:304:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    304:304:void visitLdcInsn(java.lang.Object):807 -> a
    305:307:void visitLdcInsn(java.lang.Object):807:809 -> a
    308:308:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    308:308:void visitLdcInsn(java.lang.Object):809 -> a
    309:309:void visitLdcInsn(java.lang.Object):809:809 -> a
    310:310:void visitIincInsn(int,int):815:815 -> a
    311:316:void visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):820:825 -> a
    317:321:void visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):830:834 -> a
    322:361:void visitMultiANewArrayInsn(java.lang.String,int):839:878 -> a
    362:362:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):886:886 -> a
    363:366:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):885:888 -> a
    367:372:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):894:899 -> a
    373:379:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):895:901 -> a
    380:381:void com.android.tools.r8.graph.CfCode$LocalVariableInfo.<init>(int,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfLabel):59:60 -> a
    380:381:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):901 -> a
    382:382:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):900:900 -> a
    383:383:com.android.tools.r8.graph.DebugLocalInfo canonicalize(com.android.tools.r8.graph.DebugLocalInfo):905:905 -> a
    1:6:void visitCode():309:314 -> b
    7:11:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):356:360 -> b
    12:24:com.android.tools.r8.graph.DexType parseAsmType(java.lang.Object):372:384 -> b
    12:24:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):363 -> b
    25:25:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):363:363 -> b
    26:26:com.android.tools.r8.graph.DexType parseAsmType(java.lang.Object):386:386 -> b
    26:26:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):363 -> b
    27:27:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):361:361 -> b
    28:28:com.android.tools.r8.cf.code.CfLabel getLabel(com.android.tools.r8.org.objectweb.asm.Label):368:368 -> b
    29:29:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):589:589 -> b
    30:30:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):587:587 -> b
    31:31:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):584:584 -> b
    32:32:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):581:581 -> b
    33:33:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):578:578 -> b
    34:34:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):575:575 -> b
    35:38:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):569:572 -> b
    39:39:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):566:566 -> b
    40:40:void visitIntInsn(int,int):601:601 -> b
    41:41:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):628:628 -> b
    41:41:void visitIntInsn(int,int):602 -> b
    42:42:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):626:626 -> b
    42:42:void visitIntInsn(int,int):602 -> b
    43:43:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):624:624 -> b
    43:43:void visitIntInsn(int,int):602 -> b
    44:44:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):622:622 -> b
    44:44:void visitIntInsn(int,int):602 -> b
    45:45:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):620:620 -> b
    45:45:void visitIntInsn(int,int):602 -> b
    46:46:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):618:618 -> b
    46:46:void visitIntInsn(int,int):602 -> b
    47:47:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):616:616 -> b
    47:47:void visitIntInsn(int,int):602 -> b
    48:48:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):614:614 -> b
    48:48:void visitIntInsn(int,int):602 -> b
    49:49:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):612:612 -> b
    49:49:void visitIntInsn(int,int):602 -> b
    50:50:void visitIntInsn(int,int):602:602 -> b
    51:55:void visitIntInsn(int,int):601:605 -> b
    56:56:void visitIntInsn(int,int):598:598 -> b
    57:57:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):910:910 -> b
    1:1:void visitEnd():319:319 -> c
    2:2:com.android.tools.r8.cf.code.CfLabel lambda$getLabel$0(com.android.tools.r8.org.objectweb.asm.Label):368:368 -> c
    3:3:com.android.tools.r8.ir.code.If$Type ifType(int):771:771 -> c
    4:4:com.android.tools.r8.ir.code.If$Type ifType(int):769:769 -> c
    5:5:com.android.tools.r8.ir.code.If$Type ifType(int):766:766 -> c
    6:6:com.android.tools.r8.ir.code.If$Type ifType(int):763:763 -> c
    7:7:com.android.tools.r8.ir.code.If$Type ifType(int):760:760 -> c
    8:8:com.android.tools.r8.ir.code.If$Type ifType(int):757:757 -> c
    9:9:com.android.tools.r8.ir.code.If$Type ifType(int):753:753 -> c
    10:13:void visitMaxs(int,int):915:918 -> c
    1:1:void visitVarInsn(int,int):659:659 -> d
    2:2:void visitVarInsn(int,int):654:654 -> d
    3:3:void visitVarInsn(int,int):650:650 -> d
    4:8:void visitVarInsn(int,int):642:646 -> d
    9:35:void visitVarInsn(int,int):638:664 -> d
    36:36:void visitVarInsn(int,int):657:657 -> d
com.android.tools.r8.graph.LazyLoadedDexApplication -> com.android.tools.r8.graph.D0:
    com.android.tools.r8.utils.LibraryClassCollection libraryClasses -> k
    boolean $assertionsDisabled -> l
    com.android.tools.r8.utils.ClasspathClassCollection classpathClasses -> j
    com.android.tools.r8.utils.ProgramClassCollection programClasses -> i
    1:1:void <clinit>():24:24 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.utils.ProgramClassCollection,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.utils.ClasspathClassCollection,com.android.tools.r8.utils.LibraryClassCollection,com.android.tools.r8.com.google.common.collect.ImmutableSet,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing,com.android.tools.r8.graph.LazyLoadedDexApplication$1):24:24 -> <init>
    2:11:void <init>(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.utils.ProgramClassCollection,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.utils.ClasspathClassCollection,com.android.tools.r8.utils.LibraryClassCollection,com.android.tools.r8.com.google.common.collect.ImmutableSet,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing):41:50 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$000(java.util.Map,java.util.Map):24:24 -> a
    2:2:com.android.tools.r8.utils.ClasspathClassCollection access$100(com.android.tools.r8.graph.LazyLoadedDexApplication):24:24 -> a
    3:4:com.android.tools.r8.graph.DexProgramClass programDefinitionFor(com.android.tools.r8.graph.DexType):87:88 -> a
    5:7:void lambda$fillPrioritizedClasses$1(java.util.Map,com.android.tools.r8.com.google.common.collect.ImmutableList$Builder,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):173:175 -> a
    boolean lambda$programClasses$0(com.android.tools.r8.graph.DexType) -> b
    1:1:com.android.tools.r8.utils.LibraryClassCollection access$200(com.android.tools.r8.graph.LazyLoadedDexApplication):24:24 -> b
    2:12:com.android.tools.r8.com.google.common.collect.ImmutableList fillPrioritizedClasses(java.util.Map,java.util.Map):170:180 -> b
    13:13:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder builder():243:243 -> b
    13:13:com.android.tools.r8.graph.DexApplication$Builder builder():24 -> b
    1:19:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):61:79 -> definitionFor
    1:2:java.util.List programClasses():55:56 -> f
    1:1:com.android.tools.r8.graph.DirectMappedDexApplication toDirect():248:248 -> g
    1:1:com.android.tools.r8.graph.LazyLoadedDexApplication$AllClasses loadAllClasses():188:188 -> h
    1:1:java.lang.String toString():253:253 -> toString
com.android.tools.r8.graph.LazyLoadedDexApplication$1 -> com.android.tools.r8.graph.D0$a:
com.android.tools.r8.graph.LazyLoadedDexApplication$AllClasses -> com.android.tools.r8.graph.D0$b:
    com.android.tools.r8.com.google.common.collect.ImmutableList classpathClasses -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList programClasses -> a
    boolean $assertionsDisabled -> d
    com.android.tools.r8.com.google.common.collect.ImmutableList libraryClasses -> c
    1:1:void <clinit>():91:91 -> <clinit>
    1:44:void <init>(com.android.tools.r8.utils.LibraryClassCollection,com.android.tools.r8.utils.ClasspathClassCollection,com.android.tools.r8.utils.ProgramClassCollection,com.android.tools.r8.utils.InternalOptions):104:147 -> <init>
    45:45:void <init>(com.android.tools.r8.utils.LibraryClassCollection,com.android.tools.r8.utils.ClasspathClassCollection,com.android.tools.r8.utils.ProgramClassCollection,com.android.tools.r8.utils.InternalOptions):146:146 -> <init>
    boolean lambda$new$0(com.android.tools.r8.graph.DexType) -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList getClasspathClasses():159:159 -> a
    boolean lambda$new$1(com.android.tools.r8.graph.DexType) -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList getLibraryClasses():163:163 -> b
    boolean lambda$new$2(com.android.tools.r8.graph.DexType) -> c
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList getProgramClasses():155:155 -> c
com.android.tools.r8.graph.LazyLoadedDexApplication$Builder -> com.android.tools.r8.graph.D0$c:
    com.android.tools.r8.utils.LibraryClassCollection libraryClasses -> l
    com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver resolver -> m
    com.android.tools.r8.utils.ClasspathClassCollection classpathClasses -> k
    1:1:void <init>(com.android.tools.r8.graph.LazyLoadedDexApplication,com.android.tools.r8.graph.LazyLoadedDexApplication$1):191:191 -> <init>
    2:5:void <init>(com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):198:201 -> <init>
    6:9:void <init>(com.android.tools.r8.graph.LazyLoadedDexApplication):205:208 -> <init>
    1:1:com.android.tools.r8.graph.DexApplication build():191:191 -> a
    2:2:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder setClasspathClassCollection(com.android.tools.r8.utils.ClasspathClassCollection):217:217 -> a
    3:3:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder setLibraryClassCollection(com.android.tools.r8.utils.LibraryClassCollection):222:222 -> a
    com.android.tools.r8.graph.DexApplication$Builder self() -> e
    1:7:com.android.tools.r8.graph.LazyLoadedDexApplication build():228:234 -> f
com.android.tools.r8.graph.MethodAccessFlags -> com.android.tools.r8.graph.E0:
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():15:15 -> <clinit>
    1:1:void <init>(int,int):65:65 -> <init>
    1:1:com.android.tools.r8.graph.MethodAccessFlags copy():70:70 -> B
    1:1:int com.android.tools.r8.graph.AccessFlags.materialize():67:67 -> C
    1:1:int getAsCfAccessFlags():100 -> C
    1:1:int getAsDexAccessFlags():105:105 -> D
    2:2:boolean isSynchronized():124:124 -> D
    2:2:int getAsDexAccessFlags():106 -> D
    3:3:int getAsDexAccessFlags():106:106 -> D
    4:4:void unsetSynchronized():132:132 -> D
    4:4:int getAsDexAccessFlags():107 -> D
    5:5:void setDeclaredSynchronized():202:202 -> D
    5:5:int getAsDexAccessFlags():108 -> D
    6:6:int com.android.tools.r8.graph.AccessFlags.materialize():67:67 -> D
    6:6:int getAsDexAccessFlags():110 -> D
    1:12:int com.android.tools.r8.graph.AccessFlags.getAsKotlinFlags():75:86 -> E
    1:12:int getAsKotlinFlags():115 -> E
    13:13:boolean com.android.tools.r8.graph.AccessFlags.isOpen():201:201 -> E
    13:13:int com.android.tools.r8.graph.AccessFlags.getAsKotlinFlags():88 -> E
    13:13:int getAsKotlinFlags():115 -> E
    14:16:int com.android.tools.r8.graph.AccessFlags.getAsKotlinFlags():89:91 -> E
    14:16:int getAsKotlinFlags():115 -> E
    17:21:int getAsKotlinFlags():116:120 -> E
    1:1:boolean isAbstract():164:164 -> F
    1:1:boolean isBridge():136:136 -> G
    1:1:boolean isConstructor():184:184 -> H
    1:1:boolean isNative():156:156 -> I
    1:1:boolean isStrict():176:176 -> J
    1:1:boolean isSynchronized():124:124 -> K
    1:1:boolean isVarargs():148:148 -> L
    1:1:void setBridge():140:140 -> M
    1:1:void setNative():160:160 -> N
    1:1:void unsetAbstract():172:172 -> O
    1:1:void unsetBridge():144:144 -> P
    1:1:void unsetConstructor():192:192 -> Q
    1:1:com.android.tools.r8.graph.MethodAccessFlags fromCfAccessFlags(int,boolean):85:85 -> a
    2:2:void <init>(int):61:61 -> a
    2:2:com.android.tools.r8.graph.MethodAccessFlags fromCfAccessFlags(int,boolean):86 -> a
    1:9:java.util.List getNames():36:44 -> b
    10:12:com.android.tools.r8.graph.MethodAccessFlags fromSharedAccessFlags(int,boolean):79:81 -> b
    1:9:java.util.List getPredicates():49:57 -> d
    1:1:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):90:90 -> e
    2:2:void <init>(int):61:61 -> e
    2:2:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):90 -> e
    3:3:boolean isDeclaredSynchronized():198:198 -> e
    3:3:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):91 -> e
    4:4:void setSynchronized():128:128 -> e
    4:4:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):92 -> e
    5:5:void unsetDeclaredSynchronized():206:206 -> e
    5:5:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):93 -> e
com.android.tools.r8.graph.NestHostClassAttribute -> com.android.tools.r8.graph.F0:
    com.android.tools.r8.graph.DexType nestHost -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():10:10 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexType):14:15 -> <init>
    1:1:com.android.tools.r8.graph.DexType getNestHost():19:19 -> a
    2:3:void write(com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.naming.NamingLens):23:24 -> a
com.android.tools.r8.graph.NestMemberClassAttribute -> com.android.tools.r8.graph.G0:
    com.android.tools.r8.graph.DexType nestMember -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():10:10 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexType):14:15 -> <init>
    1:1:com.android.tools.r8.graph.DexType getNestMember():19:19 -> a
    2:3:void write(com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.naming.NamingLens):23:24 -> a
com.android.tools.r8.graph.ObjectToOffsetMapping -> com.android.tools.r8.graph.H0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap types -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap methods -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap fields -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap strings -> f
    boolean $assertionsDisabled -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap protos -> b
    com.android.tools.r8.graph.DexString firstJumboString -> i
    com.android.tools.r8.graph.DexProgramClass[] classes -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap callSites -> g
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap methodHandles -> h
    1:1:void <clinit>():19:19 -> <clinit>
    1:19:void <init>(com.android.tools.r8.graph.DexApplication,java.util.Collection,java.util.Collection,java.util.Collection,java.util.Collection,java.util.Collection,java.util.Collection,java.util.Collection,java.util.Collection):43:61 -> <init>
    1:1:void failOnOverflow(com.android.tools.r8.graph.DexItem):70:70 -> a
    2:2:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    2:2:void failOnOverflow(com.android.tools.r8.graph.DexItem):70 -> a
    3:3:void failOnOverflow(com.android.tools.r8.graph.DexItem):70:70 -> a
    4:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createMap(java.util.Collection,java.util.function.Consumer):75:78 -> a
    8:8:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.<init>(int):167:167 -> a
    8:8:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createMap(java.util.Collection,java.util.function.Consumer):78 -> a
    9:16:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createMap(java.util.Collection,java.util.function.Consumer):79:86 -> a
    17:28:com.android.tools.r8.graph.DexProgramClass[] sortClasses(com.android.tools.r8.graph.DexApplication,java.util.Collection):140:151 -> a
    29:31:int lambda$sortClasses$0(com.android.tools.r8.graph.ObjectToOffsetMapping$ProgramClassDepthsMemoized,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):146:148 -> a
    32:32:int com.android.tools.r8.graph.DexType.compareTo(com.android.tools.r8.graph.DexType):173:173 -> a
    32:32:int lambda$sortClasses$0(com.android.tools.r8.graph.ObjectToOffsetMapping$ProgramClassDepthsMemoized,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):148 -> a
    33:33:java.util.Collection keysOrEmpty(java.util.Map):155:155 -> a
    34:34:java.util.Collection getCallSites():183:183 -> a
    35:37:int getOffsetFor(com.android.tools.r8.graph.IndexedDexItem,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):208:210 -> a
    38:38:int getOffsetFor(com.android.tools.r8.graph.DexProto):215:215 -> a
    39:39:int getOffsetFor(com.android.tools.r8.graph.DexField):219:219 -> a
    40:40:int getOffsetFor(com.android.tools.r8.graph.DexMethod):223:223 -> a
    41:41:int getOffsetFor(com.android.tools.r8.graph.DexString):227:227 -> a
    42:42:int getOffsetFor(com.android.tools.r8.graph.DexType):231:231 -> a
    43:43:int getOffsetFor(com.android.tools.r8.graph.DexCallSite):235:235 -> a
    44:44:int getOffsetFor(com.android.tools.r8.graph.DexMethodHandle):239:239 -> a
    1:2:void setFirstJumboString(com.android.tools.r8.graph.DexString):65:66 -> b
    3:3:com.android.tools.r8.graph.DexProgramClass[] getClasses():163:163 -> b
    1:1:java.util.Collection getFields():175:175 -> c
    1:1:com.android.tools.r8.graph.DexString getFirstJumboString():195:195 -> d
    1:3:com.android.tools.r8.graph.DexString getFirstString():199:201 -> e
    1:1:java.util.Collection getMethodHandles():187:187 -> f
    1:1:java.util.Collection getMethods():159:159 -> g
    1:1:java.util.Collection getProtos():171:171 -> h
    1:1:java.util.Collection getStrings():179:179 -> i
    1:1:java.util.Collection getTypes():167:167 -> j
    1:1:boolean hasJumboStrings():191:191 -> k
com.android.tools.r8.graph.ObjectToOffsetMapping$ProgramClassDepthsMemoized -> com.android.tools.r8.graph.H0$a:
    com.android.tools.r8.graph.DexApplication application -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap depthOfClasses -> b
    1:1:void <init>(com.android.tools.r8.graph.DexApplication):103:103 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.DexApplication):101:105 -> <init>
    1:22:int getDepth(com.android.tools.r8.graph.DexProgramClass):109:130 -> a
com.android.tools.r8.graph.OffsetToObjectMapping -> com.android.tools.r8.graph.I0:
    com.android.tools.r8.graph.DexProto[] protos -> c
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexMethodHandle[] methodHandles -> h
    com.android.tools.r8.graph.DexMethod[] methods -> b
    com.android.tools.r8.graph.DexField[] fields -> d
    com.android.tools.r8.graph.DexString[] strings -> f
    com.android.tools.r8.graph.DexCallSite[] callSites -> g
    com.android.tools.r8.graph.DexProgramClass[] classes -> a
    com.android.tools.r8.graph.DexType[] types -> e
    1:1:void <clinit>():6:6 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:2:com.android.tools.r8.graph.DexCallSite[] getCallSiteMap():88:89 -> a
    3:4:com.android.tools.r8.graph.DexField getField(int):113:114 -> a
    5:6:void setProto(int,com.android.tools.r8.graph.DexProto):143:144 -> a
    7:8:void setMethod(int,com.android.tools.r8.graph.DexMethod):148:149 -> a
    9:10:void setField(int,com.android.tools.r8.graph.DexField):153:154 -> a
    11:12:void setType(int,com.android.tools.r8.graph.DexType):158:159 -> a
    13:14:void setString(int,com.android.tools.r8.graph.DexString):163:164 -> a
    15:16:void setCallSites(int,com.android.tools.r8.graph.DexCallSite):168:169 -> a
    17:18:void setMethodHandle(int,com.android.tools.r8.graph.DexMethodHandle):173:174 -> a
    1:2:com.android.tools.r8.graph.DexField[] getFieldMap():73:74 -> b
    3:4:com.android.tools.r8.graph.DexMethod getMethod(int):103:104 -> b
    1:2:com.android.tools.r8.graph.DexMethodHandle[] getMethodHandleMap():93:94 -> c
    3:4:com.android.tools.r8.graph.DexMethodHandle getMethodHandle(int):133:134 -> c
    1:2:com.android.tools.r8.graph.DexMethod[] getMethodMap():63:64 -> d
    3:4:com.android.tools.r8.graph.DexProto getProto(int):108:109 -> d
    1:2:com.android.tools.r8.graph.DexProto[] getProtosMap():68:69 -> e
    3:4:com.android.tools.r8.graph.DexString getString(int):123:124 -> e
    1:2:com.android.tools.r8.graph.DexString[] getStringMap():83:84 -> f
    3:4:com.android.tools.r8.graph.DexType getType(int):118:119 -> f
    1:2:void initializeCallSites(int):48:49 -> g
    3:4:com.android.tools.r8.graph.DexType[] getTypeMap():78:79 -> g
    1:2:void initializeClasses(int):18:19 -> h
    1:2:void initializeFields(int):33:34 -> i
    1:2:void initializeMethodHandles(int):53:54 -> j
    1:2:void initializeMethods(int):23:24 -> k
    1:2:void initializeProtos(int):28:29 -> l
    1:2:void initializeStrings(int):43:44 -> m
    1:2:void initializeTypes(int):38:39 -> n
com.android.tools.r8.graph.ParameterAnnotationsList -> com.android.tools.r8.graph.J0:
    com.android.tools.r8.graph.ParameterAnnotationsList EMPTY_PARAMETER_ANNOTATIONS_LIST -> c
    com.android.tools.r8.graph.DexAnnotationSet[] values -> a
    int missingParameterAnnotations -> b
    boolean $assertionsDisabled -> d
    1:3:void <clinit>():38:40 -> <clinit>
    1:3:void <init>():50:52 -> <init>
    4:7:void <init>(com.android.tools.r8.graph.DexAnnotationSet[],int):59:62 -> <init>
    1:3:void forEachAnnotation(java.util.function.Consumer):104:106 -> a
    4:4:int countNonMissing():124:124 -> a
    5:23:com.android.tools.r8.graph.ParameterAnnotationsList keepIf(java.util.function.Predicate):178:196 -> a
    24:26:com.android.tools.r8.graph.ParameterAnnotationsList rewrite(java.util.function.Function):200:202 -> a
    1:1:com.android.tools.r8.graph.ParameterAnnotationsList empty():47:47 -> b
    2:6:com.android.tools.r8.graph.DexAnnotationSet get(int):147:151 -> b
    1:1:boolean isEmpty():99:99 -> c
    2:3:boolean isMissing(int):134:135 -> c
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):88:88 -> collectIndexedItems
    1:2:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):94:95 -> collectMixedSectionItems
    1:1:int size():116:116 -> d
    2:14:com.android.tools.r8.graph.ParameterAnnotationsList withParameterCount(int):156:168 -> d
    1:2:boolean equals(java.lang.Object):79:80 -> equals
    1:1:int hashCode():71:71 -> hashCode
com.android.tools.r8.graph.PresortedComparable -> com.android.tools.r8.graph.K0:
    int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens) -> a
    int slowCompareTo(java.lang.Object) -> a
    1:1:boolean isSorted(java.util.List):15:15 -> a
    2:4:boolean isSorted(java.util.List,java.util.function.Function):25:27 -> a
    5:5:int slowCompare(com.android.tools.r8.graph.PresortedComparable,com.android.tools.r8.graph.PresortedComparable):44:44 -> a
com.android.tools.r8.graph.ProgramClassVisitor -> com.android.tools.r8.graph.L0:
    com.android.tools.r8.graph.DexApplication application -> a
    java.util.Set visited -> b
    1:1:void <init>(com.android.tools.r8.graph.DexApplication):32:32 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.DexApplication):30:33 -> <init>
    1:10:void accept(com.android.tools.r8.graph.DexType):37:46 -> a
    11:15:void accept(com.android.tools.r8.graph.DexClass):56:60 -> a
    16:17:void accept(com.android.tools.r8.graph.DexTypeList):50:51 -> a
    16:17:void accept(com.android.tools.r8.graph.DexClass):60 -> a
    18:19:void accept(com.android.tools.r8.graph.DexClass):61:62 -> a
    20:21:void run(com.android.tools.r8.graph.DexProgramClass[]):66:67 -> a
    void visit(com.android.tools.r8.graph.DexClass) -> b
    void visit(com.android.tools.r8.graph.DexType) -> b
com.android.tools.r8.graph.ProgramMethod -> com.android.tools.r8.graph.M0:
    com.android.tools.r8.graph.DexProgramClass holder -> a
    com.android.tools.r8.graph.DexEncodedMethod method -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():9:9 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):13:16 -> <init>
    1:1:boolean equals(java.lang.Object):21:21 -> equals
    1:1:int hashCode():26:26 -> hashCode
com.android.tools.r8.graph.ResolutionResult -> com.android.tools.r8.graph.N0:
    1:1:void <init>():15:15 -> <init>
    com.android.tools.r8.graph.ResolutionResult$FailedResolutionResult asFailedResolution() -> a
    boolean isAccessibleForVirtualDispatchFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> a
    java.util.Set lookupInterfaceTargets(com.android.tools.r8.graph.AppInfoWithSubtyping) -> a
    com.android.tools.r8.graph.ResolutionResult$SingleResolutionResult asSingleResolution() -> b
    boolean isAccessibleFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> b
    java.util.Set lookupVirtualTargets(com.android.tools.r8.graph.AppInfoWithSubtyping) -> b
    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeDirectTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> c
    1:1:com.android.tools.r8.graph.DexEncodedMethod getSingleTarget():49:49 -> c
    boolean isFailedResolution() -> d
    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSpecialTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> d
    boolean isSingleResolution() -> e
    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeStaticTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> e
    boolean isVirtualTarget() -> f
    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> f
com.android.tools.r8.graph.ResolutionResult$1 -> com.android.tools.r8.graph.N0$a:
com.android.tools.r8.graph.ResolutionResult$ArrayCloneMethodResult -> com.android.tools.r8.graph.N0$b:
    com.android.tools.r8.graph.ResolutionResult$ArrayCloneMethodResult INSTANCE -> a
    1:1:void <clinit>():478:478 -> <clinit>
    1:1:void <init>():480:480 -> <init>
    boolean isAccessibleForVirtualDispatchFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> a
    boolean isAccessibleFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> b
    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeDirectTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> c
    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeStaticTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> e
    boolean isVirtualTarget() -> f
    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> f
com.android.tools.r8.graph.ResolutionResult$ClassNotFoundResult -> com.android.tools.r8.graph.N0$c:
    com.android.tools.r8.graph.ResolutionResult$ClassNotFoundResult INSTANCE -> a
    1:1:void <clinit>():536:536 -> <clinit>
    1:1:void <init>():538:538 -> <init>
com.android.tools.r8.graph.ResolutionResult$EmptyResult -> com.android.tools.r8.graph.N0$d:
    1:1:void <init>():438:438 -> <init>
    java.util.Set lookupInterfaceTargets(com.android.tools.r8.graph.AppInfoWithSubtyping) -> a
    java.util.Set lookupVirtualTargets(com.android.tools.r8.graph.AppInfoWithSubtyping) -> b
    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSpecialTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> d
com.android.tools.r8.graph.ResolutionResult$FailedResolutionResult -> com.android.tools.r8.graph.N0$e:
    1:1:void <init>():502:502 -> <init>
    com.android.tools.r8.graph.ResolutionResult$FailedResolutionResult asFailedResolution() -> a
    void forEachFailureDependency(java.util.function.Consumer) -> a
    boolean isAccessibleForVirtualDispatchFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> a
    boolean isAccessibleFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> b
    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeDirectTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> c
    boolean isFailedResolution() -> d
    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeStaticTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> e
    boolean isVirtualTarget() -> f
    com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy) -> f
com.android.tools.r8.graph.ResolutionResult$FailedResolutionWithCausingMethods -> com.android.tools.r8.graph.N0$f:
    java.util.Collection methodsCausingError -> a
    1:1:void <init>(java.util.Collection,com.android.tools.r8.graph.ResolutionResult$1):543:543 -> <init>
    2:3:void <init>(java.util.Collection):547:548 -> <init>
    1:1:void forEachFailureDependency(java.util.function.Consumer):553:553 -> a
com.android.tools.r8.graph.ResolutionResult$IllegalAccessOrNoSuchMethodResult -> com.android.tools.r8.graph.N0$g:
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():577:577 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):580:581 -> <init>
    1:1:void forEachFailureDependency(java.util.function.Consumer):577:577 -> a
com.android.tools.r8.graph.ResolutionResult$IncompatibleClassResult -> com.android.tools.r8.graph.N0$h:
    com.android.tools.r8.graph.ResolutionResult$IncompatibleClassResult INSTANCE -> b
    1:2:void <clinit>():558:559 -> <clinit>
    1:1:void <init>(java.util.Collection):562:562 -> <init>
    1:1:void forEachFailureDependency(java.util.function.Consumer):557:557 -> a
    2:4:com.android.tools.r8.graph.ResolutionResult$IncompatibleClassResult create(java.util.Collection):566:568 -> a
com.android.tools.r8.graph.ResolutionResult$NoSuchMethodResult -> com.android.tools.r8.graph.N0$i:
    com.android.tools.r8.graph.ResolutionResult$NoSuchMethodResult INSTANCE -> a
    1:1:void <clinit>():574:574 -> <clinit>
    1:1:void <init>():572:572 -> <init>
com.android.tools.r8.graph.ResolutionResult$SingleResolutionResult -> com.android.tools.r8.graph.N0$j:
    com.android.tools.r8.graph.DexClass initialResolutionHolder -> a
    com.android.tools.r8.graph.DexClass resolvedHolder -> b
    com.android.tools.r8.graph.DexEncodedMethod resolvedMethod -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():88:88 -> <clinit>
    1:8:void <init>(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):96:103 -> <init>
    boolean lambda$lookupInvokeSuperTarget$1(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass) -> a
    1:1:com.android.tools.r8.graph.DexEncodedMethod getResolvedMethod():111:111 -> a
    1:1:com.android.tools.r8.graph.DexEncodedMethod internalInvokeSpecialOrSuper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy,java.util.function.BiPredicate):259 -> a
    2:22:com.android.tools.r8.graph.DexEncodedMethod internalInvokeSpecialOrSuper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy,java.util.function.BiPredicate):259:279 -> a
    23:23:com.android.tools.r8.graph.DexEncodedMethod getResolvedMethod():111:111 -> a
    23:23:com.android.tools.r8.graph.DexEncodedMethod internalInvokeSpecialOrSuper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy,java.util.function.BiPredicate):289 -> a
    24:49:com.android.tools.r8.graph.DexEncodedMethod internalInvokeSpecialOrSuper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy,java.util.function.BiPredicate):289:314 -> a
    50:50:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():290:290 -> a
    50:50:com.android.tools.r8.graph.DexEncodedMethod internalInvokeSpecialOrSuper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy,java.util.function.BiPredicate):320 -> a
    51:51:boolean isAccessibleForVirtualDispatchFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):133:133 -> a
    52:52:boolean isSuperclass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):328:328 -> a
    52:52:boolean lambda$lookupInvokeSpecialTarget$0(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):156 -> a
    53:121:java.util.Set lookupInterfaceTargets(com.android.tools.r8.graph.AppInfoWithSubtyping):362:430 -> a
    122:123:void lambda$lookupInterfaceTargets$2(java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):402:403 -> a
    com.android.tools.r8.graph.ResolutionResult$SingleResolutionResult asSingleResolution() -> b
    1:1:boolean isAccessibleFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):126:126 -> b
    2:9:java.util.Set lookupVirtualTargets(com.android.tools.r8.graph.AppInfoWithSubtyping):334:341 -> b
    10:11:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Object):16:17 -> b
    10:11:java.util.Set lookupVirtualTargets(com.android.tools.r8.graph.AppInfoWithSubtyping):341 -> b
    12:21:java.util.Set lookupVirtualTargets(com.android.tools.r8.graph.AppInfoWithSubtyping):343:352 -> b
    22:23:void lambda$lookupInterfaceTargets$3(java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):413:414 -> b
    1:5:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeDirectTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):244:248 -> c
    1:12:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSpecialTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):151:162 -> d
    boolean isSingleResolution() -> e
    1:5:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeStaticTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):223:227 -> e
    1:1:boolean isVirtualTarget():138:138 -> f
    2:5:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):188:191 -> f
    6:6:boolean isSuperclass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):328:328 -> f
    6:6:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):191 -> f
    7:16:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):195:204 -> f
    17:18:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):192:193 -> f
    19:19:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():716:716 -> f
    19:19:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):193 -> f
    20:20:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> f
    20:20:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> f
    20:20:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):193 -> f
    21:21:com.android.tools.r8.graph.DexEncodedMethod lookupInvokeSuperTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.AppInfoWithClassHierarchy):193:193 -> f
    1:1:com.android.tools.r8.graph.DexClass getResolvedHolder():107:107 -> g
    1:1:com.android.tools.r8.graph.DexEncodedMethod getResolvedMethod():111:111 -> h
com.android.tools.r8.graph.SmaliWriter -> com.android.tools.r8.graph.O0:
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions):22:22 -> <init>
    java.lang.String getFileEnding() -> a
    void writeField(com.android.tools.r8.graph.DexEncodedField,java.io.PrintStream) -> a
    1:11:java.lang.String smali(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):27:37 -> a
    12:19:java.lang.String smali(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):28:35 -> a
    20:22:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):73:75 -> a
    1:3:void writeClassFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):66:68 -> b
    1:13:void writeClassHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):47:59 -> c
com.android.tools.r8.graph.TopDownClassHierarchyTraversal -> com.android.tools.r8.graph.P0:
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.ClassHierarchyTraversal$Scope):14:14 -> <init>
    com.android.tools.r8.graph.ClassHierarchyTraversal self() -> a
    1:1:void visit(java.lang.Iterable,java.util.function.Consumer):9:9 -> a
    2:2:com.android.tools.r8.graph.TopDownClassHierarchyTraversal forAllClasses(com.android.tools.r8.graph.AppView):23:23 -> a
    3:11:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):61:69 -> a
    12:26:boolean com.android.tools.r8.graph.ClassHierarchyTraversal$Scope.shouldBePassedToVisitor(com.android.tools.r8.graph.DexClass):25:39 -> a
    12:26:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):69 -> a
    27:27:boolean com.android.tools.r8.graph.ClassHierarchyTraversal$Scope.shouldBePassedToVisitor(com.android.tools.r8.graph.DexClass):36:36 -> a
    27:27:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):69 -> a
    28:28:boolean com.android.tools.r8.graph.ClassHierarchyTraversal$Scope.shouldBePassedToVisitor(com.android.tools.r8.graph.DexClass):33:33 -> a
    28:28:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):69 -> a
    29:29:boolean com.android.tools.r8.graph.ClassHierarchyTraversal$Scope.shouldBePassedToVisitor(com.android.tools.r8.graph.DexClass):30:30 -> a
    29:29:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):69 -> a
    30:35:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):72:77 -> a
    36:36:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    36:36:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):77 -> a
    37:46:boolean shouldTraverseUpwardsFrom(com.android.tools.r8.graph.DexClass):95:104 -> a
    37:46:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):78 -> a
    47:47:boolean shouldTraverseUpwardsFrom(com.android.tools.r8.graph.DexClass):101:101 -> a
    47:47:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):78 -> a
    48:55:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):79:86 -> a
    56:56:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    56:56:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):86 -> a
    57:66:boolean shouldTraverseUpwardsFrom(com.android.tools.r8.graph.DexClass):95:104 -> a
    57:66:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):87 -> a
    67:67:boolean shouldTraverseUpwardsFrom(com.android.tools.r8.graph.DexClass):101:101 -> a
    67:67:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):87 -> a
    68:68:void addDependentsToWorklist(com.android.tools.r8.graph.DexClass):88:88 -> a
    1:1:com.android.tools.r8.graph.TopDownClassHierarchyTraversal forProgramClasses(com.android.tools.r8.graph.AppView):50:50 -> b
    2:3:com.android.tools.r8.graph.ClassHierarchyTraversal com.android.tools.r8.graph.ClassHierarchyTraversal.excludeInterfaces():60:61 -> b
    2:3:com.android.tools.r8.graph.ClassHierarchyTraversal excludeInterfaces():0 -> b
com.android.tools.r8.graph.UseRegistry -> com.android.tools.r8.graph.Q0:
    1:1:void <clinit>():15:15 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexItemFactory):24:25 -> <init>
    1:25:void registerCallSite(com.android.tools.r8.graph.DexCallSite):99:123 -> registerCallSite
    1:1:boolean registerCheckCast(com.android.tools.r8.graph.DexType):55:55 -> registerCheckCast
    1:1:boolean registerConstClass(com.android.tools.r8.graph.DexType):51:51 -> registerConstClass
    1:35:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):60:94 -> registerMethodHandle
    36:36:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):91:91 -> registerMethodHandle
    37:37:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):88:88 -> registerMethodHandle
    38:38:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):85:85 -> registerMethodHandle
    39:41:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):80:82 -> registerMethodHandle
    42:42:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):77:77 -> registerMethodHandle
    43:43:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):74:74 -> registerMethodHandle
    44:44:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):71:71 -> registerMethodHandle
    45:45:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):68:68 -> registerMethodHandle
    46:46:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):65:65 -> registerMethodHandle
    47:47:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):62:62 -> registerMethodHandle
    1:3:void registerProto(com.android.tools.r8.graph.DexProto):133:135 -> registerProto
com.android.tools.r8.graph.UseRegistry$MethodHandleUse -> com.android.tools.r8.graph.Q0$a:
    com.android.tools.r8.graph.UseRegistry$MethodHandleUse ARGUMENT_TO_LAMBDA_METAFACTORY -> a
    com.android.tools.r8.graph.UseRegistry$MethodHandleUse NOT_ARGUMENT_TO_LAMBDA_METAFACTORY -> b
    1:2:void <clinit>():20:21 -> <clinit>
    1:1:void <init>(java.lang.String,int):19:19 -> <init>
com.android.tools.r8.graph.analysis.ClassInitializerAssertionEnablingAnalysis -> com.android.tools.r8.graph.R0.a:
    com.android.tools.r8.ir.optimize.info.OptimizationFeedback feedback -> b
    java.util.List r8InstructionSequence -> d
    java.util.List javacInstructionSequence -> c
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> a
    1:8:void <clinit>():74:81 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):27:29 -> <init>
    1:3:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):34:36 -> a
    4:12:boolean hasJavacClinitAssertionCode(com.android.tools.r8.graph.CfCode):84:92 -> a
    4:12:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):36 -> a
    13:30:com.android.tools.r8.cf.code.CfFieldInstruction isJavacInstructionSequence(com.android.tools.r8.graph.CfCode,int):112:129 -> a
    13:30:boolean hasJavacClinitAssertionCode(com.android.tools.r8.graph.CfCode):93 -> a
    13:30:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):36 -> a
    31:48:com.android.tools.r8.cf.code.CfFieldInstruction isR8InstructionSequence(com.android.tools.r8.graph.CfCode,int):134:151 -> a
    31:48:boolean hasJavacClinitAssertionCode(com.android.tools.r8.graph.CfCode):95 -> a
    31:48:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):36 -> a
    49:55:boolean hasJavacClinitAssertionCode(com.android.tools.r8.graph.CfCode):98:104 -> a
    49:55:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):36 -> a
    56:56:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):37:37 -> a
com.android.tools.r8.graph.analysis.EnqueuerAnalysis -> com.android.tools.r8.graph.R0.b:
    1:1:void <init>():13:13 -> <init>
    void done() -> a
    void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist) -> a
    void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod) -> a
    void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod) -> a
com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis -> com.android.tools.r8.graph.R0.d:
    java.util.Map mapping -> b
    com.android.tools.r8.graph.AppView appView -> a
    1:1:void <init>(com.android.tools.r8.graph.AppView):59:59 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.AppView):56:60 -> <init>
    1:17:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):65:81 -> a
    18:18:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):79:79 -> a
    19:19:void done():87:87 -> a
com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis$1 -> com.android.tools.r8.graph.R0.c:
com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis$InitializedClassesInInstanceMethods -> com.android.tools.r8.graph.R0.d$a:
    java.util.Map mapping -> b
    com.android.tools.r8.graph.AppView appView -> a
    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis$1):19:19 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):25:27 -> <init>
    1:15:boolean isClassDefinitelyLoadedInInstanceMethodsOn(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):33:47 -> a
    16:16:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    16:16:boolean isClassDefinitelyLoadedInInstanceMethodsOn(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):47 -> a
    17:17:boolean isClassDefinitelyLoadedInInstanceMethodsOn(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):48:48 -> a
com.android.tools.r8.graph.classmerging.HorizontallyMergedLambdaClasses -> com.android.tools.r8.graph.S0.a:
    java.util.Set sources -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():12:12 -> <clinit>
    1:2:void <init>(java.util.Set):16:17 -> <init>
    1:4:boolean verifyAllSourcesPruned(com.android.tools.r8.graph.AppView):22:25 -> a
com.android.tools.r8.graph.classmerging.MergedClasses -> com.android.tools.r8.graph.S0.b:
    boolean verifyAllSourcesPruned(com.android.tools.r8.graph.AppView) -> a
com.android.tools.r8.graph.classmerging.MergedClassesCollection -> com.android.tools.r8.graph.S0.c:
    java.util.List collection -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():12:12 -> <clinit>
    1:3:void <init>():12:14 -> <init>
    1:1:void add(com.android.tools.r8.graph.classmerging.MergedClasses):17:17 -> a
    2:3:boolean verifyAllSourcesPruned(com.android.tools.r8.graph.AppView):22:23 -> a
com.android.tools.r8.graph.classmerging.VerticallyMergedClasses -> com.android.tools.r8.graph.S0.d:
    java.util.Map mergedClasses -> a
    java.util.Map sources -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():16:16 -> <clinit>
    1:6:void <init>(java.util.Map):21:26 -> <init>
    1:1:void lambda$new$1(java.util.Map,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):24:24 -> a
    2:2:java.util.List getSourcesFor(com.android.tools.r8.graph.DexType):30:30 -> a
    3:6:boolean verifyAllSourcesPruned(com.android.tools.r8.graph.AppView):44:47 -> a
    1:2:com.android.tools.r8.graph.DexType getTargetFor(com.android.tools.r8.graph.DexType):34:35 -> b
    1:1:boolean hasBeenMergedIntoSubtype(com.android.tools.r8.graph.DexType):39:39 -> c
    1:1:java.util.List lambda$new$0(com.android.tools.r8.graph.DexType):24:24 -> d
com.android.tools.r8.ir.analysis.AbstractError -> com.android.tools.r8.t.a.a:
    com.android.tools.r8.graph.DexType simulatedError -> a
    com.android.tools.r8.ir.analysis.AbstractError TOP -> b
    com.android.tools.r8.ir.analysis.AbstractError BOTTOM -> c
    boolean $assertionsDisabled -> d
    1:4:void <clinit>():18:21 -> <clinit>
    1:1:void <init>():25:25 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.DexType):27:28 -> <init>
    1:1:com.android.tools.r8.ir.analysis.AbstractError bottom():36:36 -> a
    2:2:com.android.tools.r8.ir.analysis.AbstractError specific(com.android.tools.r8.graph.DexType):40:40 -> a
    3:8:com.android.tools.r8.graph.DexType getSpecificError(com.android.tools.r8.graph.DexItemFactory):52:57 -> a
    1:1:boolean cannotThrow():44:44 -> b
    1:1:boolean isThrowing():48:48 -> c
    1:1:com.android.tools.r8.ir.analysis.AbstractError top():32:32 -> d
com.android.tools.r8.ir.analysis.ClassInitializationAnalysis -> com.android.tools.r8.t.a.c:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.code.DominatorTree dominatorTree -> d
    com.android.tools.r8.ir.analysis.ClassInitializationAnalysis TRIVIAL -> f
    boolean $assertionsDisabled -> g
    com.android.tools.r8.ir.code.IRCode code -> b
    int markingColor -> e
    1:13:void <clinit>():48:60 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$1):48:48 -> <init>
    2:2:void <init>():77:77 -> <init>
    3:9:void <init>():74:80 -> <init>
    10:10:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):83:83 -> <init>
    11:23:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):74:86 -> <init>
    1:26:boolean isClassDefinitelyLoadedBeforeInstruction(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction):95:120 -> a
    27:76:com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption getAssumptionForDominator(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):179:228 -> a
    27:76:boolean isClassDefinitelyLoadedBeforeInstruction(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction):121 -> a
    77:88:boolean isClassDefinitelyLoadedBeforeInstruction(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction):122:133 -> a
    89:89:boolean isClassDefinitelyLoadedBeforeInstruction(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction):132:132 -> a
    90:92:void returnMarkingColor():247:249 -> a
    90:92:void finish():243 -> a
    1:1:void notifyCodeHasChanged():237:237 -> b
    2:4:void returnMarkingColor():247:249 -> b
    2:4:void notifyCodeHasChanged():238 -> b
    1:1:com.android.tools.r8.ir.analysis.ClassInitializationAnalysis trivial():91:91 -> c
com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$1 -> com.android.tools.r8.t.a.b:
    1:1:void <init>():61:61 -> <init>
    boolean isClassDefinitelyLoadedBeforeInstruction(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction) -> a
com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption -> com.android.tools.r8.t.a.c$a:
    com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption NONE -> b
    com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption INSTRUCTION_DOES_NOT_THROW -> a
    1:2:void <clinit>():51:52 -> <clinit>
    1:1:void <init>(java.lang.String,int):50:50 -> <init>
com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$InstructionUtils -> com.android.tools.r8.t.a.c$b:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():253:253 -> <clinit>
    1:1:boolean forInstanceGet(com.android.tools.r8.ir.code.InstanceGet,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):261:261 -> a
    2:2:boolean forInstancePut(com.android.tools.r8.ir.code.InstancePut,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):270:270 -> a
    3:15:boolean forInstanceGetOrPut(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):279:291 -> a
    16:22:boolean forInvokeDirect(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):300:306 -> a
    23:23:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    23:23:boolean forInvokeDirect(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):306 -> a
    24:24:boolean forInvokeDirect(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):307:307 -> a
    25:51:boolean forInvokeInterface(com.android.tools.r8.ir.code.InvokeInterface,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):317:343 -> a
    52:56:boolean forInvokeStatic(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):352:356 -> a
    57:57:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    57:57:boolean forInvokeStatic(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):356 -> a
    58:58:boolean forInvokeStatic(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):357:357 -> a
    59:79:boolean forInvokeSuper(com.android.tools.r8.ir.code.InvokeSuper,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):367:387 -> a
    80:80:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    80:80:boolean forInvokeSuper(com.android.tools.r8.ir.code.InvokeSuper,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):387 -> a
    81:91:boolean forInvokeSuper(com.android.tools.r8.ir.code.InvokeSuper,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):391:401 -> a
    92:118:boolean forInvokeVirtual(com.android.tools.r8.ir.code.InvokeVirtual,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):411:437 -> a
    119:123:boolean forNewInstance(com.android.tools.r8.ir.code.NewInstance,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):446:450 -> a
    124:124:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    124:124:boolean forNewInstance(com.android.tools.r8.ir.code.NewInstance,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):450 -> a
    125:125:boolean forNewInstance(com.android.tools.r8.ir.code.NewInstance,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):451:451 -> a
    126:126:boolean forStaticGet(com.android.tools.r8.ir.code.StaticGet,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):460:460 -> a
    127:127:boolean forStaticPut(com.android.tools.r8.ir.code.StaticPut,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):469:469 -> a
    128:153:boolean isTypeInitializedBy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query):489:514 -> a
    154:155:void enqueueInitializedClassesOnNormalExit(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set,java.util.Deque):548:549 -> a
    154:155:boolean isTypeInitializedBy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query):515 -> a
    156:163:boolean isTypeInitializedBy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query):517:524 -> a
    164:164:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    164:164:boolean isTypeInitializedBy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query):528 -> a
    165:165:boolean isTypeInitializedBy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query):530:530 -> a
    166:167:void enqueueInitializedClassesOnNormalExit(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set,java.util.Deque):548:549 -> a
    166:167:boolean isTypeInitializedBy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query):532 -> a
    168:168:boolean isTypeInitializedBy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query):517:517 -> a
    169:170:void enqueue(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Deque):541:542 -> a
    1:7:boolean forStaticGetOrPut(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):478:484 -> b
com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query -> com.android.tools.r8.t.a.c$c:
    com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query DIRECTLY_OR_INDIRECTLY -> b
    com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query DIRECTLY -> a
    1:2:void <clinit>():56:57 -> <clinit>
    1:1:void <init>(java.lang.String,int):55:55 -> <init>
com.android.tools.r8.ir.analysis.DeterminismAnalysis -> com.android.tools.r8.t.a.d:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():18:18 -> <clinit>
    1:47:boolean returnValueOnlyDependsOnArguments(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):22:68 -> a
    48:48:boolean returnValueOnlyDependsOnArguments(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):58:58 -> a
com.android.tools.r8.ir.analysis.InitializedClassesOnNormalExitAnalysis -> com.android.tools.r8.t.a.f:
    1:15:java.util.Set computeInitializedClassesOnNormalExit(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):38:52 -> a
com.android.tools.r8.ir.analysis.InitializedClassesOnNormalExitAnalysis$Visitor -> com.android.tools.r8.t.a.e:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set initializedClassesOnNormalExit -> c
    com.android.tools.r8.graph.DexType context -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():55:55 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):61:61 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):59:63 -> <init>
    1:1:java.util.Set build():67:67 -> a
    2:2:void markInitializedOnNormalExit(java.lang.Iterable):71:71 -> a
    3:8:void markInitializedOnNormalExit(com.android.tools.r8.graph.DexType):75:80 -> a
    9:9:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    9:9:void markInitializedOnNormalExit(com.android.tools.r8.graph.DexType):80 -> a
    10:14:void markInitializedOnNormalExit(com.android.tools.r8.graph.DexType):84:88 -> a
    15:15:boolean com.android.tools.r8.graph.DexClass.classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView):786:786 -> a
    15:15:void markInitializedOnNormalExit(com.android.tools.r8.graph.DexType):88 -> a
    16:33:void markInitializedOnNormalExit(com.android.tools.r8.graph.DexType):93:110 -> a
    34:39:java.lang.Void handleFieldInstruction(com.android.tools.r8.ir.code.FieldInstruction):116:121 -> a
    34:39:java.lang.Object handleFieldInstruction(com.android.tools.r8.ir.code.FieldInstruction):55 -> a
    40:48:java.lang.Void handleInvoke(com.android.tools.r8.ir.code.Invoke):129:137 -> a
    40:48:java.lang.Object handleInvoke(com.android.tools.r8.ir.code.Invoke):55 -> a
    49:52:java.lang.Void handleInvoke(com.android.tools.r8.ir.code.Invoke):136:139 -> a
    49:52:java.lang.Object handleInvoke(com.android.tools.r8.ir.code.Invoke):55 -> a
    53:53:java.lang.Void visit(com.android.tools.r8.ir.code.NewInstance):148:148 -> a
    53:53:java.lang.Object visit(com.android.tools.r8.ir.code.NewInstance):55 -> a
com.android.tools.r8.ir.analysis.TypeChecker -> com.android.tools.r8.t.a.g:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():31:31 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.AppView):35:36 -> <init>
    1:3:boolean check(com.android.tools.r8.ir.code.IRCode):40:42 -> a
    4:4:boolean check(com.android.tools.r8.ir.code.InstancePut):63:63 -> a
    4:4:boolean check(com.android.tools.r8.ir.code.IRCode):42 -> a
    5:6:boolean check(com.android.tools.r8.ir.code.IRCode):45:46 -> a
    7:13:boolean check(com.android.tools.r8.ir.code.Return,com.android.tools.r8.graph.DexEncodedMethod):67:73 -> a
    7:13:boolean check(com.android.tools.r8.ir.code.IRCode):46 -> a
    14:23:boolean check(com.android.tools.r8.ir.code.Return,com.android.tools.r8.graph.DexEncodedMethod):72:81 -> a
    14:23:boolean check(com.android.tools.r8.ir.code.IRCode):46 -> a
    24:24:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    24:24:boolean check(com.android.tools.r8.ir.code.Return,com.android.tools.r8.graph.DexEncodedMethod):81 -> a
    24:24:boolean check(com.android.tools.r8.ir.code.IRCode):46 -> a
    25:25:boolean check(com.android.tools.r8.ir.code.Return,com.android.tools.r8.graph.DexEncodedMethod):82:82 -> a
    25:25:boolean check(com.android.tools.r8.ir.code.IRCode):46 -> a
    26:27:boolean check(com.android.tools.r8.ir.code.IRCode):49:50 -> a
    28:28:boolean check(com.android.tools.r8.ir.code.StaticPut):89:89 -> a
    28:28:boolean check(com.android.tools.r8.ir.code.IRCode):50 -> a
    29:30:boolean check(com.android.tools.r8.ir.code.IRCode):53:54 -> a
    31:34:boolean check(com.android.tools.r8.ir.code.Throw):113:116 -> a
    31:34:boolean check(com.android.tools.r8.ir.code.IRCode):54 -> a
    35:37:boolean check(com.android.tools.r8.ir.code.Throw):115:117 -> a
    35:37:boolean check(com.android.tools.r8.ir.code.IRCode):54 -> a
    38:42:boolean checkFieldPut(com.android.tools.r8.ir.code.FieldInstruction):93:97 -> a
    43:52:boolean checkFieldPut(com.android.tools.r8.ir.code.FieldInstruction):96:105 -> a
    53:53:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    53:53:boolean checkFieldPut(com.android.tools.r8.ir.code.FieldInstruction):105 -> a
    54:54:boolean checkFieldPut(com.android.tools.r8.ir.code.FieldInstruction):106:106 -> a
    55:57:boolean isSubtypeOf(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):122:124 -> a
com.android.tools.r8.ir.analysis.ValueMayDependOnEnvironmentAnalysis -> com.android.tools.r8.t.a.h:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set knownNotToDependOnEnvironment -> d
    java.util.Set visited -> e
    com.android.tools.r8.graph.DexType context -> c
    boolean $assertionsDisabled -> g
    com.android.tools.r8.ir.code.IRCode code -> b
    java.util.Map finalFieldPuts -> f
    1:1:void <clinit>():71:71 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):84:84 -> <init>
    2:12:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):77:87 -> <init>
    1:11:boolean valueMayNotDependOnEnvironmentAssumingArrayDoesNotDependOnEnvironment(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.Set):134:144 -> a
    12:13:boolean isConstantArrayThroughoutMethod(com.android.tools.r8.ir.code.Value):154:155 -> a
    14:55:boolean valueMayBeMutatedBeforeMethodExit(com.android.tools.r8.ir.code.Value,java.util.Set,java.util.Set):363:404 -> a
    56:67:boolean isAliasOfValueThatIsIndependentOfEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):427:438 -> a
    68:68:java.lang.Object com.android.tools.r8.utils.ListUtils.first(java.util.List):16:16 -> a
    68:68:boolean isAliasOfValueThatIsIndependentOfEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):441 -> a
    69:70:boolean isAliasOfValueThatIsIndependentOfEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):441:442 -> a
    71:76:java.util.Map computeFinalFieldPuts():450:455 -> a
    77:77:boolean com.android.tools.r8.graph.DexEncodedField.isFinal():134:134 -> a
    77:77:java.util.Map computeFinalFieldPuts():455 -> a
    78:82:java.util.Map computeFinalFieldPuts():456:460 -> a
    83:83:java.util.List lambda$computeFinalFieldPuts$0(com.android.tools.r8.graph.DexEncodedField):456:456 -> a
    1:2:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value):91:92 -> b
    3:119:boolean isConstantArrayThroughoutMethod(com.android.tools.r8.ir.code.Value,java.util.Set):161:277 -> b
    1:8:boolean isNewInstanceWithoutEnvironmentDependentFields(com.android.tools.r8.ir.code.Value,java.util.Set):285:292 -> c
    9:9:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> c
    9:9:boolean isNewInstanceWithoutEnvironmentDependentFields(com.android.tools.r8.ir.code.Value,java.util.Set):292 -> c
    10:45:boolean isNewInstanceWithoutEnvironmentDependentFields(com.android.tools.r8.ir.code.Value,java.util.Set):292:327 -> c
    46:46:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> c
    46:46:boolean isNewInstanceWithoutEnvironmentDependentFields(com.android.tools.r8.ir.code.Value,java.util.Set):327 -> c
    47:64:boolean isNewInstanceWithoutEnvironmentDependentFields(com.android.tools.r8.ir.code.Value,java.util.Set):332:349 -> c
    65:72:boolean isNewInstanceWithoutEnvironmentDependentFields(com.android.tools.r8.ir.code.Value,java.util.Set):348:355 -> c
    1:31:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):98:128 -> d
    32:47:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):113:128 -> d
    48:60:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):116:128 -> d
    61:70:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):119:128 -> d
    71:77:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):122:128 -> d
    78:79:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):127:128 -> d
    80:82:boolean valueMayDependOnEnvironment(com.android.tools.r8.ir.code.Value,java.util.Set):127:129 -> d
com.android.tools.r8.ir.analysis.constant.Bottom -> com.android.tools.r8.t.a.i.a:
    com.android.tools.r8.ir.analysis.constant.Bottom INSTANCE -> a
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():9:9 -> <init>
    com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement) -> a
    boolean isBottom() -> c
    1:1:com.android.tools.r8.ir.analysis.constant.Bottom getInstance():13:13 -> g
com.android.tools.r8.ir.analysis.constant.ConstLatticeElement -> com.android.tools.r8.t.a.i.b:
    com.android.tools.r8.ir.code.ConstNumber value -> a
    1:2:void <init>(com.android.tools.r8.ir.code.ConstNumber):11:12 -> <init>
    com.android.tools.r8.ir.analysis.constant.ConstLatticeElement asConst() -> a
    1:12:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):17:28 -> a
    boolean isConst() -> d
    1:1:com.android.tools.r8.ir.code.ConstNumber getConstNumber():47:47 -> g
    1:1:int getIntValue():51:51 -> h
    1:1:java.lang.String toString():43:43 -> toString
com.android.tools.r8.ir.analysis.constant.ConstRangeLatticeElement -> com.android.tools.r8.t.a.i.c:
    com.android.tools.r8.ir.code.Value value -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():8:8 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.Value):11:13 -> <init>
    1:8:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):18:25 -> a
    9:9:com.android.tools.r8.ir.code.Value getConstRange():44:44 -> a
    9:9:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):26 -> a
    10:10:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):26:26 -> a
    11:11:com.android.tools.r8.ir.code.Value getConstRange():44:44 -> a
    11:11:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):26 -> a
    12:16:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):26:30 -> a
    com.android.tools.r8.ir.analysis.constant.ConstRangeLatticeElement asConstRange() -> b
    boolean isValueRange() -> f
    1:1:com.android.tools.r8.ir.code.Value getConstRange():44:44 -> g
    1:1:java.lang.String toString():40:40 -> toString
com.android.tools.r8.ir.analysis.constant.LatticeElement -> com.android.tools.r8.t.a.i.d:
    1:1:void <init>():6:6 -> <init>
    com.android.tools.r8.ir.analysis.constant.ConstLatticeElement asConst() -> a
    com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement) -> a
    com.android.tools.r8.ir.analysis.constant.ConstRangeLatticeElement asConstRange() -> b
    boolean isBottom() -> c
    boolean isConst() -> d
    boolean isTop() -> e
    boolean isValueRange() -> f
com.android.tools.r8.ir.analysis.constant.SparseConditionalConstantPropagation -> com.android.tools.r8.t.a.i.e:
    java.util.Deque flowEdges -> d
    java.util.BitSet visitedBlocks -> g
    java.util.Map mapping -> b
    java.util.Deque ssaEdges -> c
    java.util.BitSet[] executableFlowEdges -> f
    com.android.tools.r8.ir.code.IRCode code -> a
    boolean $assertionsDisabled -> h
    int nextBlockNumber -> e
    1:1:void <clinit>():30:30 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.IRCode):40:40 -> <init>
    2:13:void <init>(com.android.tools.r8.ir.code.IRCode):33:44 -> <init>
    1:41:void rewriteCode():80:120 -> a
    42:42:boolean lambda$rewriteCode$0(java.util.Map$Entry):83:83 -> a
    43:68:void lambda$rewriteCode$3(java.util.List,java.util.Map$Entry):86:111 -> a
    69:69:boolean lambda$rewriteCode$1(com.android.tools.r8.ir.code.Instruction):99:99 -> a
    70:70:boolean lambda$rewriteCode$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction):110:110 -> a
    71:71:com.android.tools.r8.ir.analysis.constant.LatticeElement getLatticeElement(com.android.tools.r8.ir.code.Value):124:124 -> a
    72:87:void visitPhi(com.android.tools.r8.ir.code.Phi):132:147 -> a
    88:88:com.android.tools.r8.ir.analysis.constant.LatticeElement getLatticeElement(com.android.tools.r8.ir.code.Value):124:124 -> a
    88:88:void visitPhi(com.android.tools.r8.ir.code.Phi):148 -> a
    89:90:void visitPhi(com.android.tools.r8.ir.code.Phi):149:150 -> a
    91:91:void setLatticeElement(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.constant.LatticeElement):128:128 -> a
    91:91:void visitPhi(com.android.tools.r8.ir.code.Phi):151 -> a
    92:95:void visitInstructions(com.android.tools.r8.ir.code.BasicBlock):157:160 -> a
    96:100:boolean isExecutableEdge(int,int):250:254 -> a
    1:28:void run():49:76 -> b
    29:46:void run():53:70 -> b
    47:51:void visitInstruction(com.android.tools.r8.ir.code.Instruction):164:168 -> b
    52:52:void setLatticeElement(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.constant.LatticeElement):128:128 -> b
    52:52:void visitInstruction(com.android.tools.r8.ir.code.Instruction):168 -> b
    53:57:void visitInstruction(com.android.tools.r8.ir.code.Instruction):169:173 -> b
    58:115:void addFlowEdgesForJumpInstruction(com.android.tools.r8.ir.code.JumpInstruction):178:235 -> b
    58:115:void visitInstruction(com.android.tools.r8.ir.code.Instruction):173 -> b
    116:121:void setExecutableEdge(int,int):241:246 -> b
com.android.tools.r8.ir.analysis.constant.Top -> com.android.tools.r8.t.a.i.f:
    com.android.tools.r8.ir.analysis.constant.Top INSTANCE -> a
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():9:9 -> <init>
    com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement) -> a
    boolean isTop() -> e
    1:1:com.android.tools.r8.ir.analysis.constant.Top getInstance():13:13 -> g
com.android.tools.r8.ir.analysis.equivalence.BasicBlockBehavioralSubsumption -> com.android.tools.r8.t.a.j.a:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.DexType context -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():33:33 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):38:40 -> <init>
    1:1:boolean isSubsumedBy(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):44:44 -> a
    2:5:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):51:54 -> a
    6:6:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):53:53 -> a
    7:22:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):52:67 -> a
    23:35:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):66:78 -> a
    36:57:boolean passesIdenticalValuesForPhis(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):245:266 -> a
    36:57:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):77 -> a
    58:58:boolean passesIdenticalValuesForPhis(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):265:265 -> a
    58:58:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):77 -> a
    59:75:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):80:96 -> a
    76:77:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Object):16:17 -> a
    76:77:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):96 -> a
    78:104:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):98:124 -> a
    105:110:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):123:128 -> a
    111:112:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Object):16:17 -> a
    111:112:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):129 -> a
    113:122:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):133:142 -> a
    123:123:boolean isSubsumedBy(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.InstructionIterator,java.util.Set):141:141 -> a
    124:130:boolean definesValueWithNonLocalUsages(com.android.tools.r8.ir.code.Instruction):159:165 -> a
    131:139:boolean valuesAreIdentical(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):178:186 -> a
    140:182:boolean instructionsDefineIdenticalValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):190:232 -> a
    140:182:boolean valuesAreIdentical(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):186 -> a
    1:1:boolean instructionMayHaveSideEffects(com.android.tools.r8.ir.code.Instruction):174:174 -> b
    1:1:boolean definesBlockLocalValue(com.android.tools.r8.ir.code.Instruction):155:155 -> c
    1:1:boolean isBlockLocalInstructionWithoutSideEffects(com.android.tools.r8.ir.code.Instruction):151 -> c
    2:2:boolean instructionMayHaveSideEffects(com.android.tools.r8.ir.code.Instruction):174:174 -> c
    2:2:boolean isBlockLocalInstructionWithoutSideEffects(com.android.tools.r8.ir.code.Instruction):151 -> c
com.android.tools.r8.ir.analysis.escape.EscapeAnalysis -> com.android.tools.r8.t.a.k.a:
    java.util.Deque valuesToTrack -> d
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set trackedValues -> c
    com.android.tools.r8.ir.analysis.escape.EscapeAnalysisConfiguration configuration -> b
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysisConfiguration):43:43 -> <init>
    2:13:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysisConfiguration):34:45 -> <init>
    1:1:boolean lambda$isEscaping$0(com.android.tools.r8.utils.Box,com.android.tools.r8.ir.code.Instruction):60:60 -> a
    2:10:java.util.Set computeEscapeRoutes(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):73:81 -> a
    11:11:boolean lambda$computeEscapeRoutes$1(com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder,com.android.tools.r8.ir.code.Instruction):78:78 -> a
    12:31:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,java.util.function.Predicate):86:105 -> a
    32:47:boolean processValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.function.Predicate):125:140 -> a
    32:47:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,java.util.function.Predicate):108 -> a
    48:76:boolean isDirectlyEscaping(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod,java.util.List):178:206 -> a
    48:76:boolean processValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.function.Predicate):141 -> a
    48:76:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,java.util.function.Predicate):108 -> a
    77:92:boolean processValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.function.Predicate):142:157 -> a
    77:92:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,java.util.function.Predicate):108 -> a
    93:97:com.android.tools.r8.ir.code.Value getPropagatedSubject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction):216:220 -> a
    93:97:boolean processValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.function.Predicate):160 -> a
    93:97:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,java.util.function.Predicate):108 -> a
    98:99:boolean processValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.function.Predicate):162:163 -> a
    98:99:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,java.util.function.Predicate):108 -> a
    100:101:void run(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,java.util.function.Predicate):114:115 -> a
    102:104:void addToWorklist(com.android.tools.r8.ir.code.Value):170:172 -> a
    1:9:boolean isEscaping(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):55:63 -> b
    10:10:boolean isValueOfInterestOrAlias(com.android.tools.r8.ir.code.Value):212:212 -> b
com.android.tools.r8.ir.analysis.escape.EscapeAnalysisConfiguration -> com.android.tools.r8.t.a.k.b:
com.android.tools.r8.ir.analysis.fieldaccess.FieldBitAccessAnalysis -> com.android.tools.r8.t.a.l.a:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():20:20 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.AppView):24:26 -> <init>
    1:22:void recordFieldAccesses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):30:51 -> a
    23:45:int computeBitsRead(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexEncodedField):59:81 -> a
    23:45:void recordFieldAccesses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):52 -> a
    46:46:void recordFieldAccesses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):52:52 -> a
    47:63:boolean isOnlyUsedToUpdateFieldValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexEncodedField):91:107 -> a
com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet -> com.android.tools.r8.t.a.m.a:
    1:1:void <clinit>():25:25 -> <clinit>
    1:1:void <init>():25:25 -> <init>
    boolean contains(com.android.tools.r8.graph.DexEncodedField) -> a
    boolean isConcreteFieldSet() -> a
    com.android.tools.r8.ir.analysis.fieldvalueanalysis.ConcreteMutableFieldSet asConcreteFieldSet() -> b
    com.android.tools.r8.ir.analysis.fieldvalueanalysis.KnownFieldSet asKnownFieldSet() -> c
    boolean isBottom() -> d
    boolean isKnownFieldSet() -> e
    boolean isTop() -> f
com.android.tools.r8.ir.analysis.fieldvalueanalysis.ConcreteMutableFieldSet -> com.android.tools.r8.t.a.m.b:
    java.util.Set fields -> a
    1:2:void <init>():18:19 -> <init>
    3:4:void <init>(com.android.tools.r8.graph.DexEncodedField):22:23 -> <init>
    boolean isConcreteFieldSet() -> a
    1:1:com.android.tools.r8.ir.analysis.fieldvalueanalysis.ConcreteMutableFieldSet addAll(com.android.tools.r8.ir.analysis.fieldvalueanalysis.ConcreteMutableFieldSet):31:31 -> a
    2:2:boolean contains(com.android.tools.r8.graph.DexEncodedField):64:64 -> a
    com.android.tools.r8.ir.analysis.fieldvalueanalysis.ConcreteMutableFieldSet asConcreteFieldSet() -> b
    1:1:void add(com.android.tools.r8.graph.DexEncodedField):27:27 -> b
    com.android.tools.r8.ir.analysis.fieldvalueanalysis.KnownFieldSet asKnownFieldSet() -> c
    boolean isKnownFieldSet() -> e
    1:5:boolean equals(java.lang.Object):82:86 -> equals
    1:1:int hashCode():74:74 -> hashCode
    1:1:int size():69:69 -> size
com.android.tools.r8.ir.analysis.fieldvalueanalysis.EmptyFieldSet -> com.android.tools.r8.t.a.m.c:
    com.android.tools.r8.ir.analysis.fieldvalueanalysis.EmptyFieldSet INSTANCE -> a
    1:1:void <clinit>():11:11 -> <clinit>
    1:1:void <init>():13:13 -> <init>
    boolean contains(com.android.tools.r8.graph.DexEncodedField) -> a
    com.android.tools.r8.ir.analysis.fieldvalueanalysis.KnownFieldSet asKnownFieldSet() -> c
    boolean isBottom() -> d
    boolean isKnownFieldSet() -> e
    1:1:com.android.tools.r8.ir.analysis.fieldvalueanalysis.EmptyFieldSet getInstance():16:16 -> g
com.android.tools.r8.ir.analysis.fieldvalueanalysis.FieldValueAnalysis -> com.android.tools.r8.t.a.m.d:
    com.android.tools.r8.ir.optimize.info.OptimizationFeedback feedback -> d
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.DexProgramClass clazz -> b
    com.android.tools.r8.graph.DexEncodedMethod method -> e
    boolean $assertionsDisabled -> g
    com.android.tools.r8.ir.code.IRCode code -> c
    java.util.Map fieldsMaybeReadBeforeBlockInclusiveCache -> f
    1:1:void <clinit>():45:45 -> <clinit>
    1:8:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):60:67 -> <init>
    1:8:void run(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod):72:79 -> a
    9:9:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    9:9:void run(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod):79 -> a
    10:25:void run(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod):79:94 -> a
    26:26:boolean lambda$run$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):85:85 -> a
    27:66:void computeFieldOptimizationInfo():106:145 -> a
    67:68:boolean com.android.tools.r8.ir.code.DominatorTree.dominatesAllOf(com.android.tools.r8.ir.code.BasicBlock,java.lang.Iterable):118:119 -> a
    67:68:void computeFieldOptimizationInfo():145 -> a
    69:69:boolean fieldMaybeReadBeforeInstruction(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Instruction):158:158 -> a
    69:69:void computeFieldOptimizationInfo():149 -> a
    70:70:boolean fieldMaybeReadBeforeBlock(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.BasicBlock):184:184 -> a
    70:70:boolean fieldMaybeReadBeforeInstruction(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Instruction):161 -> a
    70:70:void computeFieldOptimizationInfo():149 -> a
    71:74:java.util.Map getOrCreateFieldsMaybeReadBeforeBlockInclusive():98:101 -> a
    71:74:boolean fieldMaybeReadBeforeBlockInclusive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.BasicBlock):194 -> a
    71:74:boolean fieldMaybeReadBeforeBlock(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.BasicBlock):185 -> a
    71:74:boolean fieldMaybeReadBeforeInstruction(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Instruction):161 -> a
    71:74:void computeFieldOptimizationInfo():149 -> a
    75:75:boolean fieldMaybeReadBeforeBlockInclusive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.BasicBlock):194:194 -> a
    75:75:boolean fieldMaybeReadBeforeBlock(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.BasicBlock):185 -> a
    75:75:boolean fieldMaybeReadBeforeInstruction(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Instruction):161 -> a
    75:75:void computeFieldOptimizationInfo():149 -> a
    76:83:boolean fieldMaybeReadBeforeInstruction(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Instruction):167:174 -> a
    76:83:void computeFieldOptimizationInfo():149 -> a
    84:84:void computeFieldOptimizationInfo():152:152 -> a
    85:85:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):284:284 -> a
    85:85:void computeFieldOptimizationInfo():152 -> a
    86:87:com.android.tools.r8.ir.analysis.value.AbstractValue computeAbstractValue(com.android.tools.r8.ir.code.Value):312:313 -> a
    86:87:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):285 -> a
    86:87:void computeFieldOptimizationInfo():152 -> a
    88:125:com.android.tools.r8.ir.analysis.value.SingleEnumValue getSingleEnumValue(com.android.tools.r8.ir.code.Value):335:372 -> a
    88:125:com.android.tools.r8.ir.analysis.value.AbstractValue computeAbstractValue(com.android.tools.r8.ir.code.Value):314 -> a
    88:125:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):285 -> a
    88:125:void computeFieldOptimizationInfo():152 -> a
    126:128:com.android.tools.r8.ir.analysis.value.SingleEnumValue getSingleEnumValue(com.android.tools.r8.ir.code.Value):363:365 -> a
    126:128:com.android.tools.r8.ir.analysis.value.AbstractValue computeAbstractValue(com.android.tools.r8.ir.code.Value):314 -> a
    126:128:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):285 -> a
    126:128:void computeFieldOptimizationInfo():152 -> a
    129:130:com.android.tools.r8.ir.analysis.value.SingleEnumValue getSingleEnumValue(com.android.tools.r8.ir.code.Value):355:356 -> a
    129:130:com.android.tools.r8.ir.analysis.value.AbstractValue computeAbstractValue(com.android.tools.r8.ir.code.Value):314 -> a
    129:130:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):285 -> a
    129:130:void computeFieldOptimizationInfo():152 -> a
    131:136:boolean isEnumValuesArray(com.android.tools.r8.ir.code.Value):393:398 -> a
    131:136:com.android.tools.r8.ir.analysis.value.SingleEnumValue getSingleEnumValue(com.android.tools.r8.ir.code.Value):356 -> a
    131:136:com.android.tools.r8.ir.analysis.value.AbstractValue computeAbstractValue(com.android.tools.r8.ir.code.Value):314 -> a
    131:136:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):285 -> a
    131:136:void computeFieldOptimizationInfo():152 -> a
    137:155:boolean isEnumValuesArray(com.android.tools.r8.ir.code.Value):396:414 -> a
    137:155:com.android.tools.r8.ir.analysis.value.SingleEnumValue getSingleEnumValue(com.android.tools.r8.ir.code.Value):356 -> a
    137:155:com.android.tools.r8.ir.analysis.value.AbstractValue computeAbstractValue(com.android.tools.r8.ir.code.Value):314 -> a
    137:155:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):285 -> a
    137:155:void computeFieldOptimizationInfo():152 -> a
    156:156:com.android.tools.r8.ir.analysis.value.SingleEnumValue getSingleEnumValue(com.android.tools.r8.ir.code.Value):389:389 -> a
    156:156:com.android.tools.r8.ir.analysis.value.AbstractValue computeAbstractValue(com.android.tools.r8.ir.code.Value):314 -> a
    156:156:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):285 -> a
    156:156:void computeFieldOptimizationInfo():152 -> a
    157:160:com.android.tools.r8.ir.analysis.value.AbstractValue computeAbstractValue(com.android.tools.r8.ir.code.Value):319:322 -> a
    157:160:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):285 -> a
    157:160:void computeFieldOptimizationInfo():152 -> a
    161:161:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):286:286 -> a
    161:161:void computeFieldOptimizationInfo():152 -> a
    162:162:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():139:139 -> a
    162:162:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):287 -> a
    162:162:void computeFieldOptimizationInfo():152 -> a
    163:164:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):288:289 -> a
    163:164:void computeFieldOptimizationInfo():152 -> a
    165:184:void updateFieldOptimizationInfo(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.Value):288:307 -> a
    165:184:void computeFieldOptimizationInfo():152 -> a
    185:185:java.util.LinkedList lambda$computeFieldOptimizationInfo$1(com.android.tools.r8.graph.DexEncodedField):123:123 -> a
    186:186:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet lambda$createFieldsMaybeReadBeforeBlockInclusive$2(com.android.tools.r8.ir.code.BasicBlock):209:209 -> a
    1:75:java.util.Map createFieldsMaybeReadBeforeBlockInclusive():202:276 -> b
com.android.tools.r8.ir.analysis.fieldvalueanalysis.KnownFieldSet -> com.android.tools.r8.t.a.m.e:
    boolean isConcreteFieldSet() -> a
    com.android.tools.r8.ir.analysis.fieldvalueanalysis.ConcreteMutableFieldSet asConcreteFieldSet() -> b
com.android.tools.r8.ir.analysis.fieldvalueanalysis.UnknownFieldSet -> com.android.tools.r8.t.a.m.f:
    com.android.tools.r8.ir.analysis.fieldvalueanalysis.UnknownFieldSet INSTANCE -> a
    1:1:void <clinit>():11:11 -> <clinit>
    1:1:void <init>():13:13 -> <init>
    boolean contains(com.android.tools.r8.graph.DexEncodedField) -> a
    boolean isTop() -> f
    1:1:com.android.tools.r8.ir.analysis.fieldvalueanalysis.UnknownFieldSet getInstance():16:16 -> g
com.android.tools.r8.ir.analysis.modeling.LibraryMethodReadSetModeling -> com.android.tools.r8.t.a.n.a:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():17:17 -> <clinit>
    1:23:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet getModeledReadSetOrUnknown(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexItemFactory):21:43 -> a
com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker -> com.android.tools.r8.t.a.o.c:
    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> b
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set classesWithRemovedExtensionFields -> c
    java.util.Set removedExtensionFields -> d
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():75:75 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.ProtoReferences):84:84 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.ProtoReferences):80:87 -> <init>
    1:1:com.android.tools.r8.shaking.TreePrunerConfiguration run(com.android.tools.r8.shaking.Enqueuer$Mode):101:101 -> a
    2:12:com.android.tools.r8.shaking.TreePrunerConfiguration createTreePrunerConfiguration(com.android.tools.r8.shaking.Enqueuer$Mode):111:121 -> a
    2:12:com.android.tools.r8.shaking.TreePrunerConfiguration run(com.android.tools.r8.shaking.Enqueuer$Mode):102 -> a
    13:16:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):130:133 -> a
    17:28:void rewriteClassInitializer(com.android.tools.r8.ir.code.IRCode):138:149 -> a
    29:29:void postOptimizeGeneratedExtensionRegistry(com.android.tools.r8.ir.conversion.IRConverter):158:158 -> a
    30:31:void lambda$postOptimizeGeneratedExtensionRegistry$0(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod):162:163 -> a
    32:32:void lambda$postOptimizeGeneratedExtensionRegistry$0(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod):160:160 -> a
    33:37:boolean isDeadProtoExtensionField(com.android.tools.r8.graph.DexField):181:185 -> a
    38:38:boolean isDeadProtoExtensionField(com.android.tools.r8.graph.DexField):184:184 -> a
    39:48:boolean isDeadProtoExtensionField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.FieldAccessInfoCollection,java.util.Set):194:203 -> a
    49:49:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    49:49:boolean isDeadProtoExtensionField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.FieldAccessInfoCollection,java.util.Set):203 -> a
    50:61:boolean isDeadProtoExtensionField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.FieldAccessInfoCollection,java.util.Set):204:215 -> a
    62:64:void forEachDeadProtoExtensionField(java.util.function.Consumer):219:221 -> a
    65:67:void lambda$forEachDeadProtoExtensionField$1(java.util.function.Consumer,com.android.tools.r8.graph.FieldAccessInfo):223:225 -> a
    68:98:void logRemainingProtoExtensionFields():232:262 -> a
    99:115:void logRemainingProtoExtensionFields():259:275 -> a
    116:119:void lambda$logRemainingProtoExtensionFields$2(java.util.function.Predicate,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):237:240 -> a
    120:130:void lambda$logRemainingProtoExtensionFields$2(java.util.function.Predicate,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):237:247 -> a
    131:131:void lambda$logRemainingProtoExtensionFields$2(java.util.function.Predicate,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):245:245 -> a
    132:134:void lambda$logRemainingProtoExtensionFields$3(java.lang.StringBuilder,com.android.tools.r8.graph.DexMethod):272:274 -> a
    135:135:java.util.function.Predicate getSkipPredicate(java.nio.file.Path):316:316 -> a
    1:2:void recordDeadProtoExtensionField(com.android.tools.r8.graph.DexField):106:107 -> b
    3:10:void forEachFindLiteExtensionByNumberMethod(java.util.function.Consumer):167:174 -> b
    1:1:boolean wasRemoved(com.android.tools.r8.graph.DexField):154:154 -> c
com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker$1 -> com.android.tools.r8.t.a.o.a:
    com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker this$0 -> a
    1:1:void <init>(com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):112:112 -> <init>
    1:1:boolean isReachableOrReferencedField(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DexEncodedField):117:117 -> isReachableOrReferencedField
com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker$2 -> com.android.tools.r8.t.a.o.b:
    java.util.function.Predicate val$skip -> a
    java.util.Set val$remainingProtoExtensionFieldReads -> b
    1:1:void <init>(com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker,com.android.tools.r8.graph.DexItemFactory,java.util.function.Predicate,java.util.Set):247:247 -> <init>
    1:2:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):251:252 -> registerStaticFieldRead
com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteBuilderShrinker -> com.android.tools.r8.t.a.o.e:
    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> b
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():39:39 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.ProtoReferences):45:47 -> <init>
    1:2:boolean deferDeadProtoBuilders(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BooleanSupplier):53:54 -> a
    3:10:void addInliningHeuristicsForBuilderInlining(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,java.util.Set):66:73 -> a
    11:20:void preprocessCallGraphBeforeCycleElimination(java.util.Map):77:86 -> a
    21:33:void inlineCallsToDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner):98:110 -> a
    34:34:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):144:144 -> a
    35:35:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    35:35:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):145 -> a
    36:46:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):147:157 -> a
    47:47:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences.isDynamicMethodBridge(com.android.tools.r8.graph.DexMethod):117:117 -> a
    47:47:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):158 -> a
    48:50:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):161:163 -> a
    51:54:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences$MethodToInvokeMembers.isNewMutableInstanceEnum(com.android.tools.r8.ir.code.Value):232:235 -> a
    51:54:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):163 -> a
    55:55:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences$MethodToInvokeMembers.isNewMutableInstanceEnum(com.android.tools.r8.graph.DexField):228:228 -> a
    55:55:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences$MethodToInvokeMembers.isNewMutableInstanceEnum(com.android.tools.r8.ir.code.Value):235 -> a
    55:55:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):163 -> a
    56:60:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):167:171 -> a
    61:61:com.android.tools.r8.ir.analysis.type.TypeLatticeElement com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement.asMaybeNull():87:87 -> a
    61:61:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):172 -> a
    62:64:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):172:174 -> a
    65:65:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences$MethodToInvokeMembers.isNewMutableInstanceEnum(com.android.tools.r8.ir.code.Value):232:232 -> a
    65:65:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):163 -> a
    66:67:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):178:179 -> a
    68:68:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    68:68:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):179 -> a
    69:69:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):179:179 -> a
    70:70:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    70:70:void strengthenCheckCastInstructions(com.android.tools.r8.ir.code.IRCode):145 -> a
com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteBuilderShrinker$RootSetExtension -> com.android.tools.r8.t.a.o.d:
    java.util.Set bypassClinitforInlining -> g
    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> b
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set neverMerge -> d
    java.util.Set alwaysInline -> e
    java.util.Set neverInline -> f
    com.android.tools.r8.utils.PredicateSet alwaysClassInline -> c
    1:8:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,java.util.Set):201:208 -> <init>
    1:1:void alwaysClassInlineGeneratedMessageLiteBuilders():227:227 -> a
    2:3:boolean lambda$alwaysClassInlineGeneratedMessageLiteBuilders$0(com.android.tools.r8.graph.DexType):230:231 -> a
    4:4:boolean lambda$bypassClinitforInliningNewBuilderMethods$1(com.android.tools.r8.graph.DexEncodedMethod):240:240 -> a
    1:2:void bypassClinitforInliningNewBuilderMethods():235:236 -> b
    3:3:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    3:3:void bypassClinitforInliningNewBuilderMethods():236 -> b
    4:10:void bypassClinitforInliningNewBuilderMethods():236:242 -> b
    1:1:void extend():212:212 -> c
    2:2:void alwaysInlineCreateBuilderFromGeneratedMessageLite():253:253 -> c
    2:2:void extend():215 -> c
    3:3:void neverInlineIsInitializedFromGeneratedMessageLite():269:269 -> c
    3:3:void extend():216 -> c
    4:4:void extend():219:219 -> c
    5:5:void alwaysInlineBuildPartialFromGeneratedMessageLiteExtendableBuilder():249:249 -> c
    5:5:void extend():222 -> c
    6:7:void neverMergeGeneratedMessageLiteBuilder():260:261 -> c
    6:7:void extend():223 -> c
com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteShrinker -> com.android.tools.r8.t.a.o.f:
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement objectArrayType -> f
    com.android.tools.r8.ir.analysis.proto.RawMessageInfoEncoder encoder -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> d
    com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder decoder -> b
    boolean $assertionsDisabled -> h
    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> e
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement stringType -> g
    1:1:void <clinit>():38:38 -> <clinit>
    1:11:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder,com.android.tools.r8.ir.analysis.proto.ProtoReferences):52:62 -> <init>
    12:14:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder,com.android.tools.r8.ir.analysis.proto.ProtoReferences):61:63 -> <init>
    1:1:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):67:67 -> a
    2:2:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):99:99 -> a
    2:2:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    3:3:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    3:3:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):99 -> a
    3:3:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    4:16:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):100:112 -> a
    4:16:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    17:17:void rewriteInfoArgumentToNewMessageInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):139:139 -> a
    17:17:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):133 -> a
    17:17:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    17:17:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    18:18:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    18:18:void rewriteInfoArgumentToNewMessageInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):141 -> a
    18:18:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):133 -> a
    18:18:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    18:18:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    19:19:void rewriteInfoArgumentToNewMessageInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):141:141 -> a
    19:19:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):133 -> a
    19:19:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    19:19:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    20:20:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298:298 -> a
    20:20:void rewriteInfoArgumentToNewMessageInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):139 -> a
    20:20:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):133 -> a
    20:20:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    20:20:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    21:21:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    21:21:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298 -> a
    21:21:void rewriteInfoArgumentToNewMessageInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):139 -> a
    21:21:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):133 -> a
    21:21:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    21:21:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    22:24:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):151:153 -> a
    22:24:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
    22:24:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    22:24:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    25:25:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.previous():29:29 -> a
    25:25:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):153 -> a
    25:25:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
    25:25:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    25:25:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    26:33:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):154:161 -> a
    26:33:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
    26:33:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    26:33:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    34:34:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    34:34:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):161 -> a
    34:34:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
    34:34:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    34:34:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    35:36:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):162:163 -> a
    35:36:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
    35:36:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    35:36:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    37:37:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):29:29 -> a
    37:37:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):162 -> a
    37:37:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
    37:37:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    37:37:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    38:40:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):167:169 -> a
    38:40:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
    38:40:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    38:40:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    41:41:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):29:29 -> a
    41:41:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):170 -> a
    41:41:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
    41:41:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    41:41:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    42:44:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):171:173 -> a
    42:44:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
    42:44:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    42:44:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    45:45:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):29:29 -> a
    45:45:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):171 -> a
    45:45:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
    45:45:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    45:45:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    46:53:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):175:182 -> a
    46:53:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
    46:53:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    46:53:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    54:56:void com.android.tools.r8.ir.analysis.proto.ProtoUtils.setObjectsValueForMessageInfoConstructionInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.ProtoReferences):31:33 -> a
    54:56:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):182 -> a
    54:56:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
    54:56:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    54:56:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    57:57:void rewriteObjectsArgumentToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):186:186 -> a
    57:57:void rewriteArgumentsToNewMessageInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):134 -> a
    57:57:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):115 -> a
    57:57:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    58:61:void rewriteDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):119:122 -> a
    58:61:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):68 -> a
    62:62:void postOptimizeDynamicMethods(com.android.tools.r8.ir.conversion.IRConverter):73:73 -> a
    63:64:void lambda$postOptimizeDynamicMethods$0(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod):77:78 -> a
    65:65:void lambda$postOptimizeDynamicMethods$0(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod):75:75 -> a
    66:69:void forEachDynamicMethod(java.util.function.Consumer):82:85 -> a
    70:73:com.android.tools.r8.ir.code.InvokeMethod getNewMessageInfoInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.analysis.proto.ProtoReferences):191:194 -> a
com.android.tools.r8.ir.analysis.proto.ProtoEnqueuerUseRegistry -> com.android.tools.r8.t.a.o.g:
    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> a
    com.android.tools.r8.shaking.EnqueuerUseRegistryFactory FACTORY -> b
    1:1:void <clinit>():19:19 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.Enqueuer):28:29 -> <init>
    1:1:com.android.tools.r8.shaking.EnqueuerUseRegistryFactory getFactory():33:33 -> a
    1:4:boolean registerConstClass(com.android.tools.r8.graph.DexType):45:48 -> registerConstClass
    1:4:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):60:63 -> registerStaticFieldRead
com.android.tools.r8.ir.analysis.proto.ProtoInliningReasonStrategy -> com.android.tools.r8.t.a.o.h:
    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy parent -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():22:22 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy):30:33 -> <init>
    1:1:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):39:39 -> a
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    2:2:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):39 -> a
    3:4:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):39:40 -> a
    5:5:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences.isAbstractGeneratedMessageLiteBuilder(com.android.tools.r8.graph.DexProgramClass):104:104 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):40 -> a
    6:14:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):41:49 -> a
    15:28:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReasonForDynamicMethod(com.android.tools.r8.ir.code.InvokeMethod):55:68 -> a
    15:28:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):48 -> a
    29:29:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences$MethodToInvokeMembers.isMethodToInvokeWithSimpleBody(com.android.tools.r8.graph.DexField):239:239 -> a
    29:29:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReasonForDynamicMethod(com.android.tools.r8.ir.code.InvokeMethod):69 -> a
    29:29:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):48 -> a
    30:33:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReasonForDynamicMethod(com.android.tools.r8.ir.code.InvokeMethod):70:73 -> a
    30:33:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):48 -> a
    34:34:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences$MethodToInvokeMembers.isMethodToInvokeWithNonSimpleBody(com.android.tools.r8.graph.DexField):247:247 -> a
    34:34:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReasonForDynamicMethod(com.android.tools.r8.ir.code.InvokeMethod):74 -> a
    34:34:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):48 -> a
    35:38:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReasonForDynamicMethod(com.android.tools.r8.ir.code.InvokeMethod):73:76 -> a
    35:38:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):48 -> a
    39:39:boolean com.android.tools.r8.ir.analysis.proto.ProtoReferences.isAbstractGeneratedMessageLiteBuilder(com.android.tools.r8.graph.DexProgramClass):104:104 -> a
    39:39:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):40 -> a
com.android.tools.r8.ir.analysis.proto.ProtoReferences -> com.android.tools.r8.t.a.o.i:
    com.android.tools.r8.graph.DexString newBuilderMethodName -> p
    com.android.tools.r8.ir.analysis.proto.ProtoReferences$GeneratedMessageLiteBuilderMethods generatedMessageLiteBuilderMethods -> k
    com.android.tools.r8.graph.DexType methodToInvokeType -> i
    com.android.tools.r8.ir.analysis.proto.ProtoReferences$GeneratedMessageLiteMethods generatedMessageLiteMethods -> j
    com.android.tools.r8.ir.analysis.proto.ProtoReferences$MethodToInvokeMembers methodToInvokeMembers -> m
    com.android.tools.r8.graph.DexProto dynamicMethodProto -> q
    com.android.tools.r8.graph.DexProto findLiteExtensionByNumberProto -> r
    com.android.tools.r8.ir.analysis.proto.ProtoReferences$GeneratedMessageLiteExtendableBuilderMethods generatedMessageLiteExtendableBuilderMethods -> l
    com.android.tools.r8.graph.DexType generatedMessageLiteType -> d
    com.android.tools.r8.graph.DexType generatedExtensionType -> c
    com.android.tools.r8.graph.DexType extensionRegistryLiteType -> b
    com.android.tools.r8.graph.DexType extendableMessageType -> a
    com.android.tools.r8.graph.DexMethod rawMessageInfoConstructor -> t
    com.android.tools.r8.graph.DexType messageLiteType -> h
    com.android.tools.r8.graph.DexMethod newMessageInfoMethod -> s
    com.android.tools.r8.graph.DexType rawMessageInfoType -> g
    com.android.tools.r8.graph.DexType generatedMessageLiteExtendableBuilderType -> f
    com.android.tools.r8.graph.DexString dynamicMethodName -> n
    com.android.tools.r8.graph.DexType generatedMessageLiteBuilderType -> e
    com.android.tools.r8.graph.DexString findLiteExtensionByNumberName -> o
    1:5:void <init>(com.android.tools.r8.graph.DexItemFactory):45:49 -> <init>
    6:12:void <init>(com.android.tools.r8.graph.DexItemFactory):48:54 -> <init>
    13:19:void <init>(com.android.tools.r8.graph.DexItemFactory):53:59 -> <init>
    20:24:void <init>(com.android.tools.r8.graph.DexItemFactory):58:62 -> <init>
    25:32:void <init>(com.android.tools.r8.graph.DexItemFactory):61:68 -> <init>
    33:54:void <init>(com.android.tools.r8.graph.DexItemFactory):67:88 -> <init>
    55:63:void <init>(com.android.tools.r8.graph.DexItemFactory):84:92 -> <init>
    64:74:void <init>(com.android.tools.r8.graph.DexItemFactory):90:100 -> <init>
    1:1:boolean isDynamicMethod(com.android.tools.r8.graph.DexMethod):109:109 -> a
    2:2:boolean isDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod):113:113 -> a
    3:3:boolean isGeneratedMessageLiteBuilder(com.android.tools.r8.graph.DexProgramClass):130:130 -> a
    4:4:boolean isAbstractGeneratedMessageLiteBuilder(com.android.tools.r8.graph.DexProgramClass):104:104 -> a
    4:4:boolean isGeneratedMessageLiteBuilder(com.android.tools.r8.graph.DexProgramClass):132 -> a
    1:1:boolean isDynamicMethodBridge(com.android.tools.r8.graph.DexEncodedMethod):121:121 -> b
    2:2:boolean isDynamicMethodBridge(com.android.tools.r8.graph.DexMethod):117:117 -> b
    2:2:boolean isDynamicMethodBridge(com.android.tools.r8.graph.DexEncodedMethod):121 -> b
    3:4:boolean isFindLiteExtensionByNumberMethod(com.android.tools.r8.graph.DexMethod):125:126 -> b
    1:1:boolean isMessageInfoConstructionMethod(com.android.tools.r8.graph.DexMethod):136:136 -> c
com.android.tools.r8.ir.analysis.proto.ProtoReferences$1 -> com.android.tools.r8.t.a.o.i$a:
com.android.tools.r8.ir.analysis.proto.ProtoReferences$GeneratedMessageLiteBuilderMethods -> com.android.tools.r8.t.a.o.i$b:
    com.android.tools.r8.graph.DexMethod constructorMethod -> a
    1:1:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.analysis.proto.ProtoReferences$1):164:164 -> <init>
    2:6:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):169:173 -> <init>
    7:14:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):171:178 -> <init>
    15:15:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):176:176 -> <init>
com.android.tools.r8.ir.analysis.proto.ProtoReferences$GeneratedMessageLiteExtendableBuilderMethods -> com.android.tools.r8.t.a.o.i$c:
    com.android.tools.r8.graph.DexMethod buildPartialMethod -> a
    1:1:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.analysis.proto.ProtoReferences$1):183:183 -> <init>
    2:6:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):187:191 -> <init>
    7:7:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):189:189 -> <init>
com.android.tools.r8.ir.analysis.proto.ProtoReferences$GeneratedMessageLiteMethods -> com.android.tools.r8.t.a.o.i$d:
    com.android.tools.r8.graph.DexMethod isInitializedMethod -> c
    com.android.tools.r8.graph.DexMethod dynamicMethodBridgeMethod -> b
    com.android.tools.r8.graph.DexMethod createBuilderMethod -> a
    1:1:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.analysis.proto.ProtoReferences$1):139:139 -> <init>
    2:6:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):145:149 -> <init>
    7:14:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):147:154 -> <init>
    15:22:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):152:159 -> <init>
    23:23:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):157:157 -> <init>
com.android.tools.r8.ir.analysis.proto.ProtoReferences$MethodToInvokeMembers -> com.android.tools.r8.t.a.o.i$e:
    com.android.tools.r8.graph.DexField newMutableInstanceField -> f
    com.android.tools.r8.graph.DexField newBuilderField -> e
    com.android.tools.r8.graph.DexField setMemoizedIsInitializedField -> g
    com.android.tools.r8.graph.DexField getDefaultInstanceField -> b
    com.android.tools.r8.graph.DexField buildMessageInfoField -> a
    com.android.tools.r8.graph.DexField getParserField -> d
    com.android.tools.r8.graph.DexField getMemoizedIsInitializedField -> c
    1:1:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.analysis.proto.ProtoReferences$1):196:196 -> <init>
    2:19:void <init>(com.android.tools.r8.ir.analysis.proto.ProtoReferences,com.android.tools.r8.graph.DexItemFactory):206:223 -> <init>
com.android.tools.r8.ir.analysis.proto.ProtoShrinker -> com.android.tools.r8.t.a.o.j:
    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory factory -> b
    com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteBuilderShrinker generatedMessageLiteBuilderShrinker -> e
    com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder decoder -> a
    com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker generatedExtensionRegistryShrinker -> c
    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> f
    com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteShrinker generatedMessageLiteShrinker -> d
    1:18:void <init>(com.android.tools.r8.graph.AppView):20:37 -> <init>
com.android.tools.r8.ir.analysis.proto.ProtoUtils -> com.android.tools.r8.t.a.o.k:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():11:11 -> <clinit>
    boolean isProto2(int) -> a
    1:3:com.android.tools.r8.ir.code.Value getInfoValueFromMessageInfoConstructionInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.ProtoReferences):17:19 -> a
    1:3:com.android.tools.r8.ir.code.Value getObjectsValueFromMessageInfoConstructionInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.analysis.proto.ProtoReferences):24:26 -> b
com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder -> com.android.tools.r8.t.a.o.m:
    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> b
    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory factory -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():69:69 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory,com.android.tools.r8.ir.analysis.proto.ProtoReferences):74:76 -> <init>
    boolean lambda$createObjectIterator$0(com.android.tools.r8.ir.code.NewArrayEmpty,com.android.tools.r8.ir.code.Instruction) -> a
    1:4:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.InvokeMethod):81:84 -> a
    5:43:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):90:128 -> a
    44:51:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):127:134 -> a
    52:58:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):133:139 -> a
    59:59:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):138:138 -> a
    60:60:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):136:136 -> a
    61:76:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):130:145 -> a
    77:82:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):144:149 -> a
    83:120:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):147:184 -> a
    121:127:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):181:187 -> a
    128:136:com.android.tools.r8.ir.analysis.proto.schema.ProtoObject createProtoObject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexClass):194:202 -> a
    137:138:com.android.tools.r8.graph.DexField com.android.tools.r8.graph.DexClass.lookupUniqueInstanceFieldWithName(com.android.tools.r8.graph.DexString):541:542 -> a
    137:138:com.android.tools.r8.ir.analysis.proto.schema.ProtoObject createProtoObject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexClass):202 -> a
    139:158:com.android.tools.r8.ir.analysis.proto.schema.ProtoObject createProtoObject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexClass):204:223 -> a
    159:159:boolean com.android.tools.r8.naming.dexitembasedstring.FieldNameComputationInfo.isForFieldName():0:0 -> a
    159:159:com.android.tools.r8.ir.analysis.proto.schema.ProtoObject createProtoObject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexClass):215 -> a
    160:170:com.android.tools.r8.ir.analysis.proto.schema.ProtoObject createProtoObject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexClass):225:235 -> a
    171:171:int invalidInfoFailure():239:239 -> a
    172:173:com.android.tools.r8.utils.ThrowingIntIterator createInfoIterator(com.android.tools.r8.ir.code.Value):248:249 -> a
    174:174:com.android.tools.r8.utils.ThrowingIntIterator createInfoIterator(com.android.tools.r8.graph.DexString):257:257 -> a
    174:174:com.android.tools.r8.utils.ThrowingIntIterator createInfoIterator(com.android.tools.r8.ir.code.Value):249 -> a
    175:175:com.android.tools.r8.utils.ThrowingIntIterator createInfoIterator(com.android.tools.r8.ir.code.Value):251:251 -> a
    1:1:com.android.tools.r8.ir.code.Value invalidObjectsFailure():243:243 -> b
    2:21:com.android.tools.r8.utils.ThrowingIterator createObjectIterator(com.android.tools.r8.ir.code.Value):303:322 -> b
    22:22:com.android.tools.r8.utils.ThrowingIterator createObjectIterator(com.android.tools.r8.ir.code.Value):315:315 -> b
    23:23:com.android.tools.r8.utils.ThrowingIterator createObjectIterator(com.android.tools.r8.ir.code.Value):304:304 -> b
com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder$1 -> com.android.tools.r8.t.a.o.l:
    com.android.tools.r8.graph.DexString val$info -> b
    com.android.tools.r8.utils.ThrowingCharIterator charIterator -> a
    1:3:void <init>(com.android.tools.r8.graph.DexString):257:259 -> <init>
    1:1:boolean hasNext():263:263 -> a
    1:1:boolean hasNext():263:263 -> b
    1:1:int nextInt():268 -> b
    2:7:int nextInt():276:281 -> b
    8:8:boolean hasNext():263:263 -> b
    8:8:int nextInt():288 -> b
    9:9:int nextInt():289:289 -> b
    10:10:int nextInt():278:278 -> b
    11:11:int nextInt():269:269 -> b
com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder$2 -> com.android.tools.r8.t.a.o.m$a:
    com.android.tools.r8.ir.code.Value val$objectsValue -> c
    com.android.tools.r8.ir.code.InstructionIterator val$instructionIterator -> b
    int expectedNextIndex -> a
    1:3:void <init>(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.Value):322:324 -> <init>
    1:2:boolean hasNext():328:329 -> a
    3:4:boolean isArrayPutOfInterest(com.android.tools.r8.ir.code.Instruction):361:362 -> a
    3:4:boolean hasNext():330 -> a
    5:8:boolean hasNext():333:336 -> a
    1:15:com.android.tools.r8.ir.code.Value next():343:357 -> b
    1:15:java.lang.Object next():322 -> b
    16:16:com.android.tools.r8.ir.code.Value next():353:353 -> b
    16:16:java.lang.Object next():322 -> b
    17:17:com.android.tools.r8.ir.code.Value next():344:344 -> b
    17:17:java.lang.Object next():322 -> b
com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder$InvalidRawMessageInfoException -> com.android.tools.r8.t.a.o.m$b:
    1:1:void <init>():367:367 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder$1):367:367 -> <init>
com.android.tools.r8.ir.analysis.proto.RawMessageInfoEncoder -> com.android.tools.r8.t.a.o.n:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> a
    1:2:void <init>(com.android.tools.r8.graph.DexItemFactory):24:25 -> <init>
    1:1:com.android.tools.r8.graph.DexString encodeInfo(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):29:29 -> a
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> a
    2:2:com.android.tools.r8.graph.DexString encodeInfo(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):29 -> a
    3:45:com.android.tools.r8.graph.DexString encodeInfo(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):30:72 -> a
    46:54:int countBytes(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):120:128 -> a
    46:54:com.android.tools.r8.graph.DexString encodeInfo(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):81 -> a
    46:54:com.android.tools.r8.graph.DexString encodeInfo(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):77 -> a
    55:70:com.android.tools.r8.graph.DexString encodeInfo(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):81:96 -> a
    55:70:com.android.tools.r8.graph.DexString encodeInfo(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):77 -> a
    1:12:java.util.List encodeObjects(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):100:111 -> b
com.android.tools.r8.ir.analysis.proto.schema.DeadProtoFieldObject -> com.android.tools.r8.t.a.o.o.a:
    com.android.tools.r8.graph.DexString name -> b
    com.android.tools.r8.graph.DexType holder -> a
    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):20:22 -> <init>
    1:1:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):27:27 -> a
    boolean isDeadProtoFieldObject() -> e
    1:1:java.lang.String toString():37:37 -> toString
com.android.tools.r8.ir.analysis.proto.schema.LiveProtoFieldObject -> com.android.tools.r8.t.a.o.o.b:
    com.android.tools.r8.graph.DexField field -> a
    1:2:void <init>(com.android.tools.r8.graph.DexField):23:24 -> <init>
    com.android.tools.r8.ir.analysis.proto.schema.LiveProtoFieldObject asLiveProtoFieldObject() -> a
    1:1:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):35:35 -> a
    2:2:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    2:2:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):34 -> a
    3:8:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):36:41 -> a
    boolean isLiveProtoFieldObject() -> f
    1:1:com.android.tools.r8.graph.DexField getField():28:28 -> j
    1:1:java.lang.String toString():56:56 -> toString
com.android.tools.r8.ir.analysis.proto.schema.ProtoEnqueuerExtension -> com.android.tools.r8.t.a.o.o.c:
    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory factory -> c
    java.util.Set dynamicMethodsWithTracedProtoObjects -> h
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.analysis.proto.ProtoReferences references -> d
    boolean $assertionsDisabled -> i
    com.android.tools.r8.ir.analysis.proto.RawMessageInfoDecoder decoder -> b
    java.util.Map liveProtos -> e
    java.util.Map seenButNotLiveProtos -> f
    java.util.Map reachesMapOrRequiredFieldFromMessageCache -> g
    1:1:void <clinit>():46:46 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):71:71 -> <init>
    2:24:void <init>(com.android.tools.r8.graph.AppView):54:76 -> <init>
    boolean lambda$markMapOrRequiredFieldsAsReachable$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod) -> a
    1:15:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod):85:99 -> a
    16:19:void createProtoMessageInfoFromDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):104:107 -> a
    20:20:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    20:20:void createProtoMessageInfoFromDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):107 -> a
    21:35:void createProtoMessageInfoFromDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):108:122 -> a
    36:36:void createProtoMessageInfoFromDynamicMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):111:111 -> a
    37:46:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):127:136 -> a
    47:72:void tracePendingInstructionsInDynamicMethods(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):252:277 -> a
    47:72:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):137 -> a
    73:77:void tracePendingInstructionsInDynamicMethods(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):276:280 -> a
    73:77:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):137 -> a
    78:78:void tracePendingInstructionsInDynamicMethods(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):279:279 -> a
    78:78:void notifyFixpoint(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):137 -> a
    79:92:void registerWriteToOneOfObjectIfOneOfCaseObjectIsLive(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):303:316 -> a
    93:93:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    93:93:void registerWriteToOneOfObjectIfOneOfCaseObjectIsLive(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):316 -> a
    94:129:void registerWriteToOneOfObjectIfOneOfCaseObjectIsLive(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):317:352 -> a
    130:130:void registerWriteToOneOfObjectIfOneOfCaseObjectIsLive(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):351:351 -> a
    131:131:void registerWriteToOneOfObjectIfOneOfCaseObjectIsLive(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):318:318 -> a
    132:149:boolean reachesMapOrRequiredField(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo):362:379 -> a
    150:153:boolean reachesMapOrRequiredField(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):391:394 -> a
    150:153:boolean reachesMapOrRequiredField(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo):380 -> a
    154:154:com.android.tools.r8.utils.OptionalBool com.android.tools.r8.utils.OptionalBool.unknown():58:58 -> a
    154:154:boolean reachesMapOrRequiredField(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):396 -> a
    154:154:boolean reachesMapOrRequiredField(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo):380 -> a
    155:168:boolean reachesMapOrRequiredField(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):395:408 -> a
    155:168:boolean reachesMapOrRequiredField(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo):380 -> a
    169:177:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo getOrCreateProtoMessageInfo(com.android.tools.r8.graph.DexType):417:425 -> a
    178:178:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    178:178:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo getOrCreateProtoMessageInfo(com.android.tools.r8.graph.DexType):425 -> a
    179:192:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo getOrCreateProtoMessageInfo(com.android.tools.r8.graph.DexType):426:439 -> a
    193:193:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo getOrCreateProtoMessageInfo(com.android.tools.r8.graph.DexType):427:427 -> a
    1:7:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):150:156 -> b
    8:8:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    8:8:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):156 -> b
    9:34:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):156:181 -> b
    35:69:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):180:214 -> b
    70:71:int com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo.getHazzerBitFieldIndex(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):135:136 -> b
    70:71:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):215 -> b
    72:72:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):216:216 -> b
    73:73:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():742:742 -> b
    73:73:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):228 -> b
    74:86:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):229:241 -> b
    87:87:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):240:240 -> b
    88:88:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():742:742 -> b
    88:88:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):228 -> b
    89:94:void registerWriteToOneOfObjectsWithLiveOneOfCaseObject(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):291:296 -> b
    89:94:void markMapOrRequiredFieldsAsReachable(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.EnqueuerWorklist):246 -> b
com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo -> com.android.tools.r8.t.a.o.o.d:
    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType type -> b
    java.util.List objects -> d
    boolean $assertionsDisabled -> e
    java.util.OptionalInt auxData -> c
    int number -> a
    1:1:void <clinit>():15:15 -> <clinit>
    1:5:void <init>(int,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType,java.util.OptionalInt,java.util.List):34:38 -> <init>
    1:1:int getAuxData():46:46 -> a
    2:2:boolean hasAuxData():42:42 -> a
    2:2:int getAuxData():46 -> a
    3:4:int getAuxData():46:47 -> a
    5:5:void setAuxData(int):51:51 -> a
    6:6:boolean hasAuxData():42:42 -> a
    6:6:void setAuxData(int):51 -> a
    7:8:void setAuxData(int):51:52 -> a
    9:10:com.android.tools.r8.graph.DexType getBaseMessageType(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):76:77 -> a
    11:11:com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfFieldType.getActualFieldType(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):22:22 -> a
    11:11:com.android.tools.r8.graph.DexType getBaseMessageType(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):77 -> a
    12:27:com.android.tools.r8.graph.DexType getBaseMessageType(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):78:93 -> a
    28:30:com.android.tools.r8.graph.DexType getBaseMessageType(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):86:88 -> a
    31:31:boolean hasHazzerBitField(com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):120:120 -> a
    32:39:com.android.tools.r8.graph.DexEncodedField getHazzerBitField(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):124:131 -> a
    1:1:int getNumber():56:56 -> b
    2:6:com.android.tools.r8.graph.DexEncodedField getOneOfCaseField(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):166:170 -> b
    1:1:java.util.List getObjects():60:60 -> c
    2:6:com.android.tools.r8.graph.DexEncodedField getValueStorage(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo):181:185 -> c
    1:1:com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType getType():64:64 -> d
    1:1:boolean hasAuxData():42:42 -> e
    1:15:java.lang.String toString():190:204 -> toString
com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject -> com.android.tools.r8.t.a.o.o.e:
    1:1:void <init>():7:7 -> <init>
    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject asProtoFieldObject() -> b
    boolean isProtoFieldObject() -> g
com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType -> com.android.tools.r8.t.a.o.o.f:
    boolean $assertionsDisabled -> e
    boolean isRequired -> b
    boolean needsIsInitializedCheck -> c
    int id -> a
    boolean isMapFieldWithProto2EnumValue -> d
    1:1:void <clinit>():12:12 -> <clinit>
    1:6:void <init>(int,boolean,boolean,boolean):37:42 -> <init>
    com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfFieldType asOneOf() -> a
    1:11:com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType fromFieldIdWithExtraBits(int):48:58 -> a
    12:12:boolean hasAuxData(boolean):63:63 -> a
    13:22:int numberOfObjects(boolean,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):124:133 -> a
    23:23:int numberOfObjects(boolean,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):131:131 -> a
    1:1:int id():67:67 -> b
    1:1:boolean isGroup():71:71 -> c
    1:1:boolean isGroupList():75:75 -> d
    1:1:boolean isMap():79:79 -> e
    1:1:boolean isMessage():87:87 -> f
    1:1:boolean isMessageList():91:91 -> g
    boolean isOneOf() -> h
    1:1:boolean isRepeated():103:103 -> i
    2:2:boolean isMap():79:79 -> i
    2:2:boolean isRepeated():103 -> i
    1:1:boolean isRequired():107:107 -> j
    1:1:boolean isSingular():111:111 -> k
    1:1:boolean isValid():115:115 -> l
    1:1:boolean needsIsInitializedCheck():120:120 -> m
    1:8:int serialize():140:147 -> n
com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory -> com.android.tools.r8.t.a.o.o.g:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap fieldTypes -> a
    1:3:void <init>():10:12 -> <init>
    1:4:com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType createField(int):15:18 -> a
com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo -> com.android.tools.r8.t.a.o.o.i:
    com.android.tools.r8.graph.DexEncodedMethod dynamicMethod -> a
    java.util.LinkedList hasBitsObjects -> d
    java.util.LinkedList oneOfObjects -> e
    int flags -> b
    java.util.LinkedList fields -> c
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,int,java.util.LinkedList,java.util.LinkedList,java.util.LinkedList,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo$1):18:18 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.DexEncodedMethod,int,java.util.LinkedList,java.util.LinkedList,java.util.LinkedList):185:190 -> <init>
    1:1:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo$Builder builder(com.android.tools.r8.graph.DexEncodedMethod):194:194 -> a
    2:2:com.android.tools.r8.graph.DexEncodedMethod getDynamicMethod():202:202 -> a
    1:1:java.util.List getFields():206:206 -> b
    1:1:int getFlags():210:210 -> c
    1:1:java.util.List getHasBitsObjects():214:214 -> d
    1:1:java.util.List getOneOfObjects():218:218 -> e
    1:1:boolean hasFields():222:222 -> f
    1:1:boolean isProto2():198:198 -> g
    1:1:int numberOfFields():226:226 -> h
    1:1:int numberOfHasBitsObjects():230:230 -> i
    1:1:int numberOfOneOfObjects():234:234 -> j
    1:9:java.lang.String toString():239:247 -> toString
com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo$1 -> com.android.tools.r8.t.a.o.o.h:
com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo$Builder -> com.android.tools.r8.t.a.o.o.i$a:
    com.android.tools.r8.graph.DexEncodedMethod dynamicMethod -> a
    java.util.LinkedList hasBitsObjects -> d
    boolean $assertionsDisabled -> f
    java.util.LinkedList oneOfObjects -> e
    int flags -> b
    java.util.LinkedList fields -> c
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo$1):22:22 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.DexEncodedMethod):32:33 -> <init>
    1:1:void setFlags(int):37:37 -> a
    2:5:void addField(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo):41:44 -> a
    6:9:void addHasBitsObject(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject):48:51 -> a
    10:13:void addOneOfObject(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject):55:58 -> a
    14:16:com.android.tools.r8.ir.analysis.proto.schema.ProtoMessageInfo build():62:64 -> a
    17:17:boolean lambda$removeUnusedSharedData$1(com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair):131:131 -> a
    1:10:void removeDeadFields():68:77 -> b
    11:14:boolean lambda$removeDeadFields$0(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldInfo):72:75 -> b
    1:48:void removeUnusedSharedData():82:129 -> c
    49:86:void removeUnusedSharedData():128:165 -> c
    87:87:void removeUnusedSharedData():164:164 -> c
    88:89:void removeUnusedSharedData():83:84 -> c
com.android.tools.r8.ir.analysis.proto.schema.ProtoObject -> com.android.tools.r8.t.a.o.o.j:
    1:1:void <init>():11:11 -> <init>
    com.android.tools.r8.ir.analysis.proto.schema.LiveProtoFieldObject asLiveProtoFieldObject() -> a
    com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject asProtoFieldObject() -> b
    com.android.tools.r8.ir.analysis.proto.schema.ProtoObjectFromStaticGet asProtoObjectFromStaticGet() -> c
    com.android.tools.r8.ir.analysis.proto.schema.ProtoTypeObject asProtoTypeObject() -> d
    boolean isDeadProtoFieldObject() -> e
    boolean isLiveProtoFieldObject() -> f
    boolean isProtoFieldObject() -> g
    boolean isProtoObjectFromStaticGet() -> h
    boolean isProtoTypeObject() -> i
com.android.tools.r8.ir.analysis.proto.schema.ProtoObjectFromInvokeStatic -> com.android.tools.r8.t.a.o.o.k:
    com.android.tools.r8.graph.DexMethod method -> a
    1:2:void <init>(com.android.tools.r8.graph.DexMethod):21:22 -> <init>
    1:4:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):27:30 -> a
    5:5:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):29:29 -> a
    6:6:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    6:6:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):28 -> a
    7:7:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):31:31 -> a
com.android.tools.r8.ir.analysis.proto.schema.ProtoObjectFromStaticGet -> com.android.tools.r8.t.a.o.o.l:
    com.android.tools.r8.graph.DexField field -> a
    1:2:void <init>(com.android.tools.r8.graph.DexField):20:21 -> <init>
    1:3:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):30:32 -> a
    4:4:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    4:4:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):31 -> a
    5:5:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):33:33 -> a
    com.android.tools.r8.ir.analysis.proto.schema.ProtoObjectFromStaticGet asProtoObjectFromStaticGet() -> c
    boolean isProtoObjectFromStaticGet() -> h
    1:1:com.android.tools.r8.graph.DexField getField():25:25 -> j
com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfFieldType -> com.android.tools.r8.t.a.o.o.m:
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>(int,boolean,boolean,boolean):18:18 -> <init>
    com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfFieldType asOneOf() -> a
    boolean hasAuxData(boolean) -> a
    1:1:com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldType getActualFieldType(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):22:22 -> a
    1:1:int numberOfObjects(boolean,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):58 -> a
    2:7:int numberOfObjects(boolean,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldTypeFactory):59:64 -> a
    boolean isOneOf() -> h
    boolean isRepeated() -> i
    boolean isSingular() -> k
    1:1:boolean isValid():52:52 -> l
com.android.tools.r8.ir.analysis.proto.schema.ProtoOneOfObjectPair -> com.android.tools.r8.t.a.o.o.n:
    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject oneOfCaseObject -> b
    com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject oneOfObject -> a
    1:3:void <init>(com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject,com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject):15:17 -> <init>
    1:1:com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject getOneOfCaseObject():25:25 -> a
    2:3:void forEach(java.util.function.Consumer):29:30 -> a
    1:1:com.android.tools.r8.ir.analysis.proto.schema.ProtoFieldObject getOneOfObject():21:21 -> b
    1:1:java.util.stream.Stream stream():34:34 -> c
com.android.tools.r8.ir.analysis.proto.schema.ProtoTypeObject -> com.android.tools.r8.t.a.o.o.o:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):16:17 -> <init>
    1:1:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):26:26 -> a
    2:2:com.android.tools.r8.ir.code.ConstClass com.android.tools.r8.ir.code.IRCode.createConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):1082:1082 -> a
    2:2:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):26 -> a
    3:3:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    3:3:com.android.tools.r8.ir.code.ConstClass com.android.tools.r8.ir.code.IRCode.createConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):1082 -> a
    3:3:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):26 -> a
    4:4:com.android.tools.r8.ir.code.ConstClass com.android.tools.r8.ir.code.IRCode.createConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):1083:1083 -> a
    4:4:com.android.tools.r8.ir.code.Instruction buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):26 -> a
    com.android.tools.r8.ir.analysis.proto.schema.ProtoTypeObject asProtoTypeObject() -> d
    boolean isProtoTypeObject() -> i
    1:1:com.android.tools.r8.graph.DexType getType():21:21 -> j
com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect -> com.android.tools.r8.t.a.p.a:
    com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect SIDE_EFFECTS_THAT_CANNOT_BE_POSTPONED -> a
    com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect SIDE_EFFECTS_THAT_CAN_BE_POSTPONED -> b
    com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect NONE -> c
    1:3:void <clinit>():23:25 -> <clinit>
    1:1:void <init>(java.lang.String,int):22:22 -> <init>
com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.a:
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement memberTypeLattice -> r
    com.android.tools.r8.ir.analysis.type.NullabilityVariants variants -> s
    boolean $assertionsDisabled -> t
    1:1:void <clinit>():15:15 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.ir.analysis.type.NullabilityVariants):33:36 -> <init>
    1:3:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getArrayBaseTypeLattice():70:72 -> G
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getArrayMemberTypeAsMemberType():62:62 -> H
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getArrayMemberTypeAsValueType():66:66 -> I
    1:4:int getNesting():53:56 -> J
    com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement asArrayTypeLatticeElement() -> a
    1:1:com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement create(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.Nullability):24:24 -> a
    2:2:com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement lambda$create$0(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.ir.analysis.type.NullabilityVariants):26:26 -> a
    3:11:com.android.tools.r8.graph.DexType getArrayType(com.android.tools.r8.graph.DexItemFactory):40:48 -> a
    12:13:com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement createVariant(com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.ir.analysis.type.NullabilityVariants):79:80 -> a
    14:18:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getOrCreateVariant(com.android.tools.r8.ir.analysis.type.Nullability):85:89 -> a
    19:19:boolean isBasedOnMissingClass(com.android.tools.r8.graph.AppView):94:94 -> a
    20:24:com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):135:139 -> a
    20:24:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):15 -> a
    25:36:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement join(com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement,com.android.tools.r8.graph.AppView):146:157 -> a
    37:47:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement joinMember(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):167:177 -> a
    48:60:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement joinMember(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):173:185 -> a
    61:63:com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement com.android.tools.r8.ir.analysis.type.TypeLatticeElement.objectArrayType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):349:351 -> a
    61:63:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement joinMember(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):188 -> a
    64:66:com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement com.android.tools.r8.ir.analysis.type.TypeLatticeElement.objectArrayType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):350:352 -> a
    64:66:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement joinMember(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):188 -> a
    67:68:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement com.android.tools.r8.ir.analysis.type.TypeLatticeElement.objectClassType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):344:345 -> a
    67:68:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement joinMember(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):186 -> a
    boolean isArrayType() -> e
    1:8:boolean equals(java.lang.Object):117:124 -> equals
    1:1:int hashCode():129:129 -> hashCode
    1:1:java.lang.String toString():109:109 -> toString
com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.b:
    com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement INSTANCE -> q
    1:1:void <clinit>():8:8 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement getInstance():11:11 -> E
    boolean isBoolean() -> f
    1:1:int hashCode():31:31 -> hashCode
com.android.tools.r8.ir.analysis.type.BottomTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.c:
    com.android.tools.r8.ir.analysis.type.BottomTypeLatticeElement INSTANCE -> o
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.Nullability nullability():11:11 -> A
    1:1:com.android.tools.r8.ir.analysis.type.BottomTypeLatticeElement getInstance():15:15 -> C
    boolean isBottom() -> g
    1:1:int hashCode():35:35 -> hashCode
com.android.tools.r8.ir.analysis.type.ByteTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.d:
    com.android.tools.r8.ir.analysis.type.ByteTypeLatticeElement INSTANCE -> q
    1:1:void <clinit>():8:8 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.ByteTypeLatticeElement getInstance():11:11 -> E
    boolean isByte() -> h
    1:1:int hashCode():31:31 -> hashCode
com.android.tools.r8.ir.analysis.type.CharTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.e:
    com.android.tools.r8.ir.analysis.type.CharTypeLatticeElement INSTANCE -> q
    1:1:void <clinit>():8:8 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.CharTypeLatticeElement getInstance():11:11 -> E
    1:1:int hashCode():31:31 -> hashCode
    boolean isChar() -> i
com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.f:
    com.android.tools.r8.graph.AppView appView -> s
    boolean $assertionsDisabled -> v
    com.android.tools.r8.ir.analysis.type.NullabilityVariants variants -> t
    java.util.Set lazyInterfaces -> r
    com.android.tools.r8.graph.DexType type -> u
    1:1:void <clinit>():23:23 -> <clinit>
    1:7:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,java.util.Set,com.android.tools.r8.ir.analysis.type.NullabilityVariants,com.android.tools.r8.graph.AppView):56:62 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement asMeetWithNotNull():120:120 -> E
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement asMeetWithNotNull():23 -> E
    1:1:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement asMeetWithNotNull():120:120 -> G
    1:1:com.android.tools.r8.graph.DexType getClassType():66:66 -> H
    1:8:java.util.Set getInterfaces():70:77 -> I
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):23:23 -> a
    2:2:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getOrCreateVariant(com.android.tools.r8.ir.analysis.type.Nullability):23:23 -> a
    3:4:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement create(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,java.util.Set):35:36 -> a
    5:5:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement lambda$create$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,java.util.Set,com.android.tools.r8.ir.analysis.type.NullabilityVariants):39:39 -> a
    6:6:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement lambda$create$1(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.NullabilityVariants):47:47 -> a
    7:8:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement createVariant(com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.ir.analysis.type.NullabilityVariants):82:83 -> a
    9:11:boolean isBasedOnMissingClass(com.android.tools.r8.graph.AppView):103:105 -> a
    12:12:boolean lambda$isBasedOnMissingClass$2(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):105:105 -> a
    13:22:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement join(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement,com.android.tools.r8.graph.AppView):194:203 -> a
    23:44:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement join(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement,com.android.tools.r8.graph.AppView):198:219 -> a
    45:48:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):240:243 -> a
    49:49:java.lang.Object com.android.tools.r8.utils.LRUCacheTable.get(java.lang.Object,java.lang.Object):55:55 -> a
    49:49:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):243 -> a
    50:54:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):243:247 -> a
    55:55:java.lang.Object com.android.tools.r8.utils.LRUCacheTable.get(java.lang.Object,java.lang.Object) -> a
    55:55:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):247 -> a
    56:83:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):247:274 -> a
    84:84:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    84:84:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):276 -> a
    85:124:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):278:317 -> a
    125:125:java.lang.Object com.android.tools.r8.utils.LRUCacheTable.get(java.lang.Object,java.lang.Object):55:55 -> a
    125:125:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):247 -> a
    126:126:java.lang.Object com.android.tools.r8.utils.LRUCacheTable.get(java.lang.Object,java.lang.Object):55:55 -> a
    126:126:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):243 -> a
    127:127:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.AppView,java.util.Set,java.util.Set):241:241 -> a
    128:128:java.util.Set lambda$computeLeastUpperBoundOfInterfaces$3(com.android.tools.r8.graph.DexType):263:263 -> a
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement asClassTypeLatticeElement() -> b
    1:2:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement create(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView):44:45 -> b
    3:7:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getOrCreateVariant(com.android.tools.r8.ir.analysis.type.Nullability):93:97 -> b
    8:22:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):147:161 -> b
    23:23:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    23:23:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):164 -> b
    24:26:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):165:167 -> b
    27:27:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> b
    27:27:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):167 -> b
    28:48:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):167:187 -> b
    49:49:java.util.Set lambda$computeLeastUpperBoundOfInterfaces$4(com.android.tools.r8.graph.DexType):279:279 -> b
    1:19:boolean equals(java.lang.Object):327:345 -> equals
    1:1:int hashCode():141:141 -> hashCode
    boolean isClassType() -> j
    1:11:java.lang.String toString():125:135 -> toString
com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceMarker -> com.android.tools.r8.ir.analysis.type.f$a:
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceMarker RIGHT -> b
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceMarker LEFT -> a
    1:2:void <clinit>():223:224 -> <clinit>
    1:1:void <init>(java.lang.String,int):222:222 -> <init>
com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceWithMarker -> com.android.tools.r8.ir.analysis.type.f$b:
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceMarker marker -> b
    com.android.tools.r8.graph.DexType itf -> a
    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceMarker):231:233 -> <init>
com.android.tools.r8.ir.analysis.type.DestructivePhiTypeUpdater -> com.android.tools.r8.ir.analysis.type.g:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> c
    java.util.function.Function mapping -> b
    1:1:void <clinit>():21:21 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):27:27 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.AppView,java.util.function.Function):31:33 -> <init>
    1:11:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):40:50 -> a
    12:18:boolean verifyAllChangedPhisAreScheduled(com.android.tools.r8.ir.code.IRCode,java.util.Set):94:100 -> a
    12:18:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):50 -> a
    19:19:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):53:53 -> a
    20:30:boolean verifyAllPhiOperandsAreBottom(java.util.Set):76:86 -> a
    20:30:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):53 -> a
    31:31:boolean verifyAllPhiOperandsAreBottom(java.util.Set):82:82 -> a
    31:31:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):53 -> a
    32:44:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):55:67 -> a
    45:45:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    45:45:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):67 -> a
    46:50:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):67:71 -> a
    51:51:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    51:51:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):71 -> a
    52:52:void recomputeAndPropagateTypes(com.android.tools.r8.ir.code.IRCode,java.util.Set):71:71 -> a
com.android.tools.r8.ir.analysis.type.DoubleTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.h:
    com.android.tools.r8.ir.analysis.type.DoubleTypeLatticeElement INSTANCE -> q
    1:1:void <clinit>():8:8 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.DoubleTypeLatticeElement getInstance():11:11 -> E
    1:1:int hashCode():26:26 -> hashCode
    boolean isDouble() -> m
com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.i:
    com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement INSTANCE -> q
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement getInstance():10:10 -> E
    1:1:int hashCode():25:25 -> hashCode
    boolean isFloat() -> o
com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.j:
    com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement INSTANCE -> q
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement getInstance():10:10 -> E
    1:1:int hashCode():25:25 -> hashCode
    boolean isInt() -> p
com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.k:
    com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement INSTANCE -> q
    1:1:void <clinit>():8:8 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement getInstance():11:11 -> E
    1:1:int hashCode():26:26 -> hashCode
    boolean isLong() -> q
com.android.tools.r8.ir.analysis.type.Nullability -> com.android.tools.r8.ir.analysis.type.l:
    com.android.tools.r8.ir.analysis.type.Nullability DEFINITELY_NULL -> a
    com.android.tools.r8.ir.analysis.type.Nullability BOTTOM -> d
    com.android.tools.r8.ir.analysis.type.Nullability MAYBE_NULL -> c
    com.android.tools.r8.ir.analysis.type.Nullability DEFINITELY_NOT_NULL -> b
    1:4:void <clinit>():25:28 -> <clinit>
    1:1:void <init>():30:30 -> <init>
    1:10:com.android.tools.r8.ir.analysis.type.Nullability join(com.android.tools.r8.ir.analysis.type.Nullability):49:58 -> a
    11:11:com.android.tools.r8.ir.analysis.type.Nullability bottom():91:91 -> a
    1:1:boolean lessThanOrEqual(com.android.tools.r8.ir.analysis.type.Nullability):75:75 -> b
    2:2:com.android.tools.r8.ir.analysis.type.Nullability definitelyNotNull():83:83 -> b
    1:10:com.android.tools.r8.ir.analysis.type.Nullability meet(com.android.tools.r8.ir.analysis.type.Nullability):62:71 -> c
    11:11:com.android.tools.r8.ir.analysis.type.Nullability definitelyNull():79:79 -> c
    1:1:boolean isDefinitelyNotNull():37:37 -> d
    1:1:boolean isDefinitelyNull():33:33 -> e
    1:1:boolean isMaybeNull():41:41 -> f
    1:1:boolean isMaybeNull():41:41 -> g
    1:1:boolean isNullable():45 -> g
    2:2:boolean isNullable():45:45 -> g
    1:1:com.android.tools.r8.ir.analysis.type.Nullability maybeNull():87:87 -> h
    1:13:java.lang.String toString():96:108 -> toString
com.android.tools.r8.ir.analysis.type.NullabilityVariants -> com.android.tools.r8.ir.analysis.type.m:
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement definitelyNotNullVariant -> c
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement definitelyNullVariant -> b
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement bottomVariant -> d
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement maybeNullVariant -> a
    1:1:void <clinit>():10:10 -> <clinit>
    1:1:void <init>():10:10 -> <init>
    1:3:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement create(com.android.tools.r8.ir.analysis.type.Nullability,java.util.function.Function):19:21 -> a
    4:12:void set(com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement):26:34 -> a
    13:21:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement get(com.android.tools.r8.ir.analysis.type.Nullability):39:47 -> a
    22:35:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getOrCreateElement(com.android.tools.r8.ir.analysis.type.Nullability,java.util.function.BiFunction):53:66 -> a
com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.n:
    boolean $assertionsDisabled -> o
    1:1:void <clinit>():15:15 -> <clinit>
    1:1:void <init>():15:15 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.Nullability nullability():19:19 -> A
    1:8:boolean hasDexType():66:73 -> C
    1:25:com.android.tools.r8.graph.DexType toDexType(com.android.tools.r8.graph.DexItemFactory):38:62 -> a
    26:39:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement fromNumericType(com.android.tools.r8.ir.code.NumericType):115:128 -> a
    40:40:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement fromNumericType(com.android.tools.r8.ir.code.NumericType):126:126 -> a
    41:41:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement fromNumericType(com.android.tools.r8.ir.code.NumericType):124:124 -> a
    42:42:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement fromNumericType(com.android.tools.r8.ir.code.NumericType):122:122 -> a
    43:43:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement fromNumericType(com.android.tools.r8.ir.code.NumericType):120:120 -> a
    com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement asPrimitiveTypeLatticeElement() -> c
    boolean isPrimitive() -> u
com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.o:
    com.android.tools.r8.ir.analysis.type.Nullability nullability -> o
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement NULL_BOTTOM_INSTANCE -> q
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement NULL_INSTANCE -> p
    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement.create():23:23 -> <clinit>
    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement.access$200():11 -> <clinit>
    1:1:void <clinit>():57 -> <clinit>
    2:2:void <clinit>():57:57 -> <clinit>
    3:3:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement.createBottom():27:27 -> <clinit>
    3:3:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement.access$300():11 -> <clinit>
    3:3:void <clinit>():59 -> <clinit>
    4:4:void <clinit>():59:59 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.analysis.type.Nullability):63:64 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.Nullability nullability():69:69 -> A
    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement access$000():9:9 -> C
    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement access$100():9:9 -> D
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement asMeetWithNotNull():79:79 -> E
    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getNullTypeLatticeElement():73:73 -> F
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getOrCreateVariant(com.android.tools.r8.ir.analysis.type.Nullability) -> a
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement asReferenceTypeLatticeElement() -> d
    1:1:boolean equals(java.lang.Object):102:102 -> equals
    1:1:int hashCode():107:107 -> hashCode
    boolean isReference() -> v
com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement$NullLatticeElement -> com.android.tools.r8.ir.analysis.type.o$a:
    1:1:void <init>(com.android.tools.r8.ir.analysis.type.Nullability):14:14 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getOrCreateVariant(com.android.tools.r8.ir.analysis.type.Nullability):19:19 -> a
    1:1:boolean equals(java.lang.Object):50:50 -> equals
    1:1:int hashCode():42:42 -> hashCode
    boolean isNullType() -> r
    1:1:java.lang.String toString():37:37 -> toString
com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.p:
    com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement INSTANCE -> q
    1:1:void <clinit>():8:8 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement getInstance():11:11 -> E
    1:1:int hashCode():31:31 -> hashCode
    boolean isShort() -> w
com.android.tools.r8.ir.analysis.type.SinglePrimitiveTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.q:
    com.android.tools.r8.ir.analysis.type.SinglePrimitiveTypeLatticeElement INSTANCE -> p
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>():13:13 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.SinglePrimitiveTypeLatticeElement getInstance():17:17 -> D
    1:1:int hashCode():37:37 -> hashCode
    boolean isSinglePrimitive() -> x
com.android.tools.r8.ir.analysis.type.TopTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.r:
    com.android.tools.r8.ir.analysis.type.TopTypeLatticeElement INSTANCE -> o
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.Nullability nullability():11:11 -> A
    1:1:com.android.tools.r8.ir.analysis.type.TopTypeLatticeElement getInstance():15:15 -> C
    1:1:int hashCode():35:35 -> hashCode
    boolean isTop() -> y
com.android.tools.r8.ir.analysis.type.TypeAnalysis -> com.android.tools.r8.ir.analysis.type.t:
    java.util.Deque worklist -> d
    com.android.tools.r8.graph.AppView appView -> c
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode mode -> b
    boolean mayHaveImpreciseTypes -> a
    1:1:void <clinit>():27:27 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,boolean):49:49 -> <init>
    2:14:void <init>(com.android.tools.r8.graph.AppView,boolean):39:51 -> <init>
    1:2:void analyze():55:56 -> a
    3:8:void analyzeValue(com.android.tools.r8.ir.code.Value):137:142 -> a
    3:8:void analyze():56 -> a
    9:12:void widening(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):61:64 -> a
    13:15:void narrowing(java.lang.Iterable):74:76 -> a
    16:19:void analyzeValues(java.lang.Iterable,com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode):85:88 -> a
    20:22:void enqueue(com.android.tools.r8.ir.code.Value):92:94 -> a
    23:38:void analyzeBasicBlock(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):100:115 -> a
    23:38:void lambda$widening$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):63 -> a
    39:59:void analyzeBasicBlock(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):112:132 -> a
    39:59:void lambda$widening$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):63 -> a
    60:89:void updateTypeOfValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):146:175 -> a
    90:102:com.android.tools.r8.graph.DexType getRefinedReceiverType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethodWithReceiver):181:193 -> a
    1:1:boolean verifyValuesUpToDate(java.lang.Iterable):80:80 -> b
    1:1:void widening(java.lang.Iterable):68:68 -> c
com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode -> com.android.tools.r8.ir.analysis.type.s:
    com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode NO_CHANGE -> d
    com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode UNSET -> a
    com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode WIDENING -> b
    com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode NARROWING -> c
    1:5:void <clinit>():30:34 -> <clinit>
    1:1:void <init>(java.lang.String,int):29:29 -> <init>
com.android.tools.r8.ir.analysis.type.TypeLatticeElement -> com.android.tools.r8.ir.analysis.type.u:
    com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement FLOAT -> h
    boolean $assertionsDisabled -> n
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement NULL -> m
    com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement INT -> g
    com.android.tools.r8.ir.analysis.type.ByteTypeLatticeElement BYTE -> d
    com.android.tools.r8.ir.analysis.type.CharTypeLatticeElement CHAR -> f
    com.android.tools.r8.ir.analysis.type.TopTypeLatticeElement TOP -> b
    com.android.tools.r8.ir.analysis.type.DoubleTypeLatticeElement DOUBLE -> k
    com.android.tools.r8.ir.analysis.type.SinglePrimitiveTypeLatticeElement SINGLE -> i
    com.android.tools.r8.ir.analysis.type.BottomTypeLatticeElement BOTTOM -> a
    com.android.tools.r8.ir.analysis.type.WidePrimitiveTypeLatticeElement WIDE -> l
    com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement BOOLEAN -> c
    com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement SHORT -> e
    com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement LONG -> j
    1:17:void <clinit>():18:34 -> <clinit>
    1:1:void <init>():18:18 -> <init>
    com.android.tools.r8.ir.analysis.type.Nullability nullability() -> A
    1:1:int requiredRegisters():338:338 -> B
    com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement asArrayTypeLatticeElement() -> a
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView) -> a
    boolean isBasedOnMissingClass(com.android.tools.r8.graph.AppView) -> a
    1:12:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):58:69 -> a
    13:25:com.android.tools.r8.ir.analysis.type.TypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.join(com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement):136:148 -> a
    13:25:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):69 -> a
    26:26:com.android.tools.r8.ir.analysis.type.TypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.join(com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement):0:0 -> a
    26:26:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):69 -> a
    27:43:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):70:86 -> a
    44:45:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement objectClassType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):344:345 -> a
    44:45:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):87 -> a
    46:54:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):90:98 -> a
    55:55:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):65:65 -> a
    56:58:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(java.lang.Iterable,com.android.tools.r8.graph.AppView):103:105 -> a
    59:67:boolean equalUpToNullability(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):183:191 -> a
    68:69:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement classClassType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):357:358 -> a
    70:70:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView):369:369 -> a
    71:75:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,boolean):374:378 -> a
    76:77:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):33:34 -> a
    76:77:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,boolean):379 -> a
    78:78:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):110:110 -> a
    78:78:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):34 -> a
    78:78:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,boolean):379 -> a
    79:106:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):81:108 -> a
    79:106:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):34 -> a
    79:106:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,boolean):379 -> a
    107:107:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):104:104 -> a
    107:107:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):34 -> a
    107:107:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,boolean):379 -> a
    108:112:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):102:106 -> a
    108:112:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):34 -> a
    108:112:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,boolean):379 -> a
    113:127:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):86:100 -> a
    113:127:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):34 -> a
    113:127:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,boolean):379 -> a
    128:128:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.AppView,boolean):381:381 -> a
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement asClassTypeLatticeElement() -> b
    1:1:boolean lessThanOrEqual(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):135:135 -> b
    2:3:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement objectClassType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):344:345 -> b
    com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement asPrimitiveTypeLatticeElement() -> c
    1:22:boolean lessThanOrEqualUpToNullability(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):149:170 -> c
    23:24:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement stringClassType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):363:364 -> c
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement asReferenceTypeLatticeElement() -> d
    1:5:boolean strictlyLessThan(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.AppView):119:123 -> d
    boolean isArrayType() -> e
    boolean isBoolean() -> f
    boolean isBottom() -> g
    boolean isByte() -> h
    boolean isChar() -> i
    boolean isClassType() -> j
    1:1:boolean isDefinitelyNotNull():334:334 -> k
    1:1:boolean isDefinitelyNull():330:330 -> l
    boolean isDouble() -> m
    1:4:boolean isFineGrainedType():306:309 -> n
    boolean isFloat() -> o
    boolean isInt() -> p
    boolean isLong() -> q
    boolean isNullType() -> r
    1:1:boolean isNullable():42:42 -> s
    1:8:boolean isPreciseType():295:302 -> t
    boolean isPrimitive() -> u
    boolean isReference() -> v
    boolean isShort() -> w
    boolean isSinglePrimitive() -> x
    boolean isTop() -> y
    boolean isWidePrimitive() -> z
com.android.tools.r8.ir.analysis.type.WidePrimitiveTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.v:
    com.android.tools.r8.ir.analysis.type.WidePrimitiveTypeLatticeElement INSTANCE -> p
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>():13:13 -> <init>
    int requiredRegisters() -> B
    1:1:com.android.tools.r8.ir.analysis.type.WidePrimitiveTypeLatticeElement getInstance():17:17 -> D
    1:1:int hashCode():42:42 -> hashCode
    boolean isWidePrimitive() -> z
com.android.tools.r8.ir.analysis.value.AbstractValue -> com.android.tools.r8.t.a.q.a:
    1:1:void <init>():7:7 -> <init>
    com.android.tools.r8.ir.analysis.value.SingleNumberValue asSingleNumberValue() -> a
    com.android.tools.r8.ir.analysis.value.SingleStringValue asSingleStringValue() -> b
    com.android.tools.r8.ir.analysis.value.SingleValue asSingleValue() -> c
    boolean isNonTrivial() -> d
    boolean isSingleEnumValue() -> e
    boolean isSingleFieldValue() -> f
    boolean isSingleNumberValue() -> g
    boolean isSingleStringValue() -> h
    boolean isSingleValue() -> i
    boolean isUnknown() -> j
com.android.tools.r8.ir.analysis.value.AbstractValueFactory -> com.android.tools.r8.t.a.q.b:
    java.util.concurrent.ConcurrentHashMap singleStringValues -> d
    java.util.concurrent.ConcurrentHashMap singleNumberValues -> c
    java.util.concurrent.ConcurrentHashMap singleFieldValues -> b
    java.util.concurrent.ConcurrentHashMap singleEnumValues -> a
    1:7:void <init>():11:17 -> <init>
    1:1:com.android.tools.r8.ir.analysis.value.SingleEnumValue createSingleEnumValue(com.android.tools.r8.graph.DexField):21:21 -> a
    2:2:com.android.tools.r8.ir.analysis.value.SingleNumberValue createSingleNumberValue(long):29:29 -> a
    3:3:com.android.tools.r8.ir.analysis.value.SingleStringValue createSingleStringValue(com.android.tools.r8.graph.DexString):33:33 -> a
    1:1:com.android.tools.r8.ir.analysis.value.SingleFieldValue createSingleFieldValue(com.android.tools.r8.graph.DexField):25:25 -> b
com.android.tools.r8.ir.analysis.value.SingleEnumValue -> com.android.tools.r8.t.a.q.c:
    1:1:void <init>(com.android.tools.r8.graph.DexField):13:13 -> <init>
    boolean isSingleEnumValue() -> e
    1:1:java.lang.String toString():28:28 -> toString
com.android.tools.r8.ir.analysis.value.SingleFieldValue -> com.android.tools.r8.t.a.q.d:
    com.android.tools.r8.graph.DexField field -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():22:22 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexField):27:28 -> <init>
    1:4:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):63:66 -> a
    5:6:boolean isMaterializableInContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):71:72 -> a
    boolean isSingleFieldValue() -> f
    1:1:int hashCode():52:52 -> hashCode
    1:1:com.android.tools.r8.graph.DexField getField():32:32 -> k
    1:1:java.lang.String toString():57:57 -> toString
com.android.tools.r8.ir.analysis.value.SingleNumberValue -> com.android.tools.r8.t.a.q.e:
    long value -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():18:18 -> <clinit>
    1:2:void <init>(long):23:24 -> <init>
    com.android.tools.r8.ir.analysis.value.SingleNumberValue asSingleNumberValue() -> a
    boolean isMaterializableInContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> a
    1:6:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):64:69 -> a
    7:9:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):68:70 -> a
    boolean isSingleNumberValue() -> g
    1:1:int hashCode():53:53 -> hashCode
    1:2:boolean getBooleanValue():38:39 -> k
    1:1:java.lang.String toString():58:58 -> toString
com.android.tools.r8.ir.analysis.value.SingleStringValue -> com.android.tools.r8.t.a.q.f:
    com.android.tools.r8.graph.DexString string -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():23:23 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexString):28:29 -> <init>
    boolean isMaterializableInContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> a
    1:7:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):66:72 -> a
    8:11:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):70:73 -> a
    12:22:com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier):69:79 -> a
    com.android.tools.r8.ir.analysis.value.SingleStringValue asSingleStringValue() -> b
    boolean isSingleStringValue() -> h
    1:1:int hashCode():53:53 -> hashCode
    1:1:com.android.tools.r8.graph.DexString getDexString():43:43 -> k
    1:1:java.lang.String toString():58:58 -> toString
com.android.tools.r8.ir.analysis.value.SingleValue -> com.android.tools.r8.t.a.q.g:
    1:1:void <init>():14:14 -> <init>
    com.android.tools.r8.ir.code.Instruction createMaterializingInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier) -> a
    boolean isMaterializableInContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> a
    com.android.tools.r8.ir.analysis.value.SingleValue asSingleValue() -> c
    boolean isNonTrivial() -> d
    boolean isSingleValue() -> i
com.android.tools.r8.ir.analysis.value.UnknownValue -> com.android.tools.r8.t.a.q.h:
    com.android.tools.r8.ir.analysis.value.UnknownValue INSTANCE -> a
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>():11:11 -> <init>
    boolean isNonTrivial() -> d
    1:1:int hashCode():34:34 -> hashCode
    boolean isUnknown() -> j
    1:1:com.android.tools.r8.ir.analysis.value.UnknownValue getInstance():14:14 -> k
com.android.tools.r8.ir.code.Add -> com.android.tools.r8.t.b.a:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):22:22 -> <init>
    int opcode() -> C2
    boolean isCommutative() -> H2
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():127:127 -> L2
    boolean isAdd() -> S0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    double foldDouble(double,double) -> a
    float foldFloat(float,float) -> a
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateDouble(int,int,int):57:57 -> a
    1:1:com.android.tools.r8.code.Instruction CreateFloat(int,int,int):52:52 -> b
    2:2:com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int):77:77 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):92:92 -> b
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):42:42 -> c
    2:2:com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int):72:72 -> c
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):62:62 -> d
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):87:87 -> d
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):67:67 -> e
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):82:82 -> e
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):47:47 -> f
    com.android.tools.r8.ir.code.Add asAdd() -> h
com.android.tools.r8.ir.code.AliasedValueConfiguration -> com.android.tools.r8.t.b.b:
    com.android.tools.r8.ir.code.Value getAliasForOutValue(com.android.tools.r8.ir.code.Instruction) -> a
    boolean isIntroducingAnAlias(com.android.tools.r8.ir.code.Instruction) -> b
com.android.tools.r8.ir.code.AlwaysMaterializingDefinition -> com.android.tools.r8.t.b.c:
    1:1:void <init>(com.android.tools.r8.ir.code.Value):18:18 -> <init>
    1:1:int maxInValueRegister():56:56 -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    1:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):39:41 -> a
    4:4:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):40:40 -> a
    5:5:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):46:46 -> a
    6:6:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):66:66 -> a
    boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction) -> b
com.android.tools.r8.ir.code.AlwaysMaterializingNop -> com.android.tools.r8.t.b.d:
    1:1:void <init>():19:19 -> <init>
    1:1:int maxInValueRegister():54:54 -> A2
    1:1:int maxOutValueRegister():59:59 -> B2
    int opcode() -> C2
    boolean hasInvariantOutType() -> L0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):39:39 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):44:44 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):65:65 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):49:49 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
com.android.tools.r8.ir.code.AlwaysMaterializingUser -> com.android.tools.r8.t.b.e:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():15:15 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value):18:18 -> <init>
    1:2:int maxInValueRegister():54:55 -> A2
    1:1:int maxOutValueRegister():60:60 -> B2
    int opcode() -> C2
    boolean hasInvariantOutType() -> L0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):39:39 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):44:44 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forAlwaysMaterializingUser():70:70 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):66 -> a
    4:4:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):71:71 -> a
    boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction) -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
com.android.tools.r8.ir.code.And -> com.android.tools.r8.t.b.f:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):19:19 -> <init>
    int opcode() -> C2
    boolean isCommutative() -> H2
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():94:94 -> L2
    boolean isAnd() -> U0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):49:49 -> a
    2:2:boolean outTypeKnownToBeBoolean(java.util.Set):99:99 -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):59:59 -> b
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):74:74 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):79:79 -> b
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):64:64 -> c
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):69:69 -> c
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):54:54 -> d
    com.android.tools.r8.ir.code.And asAnd() -> i
com.android.tools.r8.ir.code.Argument -> com.android.tools.r8.t.b.g:
    boolean $assertionsDisabled -> i
    boolean knownToBeBoolean -> h
    1:1:void <clinit>():22:22 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.Value,boolean):27:29 -> <init>
    1:1:int maxInValueRegister():52:52 -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    boolean hasInvariantOutType() -> L0
    boolean isArgument() -> V0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    void buildCf(com.android.tools.r8.ir.conversion.CfBuilder) -> a
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):63:63 -> a
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArgument():74:74 -> a
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):84 -> a
    3:3:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):94:94 -> a
    4:4:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):104:104 -> a
    5:5:boolean outTypeKnownToBeBoolean(java.util.Set):114:114 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):68:68 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    com.android.tools.r8.ir.code.Argument asArgument() -> j
com.android.tools.r8.ir.code.ArithmeticBinop -> com.android.tools.r8.t.b.h:
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():17:17 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):20:20 -> <init>
    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode() -> L2
    boolean isArithmeticBinop() -> W0
    com.android.tools.r8.code.Instruction CreateDouble(int,int,int) -> a
    1:25:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):65:89 -> a
    26:26:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):86:86 -> a
    27:27:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):83:83 -> a
    28:28:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80:80 -> a
    29:69:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):77:117 -> a
    70:70:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):114:114 -> a
    71:71:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):111:111 -> a
    72:72:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):108:108 -> a
    73:88:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):105:120 -> a
    89:115:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):135:161 -> a
    116:116:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):168:168 -> a
    com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int) -> b
    com.android.tools.r8.code.Instruction CreateFloat(int,int,int) -> b
    com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int) -> c
    com.android.tools.r8.code.Instruction CreateInt(int,int,int) -> c
    1:8:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):52:59 -> c
    com.android.tools.r8.code.Instruction CreateInt2Addr(int,int) -> d
    com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int) -> d
    com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int) -> e
    com.android.tools.r8.code.Instruction CreateLong2Addr(int,int) -> e
    com.android.tools.r8.code.Instruction CreateLong(int,int,int) -> f
    com.android.tools.r8.ir.code.ArithmeticBinop asArithmeticBinop() -> k
com.android.tools.r8.ir.code.ArrayGet -> com.android.tools.r8.t.b.i:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.ir.code.MemberType type -> h
    1:1:void <clinit>():33:33 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):38:39 -> <init>
    int maxInValueRegister() -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():264:264 -> E0
    boolean throwsOnNullInput() -> F2
    1:1:com.android.tools.r8.ir.code.Value array():57:57 -> G2
    1:1:com.android.tools.r8.ir.code.Value index():61:61 -> H2
    boolean hasInvariantOutType() -> L0
    boolean instructionTypeCanThrow() -> R0
    boolean isArrayGet() -> X0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator) -> a
    1:1:com.android.tools.r8.ir.code.Value dest():53:53 -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):78 -> a
    2:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):78:79 -> a
    4:4:com.android.tools.r8.ir.code.Value index():61:61 -> a
    4:4:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80 -> a
    5:42:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80:117 -> a
    43:43:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):115:115 -> a
    44:44:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):111:111 -> a
    45:45:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):108:108 -> a
    46:52:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):97:103 -> a
    53:55:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):102:104 -> a
    56:56:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):94:94 -> a
    57:59:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):89:91 -> a
    60:94:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):85:119 -> a
    95:97:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):71:73 -> a
    98:98:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayGet():78:78 -> a
    98:98:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):164 -> a
    99:105:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):175:181 -> a
    106:107:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):186:187 -> a
    108:108:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):192:192 -> a
    109:110:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):197:198 -> a
    111:111:com.android.tools.r8.ir.code.MemberType getMemberType():66:66 -> a
    111:111:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):200 -> a
    112:151:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):200:239 -> a
    152:153:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):235:236 -> a
    154:154:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):235:235 -> a
    155:155:com.android.tools.r8.ir.code.Value dest():53:53 -> a
    155:155:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):237 -> a
    156:156:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):237:237 -> a
    157:158:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):231:232 -> a
    159:159:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):231:231 -> a
    160:160:com.android.tools.r8.ir.code.Value dest():53:53 -> a
    160:160:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):233 -> a
    161:161:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):233:233 -> a
    162:183:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):207:228 -> a
    184:186:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):227:229 -> a
    187:188:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):223:224 -> a
    189:191:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):223:225 -> a
    192:193:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):219:220 -> a
    194:196:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):219:221 -> a
    197:198:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):215:216 -> a
    199:201:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):215:217 -> a
    202:202:com.android.tools.r8.ir.code.MemberType getMemberType():66:66 -> a
    202:202:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):239 -> a
    203:203:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):239:239 -> a
    204:208:com.android.tools.r8.ir.analysis.type.TypeLatticeElement checkConstraint(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ValueTypeConstraint):244:248 -> a
    209:209:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    209:209:com.android.tools.r8.ir.analysis.type.TypeLatticeElement checkConstraint(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ValueTypeConstraint):248 -> a
    210:210:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    210:210:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    210:210:com.android.tools.r8.ir.analysis.type.TypeLatticeElement checkConstraint(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ValueTypeConstraint):248 -> a
    211:211:com.android.tools.r8.ir.analysis.type.TypeLatticeElement checkConstraint(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ValueTypeConstraint):248:248 -> a
    212:212:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):254:254 -> a
    213:214:boolean outTypeKnownToBeBoolean(java.util.Set):269:270 -> a
    215:215:void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver):276:276 -> a
    216:216:com.android.tools.r8.ir.code.Value dest():53:53 -> a
    216:216:void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver):276 -> a
    217:217:void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver):276:276 -> a
    218:218:void lambda$constrainType$0(com.android.tools.r8.ir.code.MemberType):276:276 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):132:132 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    1:1:com.android.tools.r8.ir.code.MemberType getMemberType():66:66 -> e
    com.android.tools.r8.ir.code.ArrayGet asArrayGet() -> l
com.android.tools.r8.ir.code.ArrayLength -> com.android.tools.r8.t.b.j:
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):24:24 -> <init>
    int maxInValueRegister() -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():154:154 -> E0
    boolean throwsOnNullInput() -> F2
    1:1:com.android.tools.r8.ir.code.Value array():42:42 -> G2
    boolean hasInvariantOutType() -> L0
    boolean instructionTypeCanThrow() -> R0
    boolean isArrayLength() -> Y0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:com.android.tools.r8.ir.code.Value dest():38:38 -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57 -> a
    2:4:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57:59 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayLength():82:82 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):118 -> a
    6:6:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):93:93 -> a
    7:7:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):88:88 -> a
    7:7:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):93 -> a
    8:15:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):98:105 -> a
    16:17:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):123:124 -> a
    18:18:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):129:129 -> a
    19:19:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):134:134 -> a
    20:20:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):144:144 -> a
    1:5:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):79:83 -> b
    6:6:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):112:112 -> b
    1:1:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):88:88 -> c
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    com.android.tools.r8.ir.code.ArrayLength asArrayLength() -> m
com.android.tools.r8.ir.code.ArrayPut -> com.android.tools.r8.t.b.k:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.ir.code.MemberType type -> h
    1:1:void <clinit>():30:30 -> <clinit>
    1:5:void <init>(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):40:44 -> <init>
    int maxInValueRegister() -> A2
    1:1:int maxOutValueRegister():125:125 -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():266:266 -> E0
    boolean throwsOnNullInput() -> F2
    1:1:com.android.tools.r8.ir.code.Value array():58:58 -> G2
    1:1:com.android.tools.r8.ir.code.Value index():62:62 -> H2
    1:1:com.android.tools.r8.ir.code.Value value():66:66 -> I2
    boolean hasInvariantOutType() -> L0
    1:5:boolean instructionInstanceCanThrow():136:140 -> P0
    boolean instructionTypeCanThrow() -> R0
    boolean isArrayPut() -> Z0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator) -> a
    1:38:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):76:113 -> a
    39:39:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):111:111 -> a
    40:40:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):107:107 -> a
    41:41:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):104:104 -> a
    42:48:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):93:99 -> a
    49:51:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):98:100 -> a
    52:52:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):90:90 -> a
    53:53:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):87:87 -> a
    54:86:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):83:115 -> a
    87:87:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forArrayPut():86:86 -> a
    87:87:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):236 -> a
    88:88:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):207:207 -> a
    89:89:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):241:241 -> a
    90:90:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):251:251 -> a
    91:91:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):256:256 -> a
    92:92:void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver):271:271 -> a
    93:93:void lambda$constrainType$0(com.android.tools.r8.ir.code.MemberType):271:271 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):220:220 -> b
    1:48:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):150:197 -> c
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    1:1:com.android.tools.r8.ir.code.MemberType getMemberType():71:71 -> e
    com.android.tools.r8.ir.code.ArrayPut asArrayPut() -> n
com.android.tools.r8.ir.code.Assume -> com.android.tools.r8.t.b.l:
    com.android.tools.r8.ir.code.Instruction origin -> i
    boolean $assertionsDisabled -> j
    com.android.tools.r8.ir.code.Assume$Assumption assumption -> h
    1:1:void <clinit>():22:22 -> <clinit>
    1:6:void <init>(com.android.tools.r8.ir.code.Assume$Assumption,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView):31:36 -> <init>
    1:1:int maxInValueRegister():214:214 -> A2
    1:1:int maxOutValueRegister():219:219 -> B2
    int opcode() -> C2
    1:1:boolean isAssumeNone():124:124 -> D0
    1:1:java.lang.String getInstructionName():100 -> D0
    2:2:boolean isAssumeDynamicType():137:137 -> D0
    2:2:java.lang.String getInstructionName():103 -> D0
    3:6:java.lang.String getInstructionName():106:109 -> D0
    1:1:com.android.tools.r8.ir.code.Assume$Assumption getAssumption():82:82 -> G2
    1:1:com.android.tools.r8.ir.code.Instruction origin():90:90 -> H2
    1:1:com.android.tools.r8.ir.code.Value src():86:86 -> I2
    boolean hasInvariantOutType() -> L0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:com.android.tools.r8.ir.code.Assume createAssumeNonNullInstruction(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView):46:46 -> a
    2:2:com.android.tools.r8.ir.code.Assume createAssumeDynamicTypeInstruction(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView):56:56 -> a
    3:3:boolean outTypeKnownToBeBoolean(java.util.Set):95:95 -> a
    4:22:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):167:185 -> a
    23:29:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):183:189 -> a
    30:30:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):204:204 -> a
    31:31:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):209:209 -> a
    32:39:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):244:251 -> a
    40:40:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):245:245 -> a
    41:41:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):256:256 -> a
    42:42:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):266:266 -> a
    43:43:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forAssume():293:293 -> a
    43:43:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):239 -> a
    boolean isAssume() -> a1
    1:1:com.android.tools.r8.ir.code.Assume createAssumeNoneInstruction(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView):41:41 -> b
    2:6:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):229:233 -> b
    7:10:boolean verifyTypes(com.android.tools.r8.graph.AppView):276:279 -> b
    11:11:boolean isAssumeNone():124:124 -> b
    11:11:boolean verifyTypes(com.android.tools.r8.graph.AppView):280 -> b
    12:12:boolean isAssumeDynamicType():137:137 -> b
    12:12:boolean verifyTypes(com.android.tools.r8.graph.AppView):280 -> b
    13:16:boolean verifyTypes(com.android.tools.r8.graph.AppView):285:288 -> b
    17:19:boolean verifyTypes(com.android.tools.r8.graph.AppView):287:289 -> b
    20:22:boolean verifyTypes(com.android.tools.r8.graph.AppView):281:283 -> b
    1:1:boolean isAssumeDynamicType():137:137 -> b1
    1:1:boolean isAssumeDynamicType():137:137 -> c
    1:1:boolean verifyInstructionIsNeeded(com.android.tools.r8.graph.AppView):70 -> c
    2:2:boolean verifyInstructionIsNeeded(com.android.tools.r8.graph.AppView):71:71 -> c
    1:1:boolean isAssumeNonNull():150:150 -> c1
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    boolean isOutConstant() -> j2
    com.android.tools.r8.ir.code.Assume asAssume() -> o
    1:1:com.android.tools.r8.ir.code.Assume asAssumeDynamicType():142:142 -> p
    2:2:boolean isAssumeDynamicType():137:137 -> p
    2:2:com.android.tools.r8.ir.code.Assume asAssumeDynamicType():142 -> p
    3:3:com.android.tools.r8.ir.code.Assume asAssumeDynamicType():142:142 -> p
    1:1:com.android.tools.r8.ir.code.Assume asAssumeNonNull():155:155 -> q
    1:1:java.lang.String toString():302:302 -> toString
    2:2:boolean isAssumeNone():124:124 -> toString
    2:2:java.lang.String toString():303 -> toString
    3:3:java.lang.String toString():303:303 -> toString
    4:4:boolean isAssumeDynamicType():137:137 -> toString
    4:4:java.lang.String toString():306 -> toString
    5:5:java.lang.String toString():307:307 -> toString
    6:6:com.android.tools.r8.ir.code.Assume$Assumption getAssumption():82:82 -> toString
    6:6:java.lang.String toString():307 -> toString
    7:16:java.lang.String toString():307:316 -> toString
    17:17:java.lang.String toString():304:304 -> toString
com.android.tools.r8.ir.code.Assume$1 -> com.android.tools.r8.t.b.l$a:
com.android.tools.r8.ir.code.Assume$Assumption -> com.android.tools.r8.t.b.l$b:
    1:1:void <init>():319:319 -> <init>
    boolean isAssumeDynamicType() -> a
    boolean verifyCorrectnessOfValues(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView) -> a
    boolean isAssumeNonNull() -> b
    boolean isAssumeNone() -> c
com.android.tools.r8.ir.code.Assume$DynamicTypeAssumption -> com.android.tools.r8.t.b.l$c:
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement dynamicLowerBoundType -> b
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement dynamicUpperBoundType -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():359:359 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement,com.android.tools.r8.ir.code.Assume$1):359:359 -> <init>
    2:4:void <init>(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):365:367 -> <init>
    boolean isAssumeDynamicType() -> a
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement access$100(com.android.tools.r8.ir.code.Assume$DynamicTypeAssumption):359:359 -> a
    2:2:boolean verifyCorrectnessOfValues(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView):385:385 -> a
    boolean isAssumeNonNull() -> b
    1:1:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement access$200(com.android.tools.r8.ir.code.Assume$DynamicTypeAssumption):359:359 -> b
    boolean isAssumeNone() -> c
    1:1:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType():375:375 -> d
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType():371:371 -> e
    1:5:boolean equals(java.lang.Object):394:398 -> equals
    1:1:int hashCode():404:404 -> hashCode
com.android.tools.r8.ir.code.Assume$NoAssumption -> com.android.tools.r8.t.b.l$d:
    com.android.tools.r8.ir.code.Assume$NoAssumption instance -> a
    boolean $assertionsDisabled -> b
    1:2:void <clinit>():338:339 -> <clinit>
    1:1:void <init>():341:341 -> <init>
    boolean isAssumeDynamicType() -> a
    1:1:boolean verifyCorrectnessOfValues(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView):354:354 -> a
    boolean isAssumeNonNull() -> b
    boolean isAssumeNone() -> c
    1:1:com.android.tools.r8.ir.code.Assume$NoAssumption get():344:344 -> d
com.android.tools.r8.ir.code.Assume$NonNullAssumption -> com.android.tools.r8.t.b.l$e:
    com.android.tools.r8.ir.code.Assume$NonNullAssumption instance -> a
    boolean $assertionsDisabled -> b
    1:3:void <clinit>():408:410 -> <clinit>
    1:1:void <init>():412:412 -> <init>
    boolean isAssumeDynamicType() -> a
    1:1:boolean verifyCorrectnessOfValues(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView):425:425 -> a
    boolean isAssumeNonNull() -> b
    boolean isAssumeNone() -> c
    1:1:com.android.tools.r8.ir.code.Assume$NonNullAssumption get():415:415 -> d
com.android.tools.r8.ir.code.AssumeAndCheckCastAliasedValueConfiguration -> com.android.tools.r8.t.b.m:
    com.android.tools.r8.ir.code.AssumeAndCheckCastAliasedValueConfiguration INSTANCE -> a
    boolean $assertionsDisabled -> b
    1:3:void <clinit>():9:11 -> <clinit>
    1:1:void <init>():14:14 -> <init>
    1:1:com.android.tools.r8.ir.code.AssumeAndCheckCastAliasedValueConfiguration getInstance():17:17 -> a
    2:2:com.android.tools.r8.ir.code.Value getAliasForOutValue(com.android.tools.r8.ir.code.Instruction):27:27 -> a
    3:3:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
    3:3:com.android.tools.r8.ir.code.Value getAliasForOutValue(com.android.tools.r8.ir.code.Instruction):28 -> a
    4:4:java.lang.Object com.android.tools.r8.utils.ListUtils.first(java.util.List):16:16 -> a
    4:4:com.android.tools.r8.ir.code.Value getAliasForOutValue(com.android.tools.r8.ir.code.Instruction):28 -> a
    5:5:com.android.tools.r8.ir.code.Value getAliasForOutValue(com.android.tools.r8.ir.code.Instruction):28:28 -> a
    1:1:boolean isIntroducingAnAlias(com.android.tools.r8.ir.code.Instruction):22:22 -> b
com.android.tools.r8.ir.code.BasicBlock -> com.android.tools.r8.t.b.n:
    int color -> n
    int estimatedPredecessorsCount -> l
    boolean $assertionsDisabled -> p
    int unfilledPredecessorsCount -> m
    boolean filled -> i
    boolean sealed -> j
    java.util.Map currentDefinitions -> o
    int number -> g
    com.android.tools.r8.ir.code.CatchHandlers catchHandlers -> e
    java.util.List successors -> b
    java.util.Set onControlFlowEdgesMayChangeListeners -> d
    java.util.List predecessors -> c
    java.util.LinkedList instructions -> f
    java.util.List phis -> h
    java.util.Map incompletePhis -> k
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap localsAtEntry -> a
    1:1:void <clinit>():54:54 -> <clinit>
    1:124:void <init>():54:177 -> <init>
    1:2:com.android.tools.r8.ir.code.BasicBlock getUniquePredecessor():229:230 -> A
    1:2:boolean hasCatchHandlers():543:544 -> B
    1:1:boolean hasIncompletePhis():1132:1132 -> C
    1:1:boolean hasOneNormalExit():1518:1518 -> D
    1:1:boolean hasPhis():527:527 -> E
    1:1:boolean hasUniquePredecessor():225:225 -> F
    1:2:void incrementUnfilledPredecessorCount():667:668 -> G
    1:1:boolean isEmpty():612:612 -> H
    1:1:boolean isFilled():535:535 -> I
    1:1:boolean isSealed():1120:1120 -> J
    1:11:boolean isSimpleAlwaysThrowingPath():1495:1505 -> K
    1:1:boolean isTrivialGoto():1450:1450 -> L
    1:1:com.android.tools.r8.ir.code.InstructionIterator iterator():1594:1594 -> M
    1:2:boolean notifyPredecessorsMayChangeListeners():243:244 -> N
    1:2:boolean notifySuccessorsMayChangeListeners():197:198 -> O
    1:1:int numberOfCatchHandlers():1543:1543 -> P
    1:2:int numberOfThrowingInstructions():1548:1549 -> Q
    1:2:void removeAllNormalSuccessors():290:291 -> R
    3:3:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> R
    3:3:void removeAllNormalSuccessors():291 -> R
    4:12:void removeAllNormalSuccessors():292:300 -> R
    1:1:void setFilledForTesting():539:539 -> S
    1:9:java.lang.String toDetailedString():1173:1181 -> T
    10:10:boolean isFilled():535:535 -> T
    10:10:java.lang.String toDetailedString():1181 -> T
    11:12:java.lang.String toDetailedString():1181:1182 -> T
    13:13:boolean isSealed():1120:1120 -> T
    13:13:java.lang.String toDetailedString():1182 -> T
    14:51:java.lang.String toDetailedString():1182:1219 -> T
    52:52:int digits(int):1169:1169 -> T
    52:52:java.lang.String toDetailedString():1219 -> T
    53:88:java.lang.String toDetailedString():1219:1254 -> T
    1:3:void unlinkCatchHandler():781:783 -> U
    1:5:com.android.tools.r8.ir.code.BasicBlock unlinkSinglePredecessor():742:746 -> V
    1:5:void unlinkSinglePredecessorSiblingsAllowed():752:756 -> W
    1:6:com.android.tools.r8.ir.code.BasicBlock unlinkSingleSuccessor():765:770 -> X
    1:2:boolean verifyFilledPredecessors():682:683 -> Y
    1:1:boolean lambda$verifyTypes$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Instruction):85:85 -> a
    2:2:boolean verifyTypes(com.android.tools.r8.graph.AppView):85:85 -> a
    3:3:void setLocalsAtEntry(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):90:90 -> a
    4:8:void addControlFlowEdgesMayChangeListener(com.android.tools.r8.ir.code.BasicBlock$BasicBlockChangeListener):180:184 -> a
    9:27:void removePredecessor(com.android.tools.r8.ir.code.BasicBlock,java.util.Set):266:284 -> a
    28:45:void swapSuccessorsByIndex(int,int):313:330 -> a
    46:53:void replacePredecessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):445:452 -> a
    54:57:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):456:459 -> a
    58:59:boolean com.android.tools.r8.utils.ListUtils.verifyListIsOrdered(java.util.List):41:42 -> a
    58:59:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):459 -> a
    60:65:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):459:464 -> a
    66:66:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.iterator():180:180 -> a
    66:66:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):464 -> a
    67:85:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):464:482 -> a
    86:86:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.iterator():180:180 -> a
    86:86:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):484 -> a
    87:103:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):484:500 -> a
    104:104:java.lang.Iterable instructionsAfter(com.android.tools.r8.ir.code.Instruction):574:574 -> a
    105:106:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):643:644 -> a
    107:109:void clearMark(int):656:658 -> a
    110:110:void addPhi(com.android.tools.r8.ir.code.Phi):688:688 -> a
    111:111:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRMetadata):702:702 -> a
    112:112:boolean isFilled():535:535 -> a
    112:112:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRMetadata):702 -> a
    113:116:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRMetadata):702:705 -> a
    117:117:void close(com.android.tools.r8.ir.conversion.IRBuilder):709:709 -> a
    118:118:boolean isFilled():535:535 -> a
    118:118:void close(com.android.tools.r8.ir.conversion.IRBuilder):709 -> a
    119:123:void close(com.android.tools.r8.ir.conversion.IRBuilder):709:713 -> a
    124:124:boolean com.android.tools.r8.ir.code.JumpInstruction.isJumpInstruction():0:0 -> a
    124:124:void close(com.android.tools.r8.ir.conversion.IRBuilder):713 -> a
    125:125:void close(com.android.tools.r8.ir.conversion.IRBuilder):714:714 -> a
    126:127:boolean verifyNoValuesAfterThrowingInstruction():1580:1581 -> a
    126:127:void close(com.android.tools.r8.ir.conversion.IRBuilder):714 -> a
    128:128:com.android.tools.r8.ir.code.InstructionIterator iterator(int):1598:1598 -> a
    128:128:boolean verifyNoValuesAfterThrowingInstruction():1581 -> a
    128:128:void close(com.android.tools.r8.ir.conversion.IRBuilder):714 -> a
    129:134:boolean verifyNoValuesAfterThrowingInstruction():1582:1587 -> a
    129:134:void close(com.android.tools.r8.ir.conversion.IRBuilder):714 -> a
    135:135:void close(com.android.tools.r8.ir.conversion.IRBuilder):715:715 -> a
    136:147:void filledPredecessor(com.android.tools.r8.ir.conversion.IRBuilder):1079:1090 -> a
    136:147:void close(com.android.tools.r8.ir.conversion.IRBuilder):716 -> a
    148:148:boolean blocksClean(java.util.List):728:728 -> a
    149:158:void removeCatchHandlerWithGuard(com.android.tools.r8.graph.DexType):808:817 -> a
    159:159:boolean lambda$removeCatchHandlerWithGuard$6(int,com.android.tools.r8.ir.code.BasicBlock):814:814 -> a
    160:169:java.util.List unlink(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.DominatorTree,java.util.Set):843:852 -> a
    170:179:void linkCatchSuccessors(java.util.List,java.util.List):891:900 -> a
    180:192:void appendCatchHandler(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType):904:916 -> a
    193:196:int numberOfNormalSuccessors():218:221 -> a
    193:196:void appendCatchHandler(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType):917 -> a
    197:210:void appendCatchHandler(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType):922:935 -> a
    211:221:boolean renameGuardsInCatchHandlers(com.android.tools.r8.graph.GraphLense):946:956 -> a
    222:223:com.android.tools.r8.ir.code.Value readOnThrowValue(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1006:1007 -> a
    222:223:boolean isOnThrowValue(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1013 -> a
    224:242:void updateCurrentDefinition(int,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1044:1062 -> a
    243:247:void writeCurrentDefinition(int,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):1069:1073 -> a
    248:251:void writeCurrentDefinition(int,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):1072:1075 -> a
    252:256:void addIncompletePhi(int,com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1124:1128 -> a
    257:264:void appendBasicBlockList(java.lang.StringBuilder,java.util.List,java.util.function.Function):1141:1148 -> a
    265:268:void printDebugValueSet(java.lang.String,java.util.List,java.lang.StringBuilder):1258:1261 -> a
    269:301:void print(com.android.tools.r8.utils.CfgPrinter):1266:1298 -> a
    302:303:void printBlockList(com.android.tools.r8.utils.CfgPrinter,java.util.List):1302:1303 -> a
    304:305:com.android.tools.r8.ir.code.BasicBlock createGotoBlock(int,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.BasicBlock):1361:1362 -> a
    306:310:com.android.tools.r8.ir.code.BasicBlock createGotoBlock(int,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.IRMetadata):1375:1379 -> a
    311:317:com.android.tools.r8.ir.code.BasicBlock createIfBlock(int,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.Instruction[]):1410:1416 -> a
    318:327:com.android.tools.r8.ir.code.BasicBlock createRethrowBlock(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):1432:1441 -> a
    328:328:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):698:698 -> a
    328:328:com.android.tools.r8.ir.code.BasicBlock createRethrowBlock(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):1442 -> a
    329:329:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):698:698 -> a
    329:329:com.android.tools.r8.ir.code.BasicBlock createRethrowBlock(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):1443 -> a
    330:331:com.android.tools.r8.ir.code.BasicBlock createRethrowBlock(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):1444:1445 -> a
    332:333:boolean canThrow():1557:1558 -> a
    334:334:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRCode):1606:1606 -> a
    335:335:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRMetadata):1610:1610 -> a
    335:335:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRCode):1606 -> a
    336:336:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRMetadata):1610:1610 -> a
    337:337:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRCode,int):1614:1614 -> a
    338:338:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):1625:1625 -> a
    339:350:com.android.tools.r8.ir.code.BasicBlock createSplitBlock(int,boolean):1643:1654 -> a
    351:356:void moveCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):1675:1680 -> a
    351:356:com.android.tools.r8.ir.code.BasicBlock createSplitBlock(int,boolean):1658 -> a
    357:361:com.android.tools.r8.ir.code.BasicBlock createSplitBlock(int,boolean):1662:1666 -> a
    362:378:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1691:1707 -> a
    379:409:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1726:1756 -> a
    379:409:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1707 -> a
    410:410:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):698:698 -> a
    410:410:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1757 -> a
    410:410:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1707 -> a
    411:414:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1758:1761 -> a
    411:414:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1707 -> a
    415:415:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):698:698 -> a
    415:415:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1762 -> a
    415:415:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1707 -> a
    416:421:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1763:1768 -> a
    416:421:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1707 -> a
    422:422:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1746:1746 -> a
    422:422:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1707 -> a
    423:423:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    423:423:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1746 -> a
    423:423:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1707 -> a
    424:458:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1746:1780 -> a
    424:458:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1707 -> a
    459:459:void com.android.tools.r8.ir.code.Phi.addOperands(java.util.List):136:136 -> a
    459:459:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1782 -> a
    459:459:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1707 -> a
    460:460:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1783:1783 -> a
    460:460:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1707 -> a
    461:461:int splitCriticalExceptionEdges(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1726:1726 -> a
    461:461:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1707 -> a
    462:536:java.util.List appendCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):1800:1874 -> a
    1:1:void lambda$notifyPredecessorsMayChangeListeners$2(com.android.tools.r8.ir.code.BasicBlock$BasicBlockChangeListener):244:244 -> b
    2:32:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):335:365 -> b
    33:33:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> b
    33:33:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):367 -> b
    34:34:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):367:367 -> b
    35:35:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> b
    35:35:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):368 -> b
    36:39:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):368:371 -> b
    40:44:boolean hasLinearFlow(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):432:436 -> b
    40:44:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):371 -> b
    45:97:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):371:423 -> b
    98:98:java.lang.Iterable instructionsBefore(com.android.tools.r8.ir.code.Instruction):578:578 -> b
    99:100:void decrementUnfilledPredecessorCount(int):672:673 -> b
    101:102:void removePhi(com.android.tools.r8.ir.code.Phi):692:693 -> b
    103:103:void unlinkCatchHandlerForGuard(com.android.tools.r8.graph.DexType):796:796 -> b
    104:108:boolean isCatchHandlerForSingleGuard():822:826 -> b
    104:108:void unlinkCatchHandlerForGuard(com.android.tools.r8.graph.DexType):797 -> b
    109:113:void unlinkCatchHandlerForGuard(com.android.tools.r8.graph.DexType):799:803 -> b
    114:141:java.util.Set cleanForRemoval():857:884 -> b
    142:143:com.android.tools.r8.ir.code.Value readOnThrowValue(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1006:1007 -> b
    142:143:com.android.tools.r8.ir.code.Value readCurrentDefinition(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1019 -> b
    144:146:com.android.tools.r8.ir.code.Value readCurrentDefinition(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1021:1023 -> b
    147:148:com.android.tools.r8.ir.code.BasicBlock$EdgeType getEdgeType(com.android.tools.r8.ir.code.BasicBlock):1095:1096 -> b
    149:161:void removeInstructions(java.util.List):1324:1336 -> b
    162:162:void setInstructions(java.util.LinkedList):1316:1316 -> b
    162:162:void removeInstructions(java.util.List):1337 -> b
    1:1:void lambda$notifySuccessorsMayChangeListeners$1(com.android.tools.r8.ir.code.BasicBlock$BasicBlockChangeListener):198:198 -> c
    2:6:void swapSuccessors(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):305:309 -> c
    7:8:void removePhisByIndex(java.util.List):521:522 -> c
    9:10:boolean isMarked(int):662:663 -> c
    11:14:boolean hasCatchSuccessor(com.android.tools.r8.ir.code.BasicBlock):1100:1103 -> c
    15:15:void clearCatchHandlers():1534:1534 -> c
    16:16:com.android.tools.r8.ir.code.InstructionIterator iterator(com.android.tools.r8.ir.code.Instruction):1602:1602 -> c
    1:2:void lambda$blocksClean$5(com.android.tools.r8.ir.code.BasicBlock):730:731 -> d
    3:5:void clearCurrentDefinitions():992:994 -> d
    6:6:com.android.tools.r8.ir.code.InstructionIterator iterator(int):1598:1598 -> d
    7:7:com.android.tools.r8.ir.code.InstructionIterator iterator(com.android.tools.r8.ir.code.Instruction):1602:1602 -> d
    7:7:java.util.Iterator lambda$instructionsAfter$3(com.android.tools.r8.ir.code.Instruction):574 -> d
    java.lang.String lambda$toDetailedString$7(com.android.tools.r8.ir.code.BasicBlock) -> e
    1:1:java.util.Iterator lambda$instructionsBefore$4(com.android.tools.r8.ir.code.Instruction):579:579 -> e
    2:3:void clearUserInfo():638:639 -> e
    4:7:void mark(int):649:652 -> e
    1:2:int numberInstructions(int):562:563 -> f
    3:6:void link(com.android.tools.r8.ir.code.BasicBlock):721:724 -> f
    7:8:boolean consistentCatchHandlers():963:964 -> f
    9:9:com.android.tools.r8.ir.code.CatchHandlers getCatchHandlersWithSuccessorIndexes():1530:1530 -> f
    9:9:boolean consistentCatchHandlers():965 -> f
    10:11:boolean consistentCatchHandlers():967:968 -> f
    12:31:boolean consistentCatchHandlers():967:986 -> f
    32:34:void removeInstruction(com.android.tools.r8.ir.code.Instruction):1345:1347 -> f
    int onThrowValueRegister(int) -> g
    1:2:void decrementUnfilledPredecessorCount():677:678 -> g
    3:4:java.lang.String predecessorPostfix(com.android.tools.r8.ir.code.BasicBlock):1162:1163 -> g
    5:13:int guardsForCatchSuccessor(com.android.tools.r8.ir.code.BasicBlock):1107:1115 -> g
    5:13:java.lang.String predecessorPostfix(com.android.tools.r8.ir.code.BasicBlock):1163 -> g
    14:14:java.lang.String predecessorPostfix(com.android.tools.r8.ir.code.BasicBlock):1163:1163 -> g
    1:3:void removeSuccessor(com.android.tools.r8.ir.code.BasicBlock):260:262 -> h
    4:4:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>(int[]):135:135 -> h
    4:4:void removeSuccessor(com.android.tools.r8.ir.code.BasicBlock):262 -> h
    5:5:void removeSuccessor(com.android.tools.r8.ir.code.BasicBlock):262:262 -> h
    6:7:void setNumber(int):553:554 -> h
    8:22:void deduplicatePhis():1927:1941 -> h
    1:4:void detachAllSuccessors():835:838 -> i
    5:6:void transferCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):1538:1539 -> i
    7:8:boolean verifyOnThrowWrite(int):1570:1571 -> i
    1:3:com.android.tools.r8.ir.code.BasicBlock endOfGotoChain():1478:1480 -> j
    1:1:com.android.tools.r8.ir.code.Instruction entry():616:616 -> k
    1:2:com.android.tools.r8.ir.code.Instruction exceptionalExit():626:627 -> l
    3:3:com.android.tools.r8.ir.code.InstructionIterator iterator(int):1598:1598 -> l
    3:3:com.android.tools.r8.ir.code.Instruction exceptionalExit():627 -> l
    4:6:com.android.tools.r8.ir.code.Instruction exceptionalExit():628:630 -> l
    1:3:com.android.tools.r8.ir.code.JumpInstruction exit():620:622 -> m
    1:5:com.android.tools.r8.ir.code.CatchHandlers getCatchHandlers():1522:1526 -> n
    1:1:com.android.tools.r8.ir.code.CatchHandlers getCatchHandlersWithSuccessorIndexes():1530:1530 -> o
    1:1:java.util.LinkedList getInstructions():570:570 -> p
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getLocalsAtEntry():94:94 -> q
    1:2:java.util.List getMutablePredecessors():238:239 -> r
    1:2:java.util.List getMutableSuccessors():192:193 -> s
    1:7:java.util.List getNormalPredecessors():250:256 -> t
    1:1:java.lang.String toString():1154:1154 -> toString
    1:11:java.util.List getNormalSuccessors():204:214 -> u
    1:2:int getNumber():548:549 -> v
    1:1:java.lang.String getNumberAsString():558:558 -> w
    1:1:java.util.List getPhis():531:531 -> x
    1:1:java.util.List getPredecessors():234:234 -> y
    1:1:java.util.List getSuccessors():188:188 -> z
com.android.tools.r8.ir.code.BasicBlock$1 -> com.android.tools.r8.t.b.n$a:
    com.android.tools.r8.ir.code.Instruction next -> b
    com.android.tools.r8.ir.code.Instruction val$instruction -> c
    com.android.tools.r8.ir.code.BasicBlock this$0 -> d
    com.android.tools.r8.ir.code.InstructionIterator iterator -> a
    1:4:void <init>(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):579:582 -> <init>
    1:3:com.android.tools.r8.ir.code.Instruction advance():585:587 -> c
    1:1:boolean hasNext():596:596 -> hasNext
    1:5:com.android.tools.r8.ir.code.Instruction next():601:605 -> next
    1:5:java.lang.Object next():579 -> next
    6:6:com.android.tools.r8.ir.code.Instruction next():603:603 -> next
    6:6:java.lang.Object next():579 -> next
com.android.tools.r8.ir.code.BasicBlock$BasicBlockChangeListener -> com.android.tools.r8.t.b.n$b:
com.android.tools.r8.ir.code.BasicBlock$EdgeType -> com.android.tools.r8.t.b.n$c:
    com.android.tools.r8.ir.code.BasicBlock$EdgeType NORMAL -> b
    com.android.tools.r8.ir.code.BasicBlock$EdgeType EXCEPTIONAL -> c
    com.android.tools.r8.ir.code.BasicBlock$EdgeType NON_EDGE -> a
    1:3:void <clinit>():113:115 -> <clinit>
    1:1:void <init>(java.lang.String,int):112:112 -> <init>
com.android.tools.r8.ir.code.BasicBlock$PhiEquivalence -> com.android.tools.r8.t.b.n$d:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():1904:1904 -> <clinit>
    1:1:void <init>():1904:1904 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.BasicBlock$1):1904:1904 -> <init>
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):1904:1904 -> doEquivalent
    2:4:boolean doEquivalent(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Phi):1907:1909 -> doEquivalent
    2:4:boolean doEquivalent(java.lang.Object,java.lang.Object):1904 -> doEquivalent
    1:1:int doHash(java.lang.Object):1904:1904 -> doHash
    2:3:int doHash(com.android.tools.r8.ir.code.Phi):1919:1920 -> doHash
    2:3:int doHash(java.lang.Object):1904 -> doHash
com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo -> com.android.tools.r8.t.b.n$e:
    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo CAN_THROW -> b
    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo NO_THROW -> a
    1:2:void <clinit>():104:105 -> <clinit>
    1:1:void <init>(java.lang.String,int):103:103 -> <init>
    1:1:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    1:1:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo defaultForConstString(com.android.tools.r8.utils.InternalOptions):108 -> a
    2:2:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo defaultForConstString(com.android.tools.r8.utils.InternalOptions):108:108 -> a
com.android.tools.r8.ir.code.BasicBlockInstructionIterator -> com.android.tools.r8.t.b.o:
    java.util.ListIterator instructionIterator -> a
    1:2:void <init>(com.android.tools.r8.ir.code.BasicBlock):13:14 -> <init>
    3:4:void <init>(com.android.tools.r8.ir.code.BasicBlock,int):17:18 -> <init>
    5:6:void <init>(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):22:23 -> <init>
    boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> a
    1:1:boolean hasNext():38:38 -> hasNext
    1:1:boolean hasPrevious():28:28 -> hasPrevious
    1:1:com.android.tools.r8.ir.code.Instruction next():43:43 -> next
    1:1:java.lang.Object next():9 -> next
    1:1:com.android.tools.r8.ir.code.Instruction previous():33:33 -> previous
com.android.tools.r8.ir.code.BasicBlockInstructionListIterator -> com.android.tools.r8.t.b.p:
    com.android.tools.r8.ir.code.IRMetadata metadata -> e
    java.util.ListIterator listIterator -> b
    com.android.tools.r8.ir.code.Instruction current -> c
    boolean $assertionsDisabled -> f
    com.android.tools.r8.ir.code.Position position -> d
    com.android.tools.r8.ir.code.BasicBlock block -> a
    1:1:void <clinit>():29:29 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.BasicBlock):38:38 -> <init>
    2:9:void <init>(com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.BasicBlock):34:41 -> <init>
    10:10:void <init>(com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.BasicBlock,int):44:44 -> <init>
    11:24:void <init>(com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.BasicBlock,int):34:47 -> <init>
    25:26:void <init>(com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):52:53 -> <init>
    boolean lambda$inlineInvoke$2(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock) -> a
    boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> a
    1:1:void setInsertionPosition(com.android.tools.r8.ir.code.Position):90:90 -> a
    2:2:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction,java.util.Set):185:185 -> a
    3:3:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
    3:3:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction,java.util.Set):188 -> a
    4:20:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction,java.util.Set):188:204 -> a
    21:21:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction,java.util.Set):186:186 -> a
    22:26:com.android.tools.r8.ir.code.Value insertConstNullInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):209:213 -> a
    27:35:void replaceCurrentInstructionWithConstInt(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,int):228:236 -> a
    36:36:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
    36:36:void replaceCurrentInstructionWithConstInt(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,int):236 -> a
    37:40:void replaceCurrentInstructionWithConstInt(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,int):236:239 -> a
    41:41:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    41:41:void replaceCurrentInstructionWithConstInt(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,int):242 -> a
    42:42:void replaceCurrentInstructionWithConstInt(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,int):229:229 -> a
    43:52:void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set):251:260 -> a
    53:53:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
    53:53:void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set):260 -> a
    54:57:void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set):260:263 -> a
    58:58:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    58:58:void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set):266 -> a
    59:60:void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set):269:270 -> a
    61:61:void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set):252:252 -> a
    62:85:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):281:304 -> a
    86:86:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
    86:86:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):304 -> a
    87:90:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):304:307 -> a
    91:91:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    91:91:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):310 -> a
    92:98:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):311:317 -> a
    99:99:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):282:282 -> a
    100:109:void lambda$replaceCurrentInstructionWithThrowNull$1(java.util.Set,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,java.util.Set,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.BasicBlock):319:328 -> a
    110:117:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):336:343 -> a
    118:118:boolean hasNext():58:58 -> a
    118:118:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):343 -> a
    119:122:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):343:346 -> a
    123:123:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> a
    123:123:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):346 -> a
    124:124:boolean hasPrevious():74:74 -> a
    124:124:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):350 -> a
    125:129:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):350:354 -> a
    130:131:void com.android.tools.r8.ir.code.Goto.<init>(com.android.tools.r8.ir.code.BasicBlock):21:22 -> a
    130:131:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):354 -> a
    132:150:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):355:373 -> a
    151:158:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):382:389 -> a
    159:191:void splitBlockAndCopyCatchHandlers(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,java.util.ListIterator):415:447 -> a
    192:197:void removeArgumentInstruction(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Value):485:490 -> a
    198:204:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):501:507 -> a
    205:207:boolean canThrow(com.android.tools.r8.ir.code.IRCode):395:397 -> a
    205:207:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):509 -> a
    208:225:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):513:530 -> a
    226:226:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
    226:226:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):530 -> a
    227:234:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):530:537 -> a
    235:235:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
    235:235:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):540 -> a
    236:239:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):540:543 -> a
    240:242:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):542:544 -> a
    243:243:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    243:243:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):545 -> a
    244:276:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):545:577 -> a
    277:277:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
    277:277:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):581 -> a
    278:282:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):581:585 -> a
    283:283:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
    283:283:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):586 -> a
    284:291:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):586:593 -> a
    292:292:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    292:292:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):593 -> a
    293:312:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):593:612 -> a
    313:313:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    313:313:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):612 -> a
    314:314:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):615:615 -> a
    315:315:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
    315:315:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):614 -> a
    316:349:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):613:646 -> a
    350:350:java.util.ListIterator com.android.tools.r8.ir.code.IRCode.listIterator(int):983:983 -> a
    350:350:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):646 -> a
    351:364:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):649:662 -> a
    365:381:void appendCatchHandlers(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):462:478 -> a
    365:381:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):663 -> a
    382:387:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):670:675 -> a
    388:388:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    388:388:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):675 -> a
    389:399:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):675:685 -> a
    400:404:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):684:688 -> a
    405:431:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):694:720 -> a
    432:432:void com.android.tools.r8.ir.code.Phi.addOperands(java.util.List):136:136 -> a
    432:432:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):725 -> a
    433:433:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):726:726 -> a
    434:434:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    434:434:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):726 -> a
    435:452:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):726:743 -> a
    453:453:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1059:1059 -> a
    453:453:com.android.tools.r8.ir.code.Value insertConstIntInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions,int):218 -> a
    454:456:com.android.tools.r8.ir.code.Value insertConstIntInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions,int):220:222 -> a
    1:1:void add(java.lang.Object):29:29 -> add
    1:7:void add(com.android.tools.r8.ir.code.Instruction):103:109 -> b
    1:1:com.android.tools.r8.ir.code.Instruction next():63:63 -> c
    1:7:void removeOrReplaceByDebugLocalRead():173:179 -> e
    8:8:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> e
    8:8:void removeOrReplaceByDebugLocalRead():179 -> e
    9:9:void removeOrReplaceByDebugLocalRead():174:174 -> e
    1:5:void removeInstructionIgnoreOutValue():164:168 -> g
    6:6:void removeInstructionIgnoreOutValue():165:165 -> g
    1:1:boolean hasNext():58:58 -> hasNext
    1:1:boolean hasPrevious():74:74 -> hasPrevious
    1:1:java.lang.Object next():29:29 -> next
    1:1:int nextIndex():69:69 -> nextIndex
    1:1:java.lang.Object previous():29:29 -> previous
    2:2:com.android.tools.r8.ir.code.Instruction previous():79:79 -> previous
    1:1:int previousIndex():85:85 -> previousIndex
    1:6:void remove():139:144 -> remove
    7:7:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> remove
    7:7:void remove():144 -> remove
    8:9:void remove():144:145 -> remove
    10:10:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> remove
    10:10:void remove():145 -> remove
    11:25:void remove():145:159 -> remove
    26:26:void remove():140:140 -> remove
    1:1:void set(java.lang.Object):29:29 -> set
    2:5:void set(com.android.tools.r8.ir.code.Instruction):122:125 -> set
    2:5:void set(java.lang.Object):29 -> set
com.android.tools.r8.ir.code.BasicBlockIterator -> com.android.tools.r8.t.b.q:
    java.util.ListIterator listIterator -> b
    com.android.tools.r8.ir.code.IRCode code -> a
    com.android.tools.r8.ir.code.BasicBlock current -> c
    1:3:void <init>(com.android.tools.r8.ir.code.IRCode):15:17 -> <init>
    4:6:void <init>(com.android.tools.r8.ir.code.IRCode,int):20:22 -> <init>
    1:1:void add(java.lang.Object):9:9 -> add
    2:2:void add(com.android.tools.r8.ir.code.BasicBlock):59:59 -> add
    2:2:void add(java.lang.Object):9 -> add
    1:1:boolean hasNext():27:27 -> hasNext
    1:1:boolean hasPrevious():43:43 -> hasPrevious
    1:1:com.android.tools.r8.ir.code.BasicBlock next():32:32 -> next
    1:1:java.lang.Object next():9 -> next
    1:1:int nextIndex():38:38 -> nextIndex
    1:1:com.android.tools.r8.ir.code.BasicBlock previous():48:48 -> previous
    1:1:java.lang.Object previous():9 -> previous
    1:1:int previousIndex():54:54 -> previousIndex
    1:12:void remove():77:88 -> remove
    13:13:void remove():78:78 -> remove
    1:1:void set(java.lang.Object):9:9 -> set
    2:2:void set(com.android.tools.r8.ir.code.BasicBlock):64:64 -> set
    2:2:void set(java.lang.Object):9 -> set
com.android.tools.r8.ir.code.Binop -> com.android.tools.r8.t.b.r:
    com.android.tools.r8.ir.code.NumericType type -> h
    1:8:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):24:31 -> <init>
    1:1:int maxInValueRegister():90:90 -> A2
    1:1:int maxOutValueRegister():95:95 -> B2
    1:1:com.android.tools.r8.ir.code.NumericType getNumericType():36:36 -> G2
    boolean isCommutative() -> H2
    1:1:com.android.tools.r8.ir.code.Value leftValue():40:40 -> I2
    1:2:int maxInOutValueRegisterSize():82:83 -> J2
    1:1:com.android.tools.r8.ir.code.Value rightValue():44:44 -> K2
    boolean hasInvariantOutType() -> L0
    1:8:boolean isTwoAddr(com.android.tools.r8.ir.regalloc.RegisterAllocator):51:58 -> a
    9:9:boolean com.android.tools.r8.utils.InternalOptions.canHaveMul2AddrBug():1318:1318 -> a
    9:9:boolean isTwoAddr(com.android.tools.r8.ir.regalloc.RegisterAllocator):58 -> a
    10:10:boolean isTwoAddr(com.android.tools.r8.ir.regalloc.RegisterAllocator):58:58 -> a
    11:11:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forBinop():90:90 -> a
    11:11:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):127 -> a
    12:12:int foldIntegers(int,int):99:99 -> a
    13:13:long foldLongs(long,long):103:103 -> a
    14:14:float foldFloat(float,float):107:107 -> a
    15:15:double foldDouble(double,double):111:111 -> a
    16:17:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):132:133 -> a
    18:18:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):138:138 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    boolean isBinop() -> d1
    1:3:boolean fitsInLit16Instruction(com.android.tools.r8.ir.code.Value):68:70 -> g
    1:3:boolean fitsInDexInstruction(com.android.tools.r8.ir.code.Value):64 -> g
    1:3:boolean fitsInLit8Instruction(com.android.tools.r8.ir.code.Value):74:76 -> h
    com.android.tools.r8.ir.code.Binop asBinop() -> r
com.android.tools.r8.ir.code.CanonicalPositions -> com.android.tools.r8.t.b.s:
    java.util.Map canonicalPositions -> b
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ir.code.Position callerPosition -> a
    com.android.tools.r8.ir.code.Position syntheticPosition -> d
    com.android.tools.r8.ir.code.Position preamblePosition -> c
    1:1:void <clinit>():16:16 -> <clinit>
    1:12:void <init>(com.android.tools.r8.ir.code.Position,int,com.android.tools.r8.graph.DexMethod):27:38 -> <init>
    1:1:com.android.tools.r8.ir.code.Position getPreamblePosition():42:42 -> a
    2:4:com.android.tools.r8.ir.code.Position canonicalizeCallerPosition(com.android.tools.r8.ir.code.Position):61:63 -> a
    5:5:com.android.tools.r8.ir.code.Position getCanonical(com.android.tools.r8.ir.code.Position):50:50 -> a
    5:5:com.android.tools.r8.ir.code.Position canonicalizeCallerPosition(com.android.tools.r8.ir.code.Position):64 -> a
    6:10:com.android.tools.r8.ir.code.Position canonicalizeCallerPosition(com.android.tools.r8.ir.code.Position):66:70 -> a
    11:11:com.android.tools.r8.ir.code.Position getCanonical(com.android.tools.r8.ir.code.Position):50:50 -> a
    11:11:com.android.tools.r8.ir.code.Position canonicalizeCallerPosition(com.android.tools.r8.ir.code.Position):67 -> a
    12:21:com.android.tools.r8.ir.code.Position getExceptionalExitPosition(boolean,java.util.function.Supplier,com.android.tools.r8.graph.DexMethod):80:89 -> a
    22:22:com.android.tools.r8.ir.code.Position getPreamblePosition():42:42 -> a
    22:22:com.android.tools.r8.ir.code.Position getExceptionalExitPosition(boolean,java.util.function.Supplier,com.android.tools.r8.graph.DexMethod):93 -> a
    23:32:com.android.tools.r8.ir.code.Position getExceptionalExitPosition(boolean,java.util.function.Supplier,com.android.tools.r8.graph.DexMethod):94:103 -> a
    1:1:com.android.tools.r8.ir.code.Position getCanonical(com.android.tools.r8.ir.code.Position):50:50 -> b
com.android.tools.r8.ir.code.CatchHandlers -> com.android.tools.r8.t.b.t:
    java.util.List targets -> b
    java.util.List guards -> a
    java.util.Set uniqueTargets -> c
    boolean $assertionsDisabled -> f
    com.android.tools.r8.ir.code.CatchHandlers EMPTY_INDICES -> d
    com.android.tools.r8.ir.code.CatchHandlers EMPTY_BASIC_BLOCK -> e
    1:19:void <clinit>():17:35 -> <clinit>
    1:3:void <init>():37:39 -> <init>
    4:9:void <init>(java.util.List,java.util.List):42:47 -> <init>
    1:1:java.util.List access$000(com.android.tools.r8.ir.code.CatchHandlers):17:17 -> a
    2:2:java.util.List getGuards():60:60 -> a
    2:2:boolean hasCatchAll(com.android.tools.r8.graph.DexItemFactory):75 -> a
    3:3:boolean hasCatchAll(com.android.tools.r8.graph.DexItemFactory):75:75 -> a
    4:4:java.util.List getGuards():60:60 -> a
    4:4:boolean hasCatchAll(com.android.tools.r8.graph.DexItemFactory):76 -> a
    5:5:boolean hasCatchAll(com.android.tools.r8.graph.DexItemFactory):76:76 -> a
    6:6:java.util.List getAllTargets():64:64 -> a
    7:10:com.android.tools.r8.ir.code.CatchHandlers appendGuard(com.android.tools.r8.graph.DexType,java.lang.Object):80:83 -> a
    11:20:com.android.tools.r8.ir.code.CatchHandlers removeGuard(com.android.tools.r8.graph.DexType):87:96 -> a
    21:22:void lambda$removeGuard$0(com.android.tools.r8.graph.DexType,java.util.List,java.util.List,com.android.tools.r8.graph.DexType,java.lang.Object):92:93 -> a
    23:24:void forEach(java.util.function.BiConsumer):100:101 -> a
    1:1:java.util.List access$100(com.android.tools.r8.ir.code.CatchHandlers):17:17 -> b
    2:2:java.util.List getGuards():60:60 -> b
    1:4:java.util.Set getUniqueTargets():68:71 -> d
    1:5:boolean equals(java.lang.Object):131:135 -> equals
    1:1:int hashCode():140:140 -> hashCode
    1:1:boolean isEmpty():51:51 -> isEmpty
    1:1:java.util.Iterator iterator():107:107 -> iterator
    1:2:int size():55:56 -> size
com.android.tools.r8.ir.code.CatchHandlers$1 -> com.android.tools.r8.t.b.t$a:
    com.android.tools.r8.ir.code.CatchHandlers this$0 -> b
    int nextIndex -> a
    1:3:void <init>(com.android.tools.r8.ir.code.CatchHandlers):107:109 -> <init>
    1:1:boolean hasNext():113:113 -> hasNext
    1:4:com.android.tools.r8.ir.code.CatchHandlers$CatchHandler next():118:121 -> next
    1:4:java.lang.Object next():107 -> next
com.android.tools.r8.ir.code.CatchHandlers$CatchHandler -> com.android.tools.r8.t.b.t$b:
    java.lang.Object target -> b
    com.android.tools.r8.graph.DexType guard -> a
    1:3:void <init>(com.android.tools.r8.graph.DexType,java.lang.Object):24:26 -> <init>
com.android.tools.r8.ir.code.CheckCast -> com.android.tools.r8.t.b.u:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexType type -> h
    1:1:void <clinit>():21:21 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):30:31 -> <init>
    int maxInValueRegister() -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.graph.DexType getType():45:45 -> G2
    1:1:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> H2
    1:1:com.android.tools.r8.ir.code.Value object():49 -> H2
    2:2:com.android.tools.r8.ir.code.Value object():49:49 -> H2
    boolean hasInvariantOutType() -> L0
    boolean instructionTypeCanThrow() -> R0
    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):41:41 -> a
    2:15:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57:70 -> a
    16:16:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):114:114 -> a
    17:17:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):119:119 -> a
    18:19:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):164:165 -> a
    20:20:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):176:176 -> a
    21:21:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):181:181 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):78:78 -> b
    2:8:boolean verifyTypes(com.android.tools.r8.graph.AppView):124:130 -> b
    9:9:com.android.tools.r8.graph.DexType getType():45:45 -> b
    9:9:boolean verifyTypes(com.android.tools.r8.graph.AppView):132 -> b
    10:30:boolean verifyTypes(com.android.tools.r8.graph.AppView):132:152 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    boolean isCheckCast() -> e1
    com.android.tools.r8.ir.code.CheckCast asCheckCast() -> s
    1:1:java.lang.String toString():108:108 -> toString
com.android.tools.r8.ir.code.Cmp -> com.android.tools.r8.t.b.v:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.ir.code.Cmp$Bias bias -> i
    1:1:void <clinit>():26:26 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Cmp$Bias,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):35:36 -> <init>
    int maxInValueRegister() -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    boolean isCommutative() -> H2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:28:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57:84 -> a
    29:30:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80:81 -> a
    31:36:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):71:76 -> a
    37:61:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:86 -> a
    62:70:java.lang.String biasToString(com.android.tools.r8.ir.code.Cmp$Bias):90:98 -> a
    71:85:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):163:177 -> a
    86:97:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):175:186 -> a
    98:110:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):184:196 -> a
    111:117:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):195:201 -> a
    118:124:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):200:206 -> a
    125:128:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):205:208 -> a
    129:135:com.android.tools.r8.ir.analysis.constant.LatticeElement buildLatticeResult(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.LongInterval,com.android.tools.r8.utils.LongInterval):213:219 -> a
    136:136:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):234:234 -> a
    137:137:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):239:239 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):136:136 -> b
    boolean isCmp() -> f1
    com.android.tools.r8.ir.code.Cmp asCmp() -> t
    1:17:java.lang.String toString():104:120 -> toString
    18:18:java.lang.String toString():117:117 -> toString
    19:20:java.lang.String toString():113:114 -> toString
    21:43:java.lang.String toString():109:131 -> toString
com.android.tools.r8.ir.code.Cmp$Bias -> com.android.tools.r8.t.b.v$a:
    com.android.tools.r8.ir.code.Cmp$Bias LT -> c
    com.android.tools.r8.ir.code.Cmp$Bias NONE -> a
    com.android.tools.r8.ir.code.Cmp$Bias GT -> b
    com.android.tools.r8.ir.code.Cmp$Bias[] $VALUES -> d
    1:1:void <clinit>():29:29 -> <clinit>
    2:2:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(java.lang.String,int):28:28 -> <init>
    1:1:com.android.tools.r8.ir.code.Cmp$Bias[] values():28:28 -> a
com.android.tools.r8.ir.code.ConstClass -> com.android.tools.r8.t.b.w:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexType clazz -> h
    1:1:void <clinit>():24:24 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):29:30 -> <init>
    1:1:int maxInValueRegister():73:73 -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.graph.DexType getValue():62:62 -> G2
    boolean instructionInstanceCanThrow() -> P0
    boolean instructionTypeCanBeCanonicalized() -> Q0
    boolean instructionTypeCanThrow() -> R0
    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):40:40 -> a
    2:7:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstClass):44:49 -> a
    8:9:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstClass):53:54 -> a
    10:10:com.android.tools.r8.graph.DexType getValue():62:62 -> a
    10:10:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstClass):54 -> a
    11:11:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstClass):54:54 -> a
    12:12:com.android.tools.r8.ir.code.Value dest():58:58 -> a
    12:12:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):67 -> a
    13:14:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):67:68 -> a
    15:15:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):142:142 -> a
    16:16:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):137:137 -> a
    16:16:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):142 -> a
    17:17:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):168:168 -> a
    18:18:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):173:173 -> a
    19:19:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):178:178 -> a
    20:20:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):183:183 -> a
    21:21:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):188:188 -> a
    1:1:com.android.tools.r8.graph.DexType getValue():62:62 -> b
    1:1:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):104 -> b
    2:13:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):104:115 -> b
    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    14:14:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):118 -> b
    15:26:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):121:132 -> b
    27:27:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):152:152 -> b
    1:1:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):137:137 -> c
    boolean isConstClass() -> g1
    boolean isOutConstant() -> j2
    1:1:java.lang.String toString():84:84 -> toString
    com.android.tools.r8.ir.code.ConstClass asConstClass() -> u
com.android.tools.r8.ir.code.ConstInstruction -> com.android.tools.r8.t.b.x:
    1:1:void <init>(com.android.tools.r8.ir.code.Value):33:33 -> <init>
    com.android.tools.r8.ir.code.ConstInstruction getOutConstantConstInstruction() -> G0
    boolean hasInvariantOutType() -> L0
    1:14:com.android.tools.r8.ir.code.ConstInstruction copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstInstruction):15:28 -> a
    15:15:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstInstruction():107:107 -> a
    15:15:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):54 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    boolean isConstInstruction() -> h1
    com.android.tools.r8.ir.code.ConstInstruction asConstInstruction() -> v
com.android.tools.r8.ir.code.ConstMethodHandle -> com.android.tools.r8.t.b.y:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexMethodHandle methodHandle -> h
    1:1:void <clinit>():20:20 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexMethodHandle):25:26 -> <init>
    1:1:int maxInValueRegister():78:78 -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.graph.DexMethodHandle getValue():57:57 -> G2
    boolean instructionTypeCanThrow() -> R0
    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):36:36 -> a
    2:2:com.android.tools.r8.ir.code.ConstMethodHandle copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodHandle):49:49 -> a
    3:3:com.android.tools.r8.graph.DexMethodHandle getValue():57:57 -> a
    3:3:com.android.tools.r8.ir.code.ConstMethodHandle copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodHandle):49 -> a
    4:4:com.android.tools.r8.ir.code.ConstMethodHandle copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodHandle):49:49 -> a
    5:5:com.android.tools.r8.ir.code.Value dest():53:53 -> a
    5:5:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62 -> a
    6:7:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:63 -> a
    8:8:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):68:68 -> a
    9:9:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):121:121 -> a
    10:10:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):120:120 -> a
    11:11:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):126:126 -> a
    12:12:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):131:131 -> a
    13:13:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstMethodHandle():333:333 -> a
    13:13:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):85 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):73:73 -> b
    boolean isConstMethodHandle() -> i1
    boolean isOutConstant() -> j2
    1:1:java.lang.String toString():95:95 -> toString
    com.android.tools.r8.ir.code.ConstMethodHandle asConstMethodHandle() -> w
com.android.tools.r8.ir.code.ConstMethodType -> com.android.tools.r8.t.b.z:
    com.android.tools.r8.graph.DexProto methodType -> h
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():20:20 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexProto):25:26 -> <init>
    1:1:int maxInValueRegister():78:78 -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.graph.DexProto getValue():57:57 -> G2
    boolean instructionTypeCanThrow() -> R0
    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):36:36 -> a
    2:2:com.android.tools.r8.ir.code.ConstMethodType copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodType):49:49 -> a
    3:3:com.android.tools.r8.graph.DexProto getValue():57:57 -> a
    3:3:com.android.tools.r8.ir.code.ConstMethodType copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodType):49 -> a
    4:4:com.android.tools.r8.ir.code.ConstMethodType copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodType):49:49 -> a
    5:5:com.android.tools.r8.ir.code.Value dest():53:53 -> a
    5:5:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62 -> a
    6:7:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:63 -> a
    8:8:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):68:68 -> a
    9:9:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):115:115 -> a
    10:10:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):114:114 -> a
    11:11:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):120:120 -> a
    12:12:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):125:125 -> a
    13:13:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forConstMethodType():337:337 -> a
    13:13:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):131 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):73:73 -> b
    boolean isConstMethodType() -> j1
    boolean isOutConstant() -> j2
    1:1:java.lang.String toString():89:89 -> toString
    com.android.tools.r8.ir.code.ConstMethodType asConstMethodType() -> x
com.android.tools.r8.ir.code.ConstNumber -> com.android.tools.r8.t.b.A:
    boolean $assertionsDisabled -> i
    long value -> h
    1:1:void <clinit>():33:33 -> <clinit>
    1:6:void <init>(com.android.tools.r8.ir.code.Value,long):38:43 -> <init>
    1:1:int maxInValueRegister():241:241 -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.ir.code.Value dest():70:70 -> G2
    1:2:double getDoubleValue():94:95 -> H2
    1:2:float getFloatValue():89:90 -> I2
    1:2:int getIntValue():78:79 -> J2
    3:5:int getIntValue():78:80 -> J2
    1:2:long getLongValue():84:85 -> K2
    1:1:long getRawValue():99:99 -> L2
    1:1:boolean is16Bit():280:280 -> M2
    1:1:boolean is8Bit():272:272 -> N2
    1:1:boolean isIntegerOne():111:111 -> O2
    1:1:boolean isIntegerZero():107:107 -> P2
    boolean instructionTypeCanBeCanonicalized() -> Q0
    1:1:boolean isZero():103:103 -> Q2
    1:1:boolean negativeIs16Bit():284:284 -> R2
    1:1:boolean negativeIs8Bit():276:276 -> S2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:5:com.android.tools.r8.ir.code.ConstNumber copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstNumber):57:61 -> a
    6:7:com.android.tools.r8.ir.code.ConstNumber copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstNumber):65:66 -> a
    8:8:com.android.tools.r8.ir.code.Value dest():70:70 -> a
    8:8:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):129 -> a
    9:10:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):129:130 -> a
    11:11:com.android.tools.r8.ir.code.Value dest():70:70 -> a
    11:11:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):134 -> a
    12:13:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):134:135 -> a
    14:14:boolean com.android.tools.r8.ir.code.ValueType.isSingle():25:25 -> a
    14:14:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):135 -> a
    15:23:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):147:155 -> a
    24:24:boolean com.android.tools.r8.ir.code.ValueType.isSingle():25:25 -> a
    24:24:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):135 -> a
    25:33:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):136:144 -> a
    34:38:boolean isIntegerNegativeOne(com.android.tools.r8.ir.code.NumericType):115:119 -> a
    39:39:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):162:162 -> a
    40:43:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):167:170 -> a
    44:44:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):176:176 -> a
    45:45:boolean com.android.tools.r8.ir.code.ValueType.isSingle():25:25 -> a
    45:45:int estimatedDexSize(com.android.tools.r8.ir.code.ValueType,long):214 -> a
    45:45:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):176 -> a
    46:62:int estimatedDexSize(com.android.tools.r8.ir.code.ValueType,long):215:231 -> a
    46:62:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):176 -> a
    63:63:boolean com.android.tools.r8.ir.code.ValueType.isSingle():25:25 -> a
    63:63:int estimatedDexSize(com.android.tools.r8.ir.code.ValueType,long):214 -> a
    63:63:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):176 -> a
    64:94:int estimatedCfSize(com.android.tools.r8.ir.code.ValueType,long):180:210 -> a
    64:94:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):176 -> a
    95:95:int estimatedCfSize(com.android.tools.r8.ir.code.ValueType,long):203:203 -> a
    95:95:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):176 -> a
    96:96:int estimatedCfSize(com.android.tools.r8.ir.code.ValueType,long):197:197 -> a
    96:96:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):176 -> a
    97:98:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):304:305 -> a
    99:102:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):310:313 -> a
    103:103:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):318:318 -> a
    104:104:boolean outTypeKnownToBeBoolean(java.util.Set):332:332 -> a
    105:105:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):337:337 -> a
    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):264:268 -> b
    6:9:boolean verifyTypes(com.android.tools.r8.graph.AppView):323:326 -> b
    10:10:boolean verifyTypes(com.android.tools.r8.graph.AppView):324:324 -> b
    boolean isOutConstant() -> j2
    boolean isConstNumber() -> k1
    1:4:java.lang.String toString():252:255 -> toString
    com.android.tools.r8.ir.code.ConstNumber asConstNumber() -> y
com.android.tools.r8.ir.code.ConstString -> com.android.tools.r8.t.b.B:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.DexString value -> h
    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> i
    1:1:void <clinit>():22:22 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexString,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):28:30 -> <init>
    1:1:int maxInValueRegister():82:82 -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.graph.DexString getValue():61:61 -> G2
    1:11:boolean instructionInstanceCanThrow():118:128 -> P0
    boolean instructionTypeCanBeCanonicalized() -> Q0
    1:1:boolean instructionTypeCanThrow():98:98 -> R0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:5:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstString):44:48 -> a
    6:7:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstString):52:53 -> a
    8:8:com.android.tools.r8.graph.DexString getValue():61:61 -> a
    8:8:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstString):53 -> a
    9:9:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstString):53:53 -> a
    10:10:com.android.tools.r8.ir.code.Value dest():57:57 -> a
    10:10:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):71 -> a
    11:12:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):71:72 -> a
    13:13:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):137:137 -> a
    14:14:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    14:14:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):137 -> a
    15:15:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):137:137 -> a
    16:16:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):142:142 -> a
    17:17:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):147:147 -> a
    18:18:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):152:152 -> a
    19:19:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):157:157 -> a
    20:23:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):167:170 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):77:77 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    boolean isOutConstant() -> j2
    boolean isConstString() -> l1
    1:1:java.lang.String toString():93:93 -> toString
    com.android.tools.r8.ir.code.ConstString asConstString() -> z
com.android.tools.r8.ir.code.ConstantValueUtils -> com.android.tools.r8.t.b.C:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():12:12 -> <clinit>
    1:14:com.android.tools.r8.graph.DexType getDexTypeRepresentedByValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexDefinitionSupplier):20:33 -> a
    15:16:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):42:43 -> a
    17:17:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):42:42 -> a
    18:18:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> a
    18:18:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):44 -> a
    19:19:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):44:44 -> a
    20:20:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> a
    20:20:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):44 -> a
    21:21:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):44:44 -> a
    22:22:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> a
    22:22:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):45 -> a
    23:27:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):45:49 -> a
    28:36:com.android.tools.r8.graph.DexType getDexTypeFromClassForName(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexDefinitionSupplier):48:56 -> a
com.android.tools.r8.ir.code.DebugLocalRead -> com.android.tools.r8.t.b.D:
    1:1:void <init>():19:19 -> <init>
    1:1:int maxInValueRegister():59:59 -> A2
    1:1:int maxOutValueRegister():64:64 -> B2
    int opcode() -> C2
    boolean hasInvariantOutType() -> L0
    boolean isAllowedAfterThrowingInstruction() -> T0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):44:44 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):49:49 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDebugLocalRead():111:111 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):70 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):54:54 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    boolean isDebugLocalRead() -> p1
com.android.tools.r8.ir.code.DebugLocalUninitialized -> com.android.tools.r8.t.b.E:
    1:1:void <init>(com.android.tools.r8.ir.code.Value):21:21 -> <init>
    boolean isAllowedAfterThrowingInstruction() -> T0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    boolean isDebugLocalUninitialized() -> q1
com.android.tools.r8.ir.code.DebugLocalWrite -> com.android.tools.r8.t.b.F:
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():26:26 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):29:30 -> <init>
    com.android.tools.r8.ir.code.DebugLocalWrite asDebugLocalWrite() -> A
    boolean isAllowedAfterThrowingInstruction() -> T0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):60:60 -> a
    2:2:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):65:65 -> a
    3:3:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):71:71 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):55:55 -> b
    2:3:boolean verifyTypes(com.android.tools.r8.graph.AppView):81:82 -> b
    boolean isOutConstant() -> j2
    boolean isDebugLocalWrite() -> r1
com.android.tools.r8.ir.code.DebugLocalsChange -> com.android.tools.r8.t.b.G:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap starting -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap ending -> h
    1:1:void <clinit>():19:19 -> <clinit>
    1:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):26:29 -> <init>
    1:1:int maxInValueRegister():77:77 -> A2
    com.android.tools.r8.ir.code.DebugLocalsChange asDebugLocalsChange() -> B
    1:1:int maxOutValueRegister():82:82 -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getEnding():43:43 -> G2
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getStarting():47:47 -> H2
    boolean hasInvariantOutType() -> L0
    boolean isAllowedAfterThrowingInstruction() -> T0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getEnding():43:43 -> a
    1:1:boolean apply(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):108 -> a
    2:4:boolean apply(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):108:110 -> a
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getStarting():47:47 -> a
    5:5:boolean apply(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):114 -> a
    6:9:boolean apply(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):114:117 -> a
    10:10:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:62 -> a
    11:11:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDebugLocalsChange():115:115 -> a
    11:11:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):103 -> a
    12:12:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):124:124 -> a
    13:13:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):134:134 -> a
    1:6:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):67:72 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    boolean isDebugLocalsChange() -> s1
    1:6:java.lang.String toString():92:97 -> toString
com.android.tools.r8.ir.code.DebugPosition -> com.android.tools.r8.t.b.H:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():16:16 -> <clinit>
    1:1:void <init>():19:19 -> <init>
    1:1:int maxInValueRegister():55:55 -> A2
    1:1:int maxOutValueRegister():60:60 -> B2
    com.android.tools.r8.ir.code.DebugPosition asDebugPosition() -> C
    int opcode() -> C2
    boolean hasInvariantOutType() -> L0
    boolean isAllowedAfterThrowingInstruction() -> T0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):44:45 -> a
    3:5:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):86:88 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDebugPosition():119:119 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):66 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):50:50 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    boolean isDebugPosition() -> t1
com.android.tools.r8.ir.code.DefaultAliasedValueConfiguration -> com.android.tools.r8.t.b.I:
    com.android.tools.r8.ir.code.DefaultAliasedValueConfiguration INSTANCE -> a
    boolean $assertionsDisabled -> b
    1:3:void <clinit>():7:9 -> <clinit>
    1:1:void <init>():12:12 -> <init>
    1:1:com.android.tools.r8.ir.code.DefaultAliasedValueConfiguration getInstance():15:15 -> a
    2:3:com.android.tools.r8.ir.code.Value getAliasForOutValue(com.android.tools.r8.ir.code.Instruction):25:26 -> a
    1:1:boolean isIntroducingAnAlias(com.android.tools.r8.ir.code.Instruction):20:20 -> b
com.android.tools.r8.ir.code.DefaultInstructionVisitor -> com.android.tools.r8.t.b.J:
    1:1:void <init>():7:7 -> <init>
    java.lang.Object handleFieldInstruction(com.android.tools.r8.ir.code.FieldInstruction) -> a
    java.lang.Object handleInvoke(com.android.tools.r8.ir.code.Invoke) -> a
    java.lang.Object visit(com.android.tools.r8.ir.code.CheckCast) -> a
    java.lang.Object visit(com.android.tools.r8.ir.code.ConstClass) -> a
    java.lang.Object visit(com.android.tools.r8.ir.code.ConstMethodHandle) -> a
    java.lang.Object visit(com.android.tools.r8.ir.code.ConstMethodType) -> a
    java.lang.Object visit(com.android.tools.r8.ir.code.NewArrayEmpty) -> a
    java.lang.Object com.android.tools.r8.ir.code.InstructionVisitor.visit(com.android.tools.r8.ir.code.NewInstance) -> a
    1:1:java.lang.Object visit(com.android.tools.r8.ir.code.InstanceGet):164:164 -> a
    2:2:java.lang.Object visit(com.android.tools.r8.ir.code.InstancePut):174:174 -> a
    3:3:java.lang.Object visit(com.android.tools.r8.ir.code.StaticGet):309:309 -> a
    4:4:java.lang.Object visit(com.android.tools.r8.ir.code.StaticPut):314:314 -> a
com.android.tools.r8.ir.code.DexItemBasedConstString -> com.android.tools.r8.t.b.K:
    com.android.tools.r8.graph.DexReference item -> h
    boolean $assertionsDisabled -> k
    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> j
    com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo nameComputationInfo -> i
    1:1:void <clinit>():22:22 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):33:36 -> <init>
    1:1:int maxInValueRegister():103:103 -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    com.android.tools.r8.ir.code.DexItemBasedConstString asDexItemBasedConstString() -> D
    1:1:com.android.tools.r8.graph.DexReference getItem():64:64 -> G2
    1:1:com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo getNameComputationInfo():68:68 -> H2
    boolean instructionInstanceCanThrow() -> P0
    boolean instructionTypeCanBeCanonicalized() -> Q0
    1:1:boolean instructionTypeCanThrow():119:119 -> R0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    1:5:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DexItemBasedConstString):50:54 -> a
    6:7:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.DexItemBasedConstString):58:59 -> a
    8:8:com.android.tools.r8.graph.DexReference getItem():64:64 -> a
    8:8:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.DexItemBasedConstString):60 -> a
    9:9:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.DexItemBasedConstString):60:60 -> a
    10:11:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):88:89 -> a
    12:12:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDexItemBasedConstString(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexType):95:95 -> a
    12:12:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):163 -> a
    13:13:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):142:142 -> a
    14:14:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):147:147 -> a
    15:15:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):152:152 -> a
    16:16:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):157:157 -> a
    1:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):96:98 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    boolean isOutConstant() -> j2
    1:1:java.lang.String toString():114:114 -> toString
    boolean isDexItemBasedConstString() -> u1
com.android.tools.r8.ir.code.Div -> com.android.tools.r8.t.b.L:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):24:24 -> <init>
    int opcode() -> C2
    com.android.tools.r8.ir.code.Div asDiv() -> E
    boolean isCommutative() -> H2
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():148:148 -> L2
    1:1:boolean instructionTypeCanThrow():134:134 -> R0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    double foldDouble(double,double) -> a
    float foldFloat(float,float) -> a
    1:1:com.android.tools.r8.code.Instruction CreateDouble(int,int,int):69:69 -> a
    2:2:int foldIntegers(int,int):114:114 -> a
    3:3:long foldLongs(long,long):119:119 -> a
    4:8:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):139:143 -> a
    1:1:com.android.tools.r8.code.Instruction CreateFloat(int,int,int):64:64 -> b
    2:2:com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int):89:89 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):104:104 -> b
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):54:54 -> c
    2:2:com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int):84:84 -> c
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):74:74 -> d
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):99:99 -> d
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):79:79 -> e
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):94:94 -> e
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):59:59 -> f
    boolean isDiv() -> v1
com.android.tools.r8.ir.code.DominatorTree -> com.android.tools.r8.t.b.N:
    com.android.tools.r8.ir.code.BasicBlock[] sorted -> a
    com.android.tools.r8.ir.code.BasicBlock[] doms -> b
    boolean obsolete -> e
    boolean $assertionsDisabled -> f
    int unreachableStartIndex -> d
    com.android.tools.r8.ir.code.BasicBlock normalExitBlock -> c
    1:1:void <clinit>():16:16 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.IRCode):37:37 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DominatorTree$Assumption):40:40 -> <init>
    3:57:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DominatorTree$Assumption):30:84 -> <init>
    1:1:boolean dominatedBy(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):103:103 -> a
    2:8:boolean strictlyDominatedBy(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):134:140 -> a
    2:8:boolean dominatedBy(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):107 -> a
    9:16:com.android.tools.r8.ir.code.BasicBlock closestDominator(java.util.Collection):157:164 -> a
    17:22:java.util.List dominatedBlocks(com.android.tools.r8.ir.code.BasicBlock):171:176 -> a
    23:24:java.lang.Iterable dominatorBlocks(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.DominatorTree$Inclusive):189:190 -> a
    25:54:void build():252:281 -> a
    55:56:boolean recordChangesToControlFlowEdges(java.util.List):316:317 -> a
    1:2:com.android.tools.r8.ir.code.BasicBlock immediateDominator(com.android.tools.r8.ir.code.BasicBlock):91:92 -> b
    3:30:java.util.Iterator lambda$dominatorBlocks$0(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.DominatorTree$Inclusive):191:218 -> b
    31:31:com.android.tools.r8.ir.code.BasicBlock[] getSortedBlocks():232:232 -> b
    32:32:boolean postorderCompareLess(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):243:243 -> b
    32:32:com.android.tools.r8.ir.code.BasicBlock intersect(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):292 -> b
    33:33:com.android.tools.r8.ir.code.BasicBlock intersect(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):293:293 -> b
    34:34:boolean postorderCompareLess(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):243:243 -> b
    34:34:com.android.tools.r8.ir.code.BasicBlock intersect(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):295 -> b
    35:35:com.android.tools.r8.ir.code.BasicBlock intersect(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):296:296 -> b
    1:4:java.lang.Iterable normalExitDominatorBlocks():225:228 -> c
    5:5:void onPredecessorsMayChange(com.android.tools.r8.ir.code.BasicBlock):329:329 -> c
    1:2:void numberBlocks():236:237 -> d
    3:3:void onSuccessorsMayChange(com.android.tools.r8.ir.code.BasicBlock):324:324 -> d
    1:9:java.lang.String toString():304:312 -> toString
com.android.tools.r8.ir.code.DominatorTree$1 -> com.android.tools.r8.t.b.M:
    com.android.tools.r8.ir.code.DominatorTree this$0 -> c
    com.android.tools.r8.ir.code.BasicBlock val$dominated -> b
    boolean $assertionsDisabled -> d
    com.android.tools.r8.ir.code.BasicBlock current -> a
    1:1:void <clinit>():192:192 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.DominatorTree,com.android.tools.r8.ir.code.BasicBlock):192:193 -> <init>
    1:1:boolean hasNext():197:197 -> hasNext
    1:9:com.android.tools.r8.ir.code.BasicBlock next():202:210 -> next
    1:9:java.lang.Object next():192 -> next
com.android.tools.r8.ir.code.DominatorTree$Assumption -> com.android.tools.r8.t.b.N$a:
    com.android.tools.r8.ir.code.DominatorTree$Assumption MAY_HAVE_UNREACHABLE_BLOCKS -> b
    com.android.tools.r8.ir.code.DominatorTree$Assumption NO_UNREACHABLE_BLOCKS -> a
    1:2:void <clinit>():19:20 -> <clinit>
    1:1:void <init>(java.lang.String,int):18:18 -> <init>
com.android.tools.r8.ir.code.DominatorTree$Inclusive -> com.android.tools.r8.t.b.O:
    com.android.tools.r8.ir.code.DominatorTree$Inclusive YES -> a
    com.android.tools.r8.ir.code.DominatorTree$Inclusive NO -> b
    1:2:void <clinit>():24:25 -> <clinit>
    1:1:void <init>(java.lang.String,int):23:23 -> <init>
com.android.tools.r8.ir.code.Dup -> com.android.tools.r8.t.b.Q:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():18:18 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value):21:21 -> <init>
    2:3:void <init>(com.android.tools.r8.ir.code.StackValues,com.android.tools.r8.ir.code.Value):25:26 -> <init>
    int maxInValueRegister() -> A2
    1:1:int maxOutValueRegister():92:92 -> B2
    int opcode() -> C2
    com.android.tools.r8.ir.code.Dup asDup() -> F
    1:1:com.android.tools.r8.ir.code.StackValue[] getStackValues():51:51 -> G2
    1:1:com.android.tools.r8.ir.code.StackValue outBottom():55 -> G2
    2:2:com.android.tools.r8.ir.code.StackValue outBottom():55:55 -> G2
    1:1:com.android.tools.r8.ir.code.StackValue[] getStackValues():51:51 -> H2
    1:1:com.android.tools.r8.ir.code.StackValue outTop():59 -> H2
    2:2:com.android.tools.r8.ir.code.StackValue outTop():59:59 -> H2
    1:1:com.android.tools.r8.ir.code.StackValue src():63:63 -> I2
    boolean hasInvariantOutType() -> L0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):68:68 -> a
    2:5:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):73:76 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDup():123:123 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):98 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):82:82 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    1:6:void setOutValue(com.android.tools.r8.ir.code.Value):41:46 -> e
    boolean isDup() -> w1
com.android.tools.r8.ir.code.Dup2 -> com.android.tools.r8.t.b.P:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):28:28 -> <init>
    2:7:void <init>(com.android.tools.r8.ir.code.StackValues,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):35:40 -> <init>
    int maxInValueRegister() -> A2
    1:1:int maxOutValueRegister():106:106 -> B2
    int opcode() -> C2
    boolean hasInvariantOutType() -> L0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):86:86 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):91:91 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forDup2():127:127 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):112 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):96:96 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    1:6:void setOutValue(com.android.tools.r8.ir.code.Value):55:60 -> e
    boolean isDup2() -> x1
com.android.tools.r8.ir.code.FieldInstruction -> com.android.tools.r8.t.b.S:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexField field -> h
    1:1:void <clinit>():27:27 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):32:32 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Value,java.util.List):36:38 -> <init>
    com.android.tools.r8.ir.code.FieldInstruction asFieldInstruction() -> G
    1:1:com.android.tools.r8.graph.DexField getField():48:48 -> G2
    1:1:com.android.tools.r8.ir.code.FieldMemberType getType():44:44 -> H2
    2:2:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromDexType(com.android.tools.r8.graph.DexType):51:51 -> H2
    2:2:com.android.tools.r8.ir.code.FieldMemberType getType():44 -> H2
    3:3:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromTypeDescriptorChar(char):46:46 -> H2
    3:3:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromDexType(com.android.tools.r8.graph.DexType):51 -> H2
    3:3:com.android.tools.r8.ir.code.FieldMemberType getType():44 -> H2
    4:20:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromTypeDescriptorChar(char):28:44 -> H2
    4:20:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromDexType(com.android.tools.r8.graph.DexType):51 -> H2
    4:20:com.android.tools.r8.ir.code.FieldMemberType getType():44 -> H2
    21:21:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromTypeDescriptorChar(char):32:32 -> H2
    21:21:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromDexType(com.android.tools.r8.graph.DexType):51 -> H2
    21:21:com.android.tools.r8.ir.code.FieldMemberType getType():44 -> H2
    22:36:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromTypeDescriptorChar(char):26:40 -> H2
    22:36:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromDexType(com.android.tools.r8.graph.DexType):51 -> H2
    22:36:com.android.tools.r8.ir.code.FieldMemberType getType():44 -> H2
    37:43:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromTypeDescriptorChar(char):36:42 -> H2
    37:43:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromDexType(com.android.tools.r8.graph.DexType):51 -> H2
    37:43:com.android.tools.r8.ir.code.FieldMemberType getType():44 -> H2
    44:44:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromTypeDescriptorChar(char):34:34 -> H2
    44:44:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromDexType(com.android.tools.r8.graph.DexType):51 -> H2
    44:44:com.android.tools.r8.ir.code.FieldMemberType getType():44 -> H2
    45:45:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromTypeDescriptorChar(char):30:30 -> H2
    45:45:com.android.tools.r8.ir.code.FieldMemberType com.android.tools.r8.ir.code.FieldMemberType.fromDexType(com.android.tools.r8.graph.DexType):51 -> H2
    45:45:com.android.tools.r8.ir.code.FieldMemberType getType():44 -> H2
    com.android.tools.r8.ir.code.Value value() -> I2
    boolean hasInvariantOutType() -> L0
    1:1:boolean lambda$instructionInstanceCanThrow$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):131:131 -> a
    2:25:boolean isStoringObjectWithFinalizer(com.android.tools.r8.shaking.AppInfoWithLiveness):178:201 -> a
    26:26:boolean isStoringObjectWithFinalizer(com.android.tools.r8.shaking.AppInfoWithLiveness):200:200 -> a
    27:28:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):209:210 -> a
    29:29:com.android.tools.r8.graph.DexField getField():48:48 -> a
    29:29:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):210 -> a
    30:34:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):210:214 -> a
    1:7:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):64:70 -> b
    8:8:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    8:8:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):73 -> b
    9:21:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):75:87 -> b
    22:22:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():139:139 -> b
    22:22:boolean com.android.tools.r8.graph.DexEncodedField.isStaticMember():148 -> b
    22:22:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):91 -> b
    23:66:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):92:135 -> b
    67:67:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):110:110 -> b
    68:68:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):97:97 -> b
    1:6:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):146:151 -> e
    7:7:com.android.tools.r8.graph.DexField getField():48:48 -> e
    7:7:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):152 -> e
    8:11:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):154:157 -> e
    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> e
    12:12:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):157 -> e
    13:23:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):159:169 -> e
    boolean isFieldInstruction() -> z1
com.android.tools.r8.ir.code.FieldMemberType -> com.android.tools.r8.t.b.T:
    com.android.tools.r8.ir.code.FieldMemberType DOUBLE -> i
    com.android.tools.r8.ir.code.FieldMemberType[] $VALUES -> j
    com.android.tools.r8.ir.code.FieldMemberType LONG -> h
    com.android.tools.r8.ir.code.FieldMemberType FLOAT -> g
    com.android.tools.r8.ir.code.FieldMemberType INT -> f
    com.android.tools.r8.ir.code.FieldMemberType SHORT -> e
    com.android.tools.r8.ir.code.FieldMemberType CHAR -> d
    com.android.tools.r8.ir.code.FieldMemberType BYTE -> c
    com.android.tools.r8.ir.code.FieldMemberType BOOLEAN -> b
    com.android.tools.r8.ir.code.FieldMemberType OBJECT -> a
    1:9:void <clinit>():12:20 -> <clinit>
    10:10:void <clinit>():11:11 -> <clinit>
    1:1:void <init>(java.lang.String,int):11:11 -> <init>
com.android.tools.r8.ir.code.FixedRegisterValue -> com.android.tools.r8.t.b.U:
    int register -> r
    boolean $assertionsDisabled -> s
    1:1:void <clinit>():11:11 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,int):16:18 -> <init>
    boolean isConstant() -> L
    boolean isFixedRegisterValue() -> N
    1:23:com.android.tools.r8.ir.code.ValueType outType():23:45 -> c0
    24:25:com.android.tools.r8.ir.code.ValueType outType():42:43 -> c0
    com.android.tools.r8.ir.code.FixedRegisterValue asFixedRegisterValue() -> e
    1:1:int getRegister():49:49 -> i0
    1:1:java.lang.String toString():69:69 -> toString
com.android.tools.r8.ir.code.Goto -> com.android.tools.r8.t.b.V:
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void <init>():17:17 -> <init>
    1:1:int maxInValueRegister():59:59 -> A2
    boolean isGoto() -> B1
    1:1:int maxOutValueRegister():65:65 -> B2
    int opcode() -> C2
    com.android.tools.r8.ir.code.Goto asGoto() -> H
    1:4:com.android.tools.r8.ir.code.BasicBlock getTarget():36:39 -> H2
    boolean isAllowedAfterThrowingInstruction() -> T0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):54:54 -> a
    2:3:void print(com.android.tools.r8.utils.CfgPrinter):79:80 -> a
    4:4:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):117:117 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):85:85 -> b
    1:4:java.lang.String toString():71:74 -> toString
com.android.tools.r8.ir.code.IRCode -> com.android.tools.r8.t.b.W:
    com.android.tools.r8.ir.code.ValueNumberGenerator valueNumberGenerator -> c
    com.android.tools.r8.graph.DexEncodedMethod method -> a
    boolean $assertionsDisabled -> k
    boolean numbered -> e
    int nextInstructionNumber -> f
    int usedMarkingColors -> d
    boolean allThrowingInstructionsHavePositions -> g
    com.android.tools.r8.ir.code.IRMetadata metadata -> h
    com.android.tools.r8.utils.InternalOptions options -> i
    com.android.tools.r8.origin.Origin origin -> j
    java.util.LinkedList blocks -> b
    1:1:void <clinit>():50:50 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexEncodedMethod,java.util.LinkedList,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.origin.Origin):124:124 -> <init>
    2:32:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexEncodedMethod,java.util.LinkedList,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.IRMetadata,com.android.tools.r8.origin.Origin):104:134 -> <init>
    1:20:void traceBlocks():401:420 -> A
    21:33:void traceBlocks():419:431 -> A
    34:34:boolean noColorsInUse():1184:1184 -> A
    34:34:void traceBlocks():431 -> A
    35:35:void traceBlocks():431:431 -> A
    1:12:boolean verifyNoImpreciseOrBottomTypes():886:897 -> B
    1:8:boolean verifyNoNullabilityBottomTypes():901:908 -> C
    1:12:boolean verifyNoValueWithOnlyAssumeInstructionAsUsers():912:923 -> D
    1:14:boolean verifySplitCriticalEdges():374:387 -> E
    1:17:boolean controlFlowMayDependOnEnvironment(com.android.tools.r8.ir.analysis.ValueMayDependOnEnvironmentAnalysis):267:283 -> a
    18:18:boolean lambda$prepareBlocksForCatchHandlers$0(com.android.tools.r8.ir.code.BasicBlock):335:335 -> a
    19:23:void ensureBlockNumbering():435:439 -> a
    19:23:void print(com.android.tools.r8.utils.CfgPrinter):541 -> a
    24:25:void print(com.android.tools.r8.utils.CfgPrinter):542:543 -> a
    26:26:void removeBlocks(java.util.Collection):479:479 -> a
    27:37:boolean hasNoVerticallyMergedClasses(com.android.tools.r8.graph.AppView):558:568 -> a
    38:38:boolean lambda$verifyTypes$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.BasicBlock):593:593 -> a
    39:39:void lambda$consistentBlockNumbering$2(java.lang.Integer,java.lang.Long):748:748 -> a
    40:46:boolean lambda$verifyNoImpreciseOrBottomTypes$3(com.android.tools.r8.ir.code.Value):888:894 -> a
    47:47:boolean lambda$verifyNoImpreciseOrBottomTypes$3(com.android.tools.r8.ir.code.Value):893:893 -> a
    48:51:boolean lambda$wrapSSAVerifierWithStackValueHandling$8(java.util.function.Predicate,com.android.tools.r8.ir.code.Value):930:933 -> a
    52:52:java.lang.Iterable instructions(java.util.function.Predicate):957:957 -> a
    53:65:java.util.List collectArguments(boolean):1013:1025 -> a
    53:65:java.util.List collectArguments():1009 -> a
    66:66:java.util.List collectArguments(boolean):1024:1024 -> a
    66:66:java.util.List collectArguments():1009 -> a
    67:67:com.android.tools.r8.ir.code.Value createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):1041:1041 -> a
    68:69:com.android.tools.r8.ir.code.ConstNumber createIntConstant(int,com.android.tools.r8.graph.DebugLocalInfo):1063:1064 -> a
    70:70:void setAllThrowingInstructionsHavePositions(boolean):1101:1101 -> a
    71:74:boolean removeAllTrivialPhis(com.android.tools.r8.ir.conversion.IRBuilder,java.util.Set):1131:1134 -> a
    75:75:boolean isMarkingColorInUse(int):1171:1171 -> a
    76:76:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1188:1188 -> a
    77:85:java.util.Set getBlocksReachableFromExclusive(com.android.tools.r8.ir.code.BasicBlock):1213:1221 -> a
    77:85:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1189 -> a
    86:91:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1190:1195 -> a
    92:92:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
    92:92:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1195 -> a
    93:99:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1196:1202 -> a
    100:100:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
    100:100:java.lang.Iterable getInstructionsReachableFrom(com.android.tools.r8.ir.code.Instruction):1202 -> a
    101:101:void markTransitiveSuccessors(java.util.Deque,int):1260:1260 -> a
    102:102:boolean isMarkingColorInUse(int):1171:1171 -> a
    102:102:void markTransitiveSuccessors(java.util.Deque,int):1260 -> a
    103:104:boolean anyBlocksMarkedWithColor(int):1175:1176 -> a
    103:104:void markTransitiveSuccessors(java.util.Deque,int):1260 -> a
    105:114:void markTransitiveSuccessors(java.util.Deque,int):1260:1269 -> a
    115:115:void markTransitivePredecessors(com.android.tools.r8.ir.code.BasicBlock,int):1281:1281 -> a
    116:116:boolean isMarkingColorInUse(int):1171:1171 -> a
    116:116:void markTransitivePredecessors(com.android.tools.r8.ir.code.BasicBlock,int):1281 -> a
    117:128:void markTransitivePredecessors(com.android.tools.r8.ir.code.BasicBlock,int):1281:1292 -> a
    129:150:com.android.tools.r8.ir.code.Position findFirstNonNonePosition(com.android.tools.r8.ir.code.Position):1303:1324 -> a
    151:151:com.android.tools.r8.ir.code.InstructionIterator com.android.tools.r8.ir.code.BasicBlock.iterator(com.android.tools.r8.ir.code.Instruction):1602:1602 -> a
    151:151:java.util.Iterator lambda$getInstructionsReachableFrom$10(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):1200 -> a
    1:2:boolean verifyTypes(com.android.tools.r8.graph.AppView):589:590 -> b
    3:6:boolean validAssumeDynamicTypeInstructions(com.android.tools.r8.graph.AppView):598:601 -> b
    3:6:boolean verifyTypes(com.android.tools.r8.graph.AppView):590 -> b
    7:9:boolean verifyTypes(com.android.tools.r8.graph.AppView):591:593 -> b
    10:12:boolean lambda$verifyNoNullabilityBottomTypes$4(com.android.tools.r8.ir.code.Value):903:905 -> b
    13:13:boolean lambda$verifyNoNullabilityBottomTypes$4(com.android.tools.r8.ir.code.Value):903:903 -> b
    14:14:boolean lambda$verifyNoValueWithOnlyAssumeInstructionAsUsers$5(com.android.tools.r8.ir.code.Instruction):915:915 -> b
    15:15:java.util.Iterator lambda$instructions$9(java.util.function.Predicate):957:957 -> b
    16:16:java.util.ListIterator listIterator(int):983:983 -> b
    17:22:boolean computeAllThrowingInstructionsHavePositions():1105:1110 -> b
    1:53:java.util.Map computeLiveAtEntrySets():149:201 -> c
    54:74:java.util.Map computeLiveAtEntrySets():200:220 -> c
    75:75:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> c
    75:75:java.util.Map computeLiveAtEntrySets():224 -> c
    76:111:java.util.Map computeLiveAtEntrySets():224:259 -> c
    112:112:boolean com.android.tools.r8.ir.code.IRCode$LiveAtEntrySets.isEmpty():83:83 -> c
    112:112:java.util.Map computeLiveAtEntrySets():259 -> c
    113:115:java.util.Map computeLiveAtEntrySets():259:261 -> c
    116:121:boolean lambda$verifyNoValueWithOnlyAssumeInstructionAsUsers$7(com.android.tools.r8.ir.code.Value):914:919 -> c
    122:128:boolean lambda$verifyNoValueWithOnlyAssumeInstructionAsUsers$7(com.android.tools.r8.ir.code.Value):914:920 -> c
    129:129:boolean lambda$verifyNoValueWithOnlyAssumeInstructionAsUsers$6(com.android.tools.r8.ir.code.Instruction):918:918 -> c
    130:137:boolean verifySSATypeLattice(java.util.function.Predicate):939:946 -> c
    138:138:void returnMarkingColor(int):1165:1165 -> c
    139:139:boolean isMarkingColorInUse(int):1171:1171 -> c
    139:139:void returnMarkingColor(int):1165 -> c
    140:140:void returnMarkingColor(int):1165:1165 -> c
    141:142:void clearMarks(int):456:457 -> c
    141:142:void returnMarkingColor(int):1166 -> c
    143:143:void returnMarkingColor(int):1167:1167 -> c
    1:1:java.util.function.Predicate wrapSSAVerifierWithStackValueHandling(java.util.function.Predicate):927:927 -> d
    2:8:java.util.List computeNormalExitBlocks():969:975 -> d
    1:4:boolean consistentBlockNumbering():743:746 -> e
    1:1:com.android.tools.r8.ir.code.ConstNumber createConstNull():1087:1087 -> f
    2:2:com.android.tools.r8.ir.code.Value createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> f
    2:2:com.android.tools.r8.ir.code.ConstNumber createConstNull():1087 -> f
    3:3:com.android.tools.r8.ir.code.ConstNumber createConstNull():1088:1088 -> f
    1:1:boolean doAllThrowingInstructionsHavePositions():1097:1097 -> g
    1:1:com.android.tools.r8.ir.code.BasicBlock entryBlock():142:142 -> h
    1:1:int getHighestBlockNumber():1077:1077 -> i
    1:1:int getNextInstructionNumber():1005:1005 -> j
    1:7:com.android.tools.r8.ir.code.Value getThis():1030:1036 -> k
    1:3:java.util.Set getUnreachableBlocks():1226:1228 -> l
    4:4:void markTransitiveSuccessors(com.android.tools.r8.ir.code.BasicBlock,int):1256:1256 -> l
    4:4:java.util.Set getUnreachableBlocks():1228 -> l
    5:10:java.util.Set getUnreachableBlocks():1229:1234 -> l
    1:1:com.android.tools.r8.ir.code.InstructionIterator instructionIterator():961:961 -> m
    1:1:java.lang.Iterable instructions():953:953 -> n
    1:1:boolean isConsistentGraph():576:576 -> o
    2:2:boolean noColorsInUse():1184:1184 -> o
    2:2:boolean isConsistentGraph():576 -> o
    3:5:boolean isConsistentGraph():576:578 -> o
    6:21:boolean consistentPredecessorSuccessors():714:729 -> o
    6:21:boolean isConsistentGraph():578 -> o
    22:22:boolean isConsistentGraph():579:579 -> o
    23:24:boolean consistentCatchHandlers():736:737 -> o
    23:24:boolean isConsistentGraph():579 -> o
    25:25:boolean isConsistentGraph():580:580 -> o
    26:29:boolean consistentBlockInstructions():755:758 -> o
    26:29:boolean isConsistentGraph():580 -> o
    30:39:boolean com.android.tools.r8.ir.code.BasicBlock.consistentBlockInstructions(boolean,boolean):65:74 -> o
    30:39:boolean consistentBlockInstructions():756 -> o
    30:39:boolean isConsistentGraph():580 -> o
    40:44:boolean com.android.tools.r8.ir.code.BasicBlock.consistentBlockInstructions(boolean,boolean):73:77 -> o
    40:44:boolean consistentBlockInstructions():756 -> o
    40:44:boolean isConsistentGraph():580 -> o
    45:45:boolean isConsistentGraph():581:581 -> o
    46:135:boolean consistentMetadata():765:854 -> o
    46:135:boolean isConsistentGraph():581 -> o
    136:136:boolean isConsistentGraph():582:582 -> o
    1:2:boolean isConsistentSSA():548:549 -> p
    3:23:boolean consistentDefUseChains():638:658 -> p
    3:23:boolean isConsistentSSA():549 -> p
    24:24:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> p
    24:24:boolean consistentDefUseChains():660 -> p
    24:24:boolean isConsistentSSA():549 -> p
    25:37:boolean consistentDefUseChains():660:672 -> p
    25:37:boolean isConsistentSSA():549 -> p
    38:38:boolean verifyValue(com.android.tools.r8.ir.code.Value):680:680 -> p
    38:38:boolean consistentDefUseChains():672 -> p
    38:38:boolean isConsistentSSA():549 -> p
    39:39:boolean verifyPhi(com.android.tools.r8.ir.code.Phi):685:685 -> p
    39:39:boolean verifyValue(com.android.tools.r8.ir.code.Value):680 -> p
    39:39:boolean consistentDefUseChains():672 -> p
    39:39:boolean isConsistentSSA():549 -> p
    40:43:boolean verifyDefinition(com.android.tools.r8.ir.code.Value):690:693 -> p
    40:43:boolean verifyValue(com.android.tools.r8.ir.code.Value):680 -> p
    40:43:boolean consistentDefUseChains():672 -> p
    40:43:boolean isConsistentSSA():549 -> p
    44:44:boolean verifyDefinition(com.android.tools.r8.ir.code.Value):691:691 -> p
    44:44:boolean verifyValue(com.android.tools.r8.ir.code.Value):680 -> p
    44:44:boolean consistentDefUseChains():672 -> p
    44:44:boolean isConsistentSSA():549 -> p
    45:45:boolean consistentDefUseChains():673:673 -> p
    45:45:boolean isConsistentSSA():549 -> p
    46:47:boolean consistentValueUses(com.android.tools.r8.ir.code.Value):698:699 -> p
    46:47:boolean consistentDefUseChains():673 -> p
    46:47:boolean isConsistentSSA():549 -> p
    48:48:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> p
    48:48:boolean consistentValueUses(com.android.tools.r8.ir.code.Value):699 -> p
    48:48:boolean consistentDefUseChains():673 -> p
    48:48:boolean isConsistentSSA():549 -> p
    49:57:boolean consistentValueUses(com.android.tools.r8.ir.code.Value):699:707 -> p
    49:57:boolean consistentDefUseChains():673 -> p
    49:57:boolean isConsistentSSA():549 -> p
    58:58:boolean isConsistentSSA():550:550 -> p
    59:75:boolean validThrowingInstructions():862:878 -> p
    59:75:boolean isConsistentSSA():550 -> p
    76:76:boolean isConsistentSSA():551:551 -> p
    77:88:boolean noCriticalEdges():609:620 -> p
    77:88:boolean isConsistentSSA():551 -> p
    89:91:boolean isConsistentSSA():551:553 -> p
    1:1:java.util.ListIterator listIterator():979:979 -> q
    1:1:com.android.tools.r8.ir.code.IRMetadata metadata():138:138 -> r
    1:3:com.android.tools.r8.com.google.common.collect.ImmutableList numberInstructions():987:989 -> s
    1:7:int numberRemainingInstructions():995:1001 -> t
    1:7:java.lang.String toString():446:452 -> toString
    1:23:void prepareBlocksForCatchHandlers():304:326 -> u
    24:24:java.lang.Object com.android.tools.r8.utils.ListUtils.first(java.util.List):16:16 -> u
    24:24:void prepareBlocksForCatchHandlers():326 -> u
    25:27:void prepareBlocksForCatchHandlers():326:328 -> u
    28:29:void com.android.tools.r8.ir.code.Goto.<init>(com.android.tools.r8.ir.code.BasicBlock):21:22 -> u
    28:29:void prepareBlocksForCatchHandlers():328 -> u
    30:36:void prepareBlocksForCatchHandlers():329:335 -> u
    1:1:boolean removeAllTrivialPhis():1118:1118 -> v
    1:3:java.util.Set removeUnreachableBlocks():1239:1241 -> w
    4:4:void markTransitiveSuccessors(com.android.tools.r8.ir.code.BasicBlock,int):1256:1256 -> w
    4:4:java.util.Set removeUnreachableBlocks():1241 -> w
    5:14:java.util.Set removeUnreachableBlocks():1242:1251 -> w
    1:1:int reserveMarkingColor():1141:1141 -> x
    2:2:boolean anyMarkingColorAvailable():1155:1155 -> x
    2:2:int reserveMarkingColor():1141 -> x
    3:11:int reserveMarkingColor():1141:1149 -> x
    12:13:boolean verifyNoBlocksMarked(int):472:473 -> x
    12:13:int reserveMarkingColor():1149 -> x
    1:24:void splitCriticalEdges():339:362 -> y
    25:34:void splitCriticalEdges():361:370 -> y
    1:24:com.android.tools.r8.com.google.common.collect.ImmutableList depthFirstSorting():497:520 -> z
    1:24:com.android.tools.r8.com.google.common.collect.ImmutableList topologicallySortedBlocks():490 -> z
    25:25:com.android.tools.r8.com.google.common.collect.ImmutableList topologicallySortedBlocks():491:491 -> z
    26:37:com.android.tools.r8.com.google.common.collect.ImmutableList reorderExceptionalBlocksLastForTesting(com.android.tools.r8.com.google.common.collect.ImmutableList):526:537 -> z
    26:37:com.android.tools.r8.com.google.common.collect.ImmutableList topologicallySortedBlocks():492 -> z
com.android.tools.r8.ir.code.IRCode$BlockMarker -> com.android.tools.r8.t.b.W$a:
    com.android.tools.r8.ir.code.BasicBlock block -> a
    1:2:void <init>(com.android.tools.r8.ir.code.BasicBlock):91:92 -> <init>
com.android.tools.r8.ir.code.IRCode$LiveAtEntrySets -> com.android.tools.r8.t.b.W$b:
    java.util.Deque liveStackValues -> c
    java.util.Set liveValues -> a
    java.util.Set liveLocalValues -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():54:54 -> <clinit>
    1:5:void <init>(java.util.Set,java.util.Set,java.util.Deque):64:68 -> <init>
    1:2:boolean equals(java.lang.Object):78:79 -> equals
    1:1:int hashCode():73:73 -> hashCode
com.android.tools.r8.ir.code.IRCodeInstructionIterator -> com.android.tools.r8.t.b.X:
    java.util.ListIterator blockIterator -> a
    com.android.tools.r8.ir.code.InstructionListIterator instructionIterator -> b
    com.android.tools.r8.ir.code.IRCode code -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():10:10 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.code.IRCode):17:20 -> <init>
    1:1:boolean hasNext():25:25 -> hasNext
    1:1:boolean hasPrevious():43:43 -> hasPrevious
    1:9:com.android.tools.r8.ir.code.Instruction next():30:38 -> next
    1:9:java.lang.Object next():10 -> next
    10:10:com.android.tools.r8.ir.code.Instruction next():34:34 -> next
    10:10:java.lang.Object next():10 -> next
    1:10:com.android.tools.r8.ir.code.Instruction previous():48:57 -> previous
    11:11:com.android.tools.r8.ir.code.Instruction previous():52:52 -> previous
com.android.tools.r8.ir.code.IRCodeInstructionListIterator -> com.android.tools.r8.t.b.Y:
    java.util.ListIterator blockIterator -> a
    com.android.tools.r8.ir.code.InstructionListIterator instructionIterator -> b
    com.android.tools.r8.ir.code.IRCode code -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():17:17 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.code.IRCode):24:27 -> <init>
    1:1:com.android.tools.r8.ir.code.Value insertConstNullInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):32:32 -> a
    2:2:com.android.tools.r8.ir.code.Value insertConstIntInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions,int):37:37 -> a
    3:3:void replaceCurrentInstructionWithConstInt(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,int):43:43 -> a
    4:4:void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set):52:52 -> a
    5:5:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):63:63 -> a
    6:6:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):68:68 -> a
    7:7:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):73:73 -> a
    8:8:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):84:84 -> a
    9:9:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction,java.util.Set):151:151 -> a
    1:1:void add(java.lang.Object):17:17 -> add
    2:2:void add(com.android.tools.r8.ir.code.Instruction):136:136 -> add
    2:2:void add(java.lang.Object):17 -> add
    1:1:void removeOrReplaceByDebugLocalRead():156:156 -> e
    1:1:boolean hasNext():89:89 -> hasNext
    1:1:boolean hasPrevious():107:107 -> hasPrevious
    1:9:com.android.tools.r8.ir.code.Instruction next():94:102 -> next
    1:9:java.lang.Object next():17 -> next
    10:10:com.android.tools.r8.ir.code.Instruction next():98:98 -> next
    10:10:java.lang.Object next():17 -> next
    1:1:int nextIndex():126:126 -> nextIndex
    1:1:java.lang.Object previous():17:17 -> previous
    2:11:com.android.tools.r8.ir.code.Instruction previous():112:121 -> previous
    12:12:com.android.tools.r8.ir.code.Instruction previous():116:116 -> previous
    1:1:int previousIndex():131:131 -> previousIndex
    1:1:void remove():141:141 -> remove
    1:1:void set(java.lang.Object):17:17 -> set
    2:2:void set(com.android.tools.r8.ir.code.Instruction):146:146 -> set
    2:2:void set(java.lang.Object):17 -> set
com.android.tools.r8.ir.code.IRCodeUtils -> com.android.tools.r8.t.b.Z:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():13:13 -> <clinit>
    1:27:void removeArrayAndTransitiveInputsIfNotUsed(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):24:50 -> a
    28:56:void internalRemoveInstructionAndTransitiveInputsIfNotUsed(com.android.tools.r8.ir.code.IRCode,java.util.Deque):67:95 -> a
    57:57:java.util.List com.android.tools.r8.ir.code.Instruction.inValues():95:95 -> a
    57:57:void internalRemoveInstructionAndTransitiveInputsIfNotUsed(com.android.tools.r8.ir.code.IRCode,java.util.Deque):96 -> a
    58:61:void internalRemoveInstructionAndTransitiveInputsIfNotUsed(com.android.tools.r8.ir.code.IRCode,java.util.Deque):96:99 -> a
    1:1:void removeInstructionAndTransitiveInputsIfNotUsed(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):62:62 -> b
    2:2:void removeInstructionAndTransitiveInputsIfNotUsed(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):61:61 -> b
com.android.tools.r8.ir.code.IRMetadata -> com.android.tools.r8.t.b.a0:
    long second -> b
    long first -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():12:12 -> <init>
    2:4:void <init>(long,long):14:16 -> <init>
    1:1:boolean mayHaveRem():214:214 -> A
    1:1:boolean mayHaveShl():218:218 -> B
    1:1:boolean mayHaveShr():222:222 -> C
    1:1:boolean mayHaveStaticGet():226:226 -> D
    1:1:boolean mayHaveStaticPut():230:230 -> E
    1:1:boolean mayHaveStringSwitch():234:234 -> F
    1:1:boolean mayHaveSub():238:238 -> G
    1:1:boolean mayHaveUshr():242:242 -> H
    1:1:boolean mayHaveXor():246:246 -> I
    1:1:com.android.tools.r8.ir.code.IRMetadata unknown():20:20 -> J
    1:3:boolean get(int):25:27 -> a
    4:4:boolean isAnySetInSecond(long):38:38 -> a
    4:4:boolean get(int):29 -> a
    5:5:boolean isAnySetInFirst(long):34:34 -> a
    6:6:void record(com.android.tools.r8.ir.code.Instruction):52:52 -> a
    7:11:void set(int):43:47 -> a
    7:11:void record(com.android.tools.r8.ir.code.Instruction):52 -> a
    12:13:void merge(com.android.tools.r8.ir.code.IRMetadata):56:57 -> a
    14:14:boolean mayHaveAdd():61:61 -> a
    1:1:boolean mayHaveAnd():65:65 -> b
    1:1:boolean mayHaveArithmeticOrLogicalBinop():276:276 -> c
    2:2:boolean isAnySetInSecond(long):38:38 -> c
    2:2:boolean mayHaveArithmeticOrLogicalBinop():276 -> c
    3:3:boolean mayHaveArithmeticOrLogicalBinop():277:277 -> c
    4:4:boolean mayHaveAdd():61:61 -> c
    4:4:boolean mayHaveArithmeticOrLogicalBinop():278 -> c
    5:5:boolean mayHaveDiv():89:89 -> c
    5:5:boolean mayHaveArithmeticOrLogicalBinop():279 -> c
    6:6:boolean mayHaveMul():206:206 -> c
    6:6:boolean mayHaveArithmeticOrLogicalBinop():280 -> c
    7:7:boolean mayHaveRem():214:214 -> c
    7:7:boolean mayHaveArithmeticOrLogicalBinop():281 -> c
    8:8:boolean mayHaveSub():238:238 -> c
    8:8:boolean mayHaveArithmeticOrLogicalBinop():282 -> c
    9:9:boolean mayHaveAnd():65:65 -> c
    9:9:boolean mayHaveArithmeticOrLogicalBinop():283 -> c
    10:10:boolean mayHaveOr():210:210 -> c
    10:10:boolean mayHaveArithmeticOrLogicalBinop():284 -> c
    11:11:boolean mayHaveShl():218:218 -> c
    11:11:boolean mayHaveArithmeticOrLogicalBinop():285 -> c
    12:12:boolean mayHaveShr():222:222 -> c
    12:12:boolean mayHaveArithmeticOrLogicalBinop():286 -> c
    13:13:boolean mayHaveUshr():242:242 -> c
    13:13:boolean mayHaveArithmeticOrLogicalBinop():287 -> c
    14:14:boolean mayHaveXor():246:246 -> c
    14:14:boolean mayHaveArithmeticOrLogicalBinop():288 -> c
    15:15:boolean mayHaveArithmeticOrLogicalBinop():277:277 -> c
    1:1:boolean mayHaveCheckCast():69:69 -> d
    1:1:boolean mayHaveConstNumber():73:73 -> e
    1:1:boolean mayHaveConstString():77:77 -> f
    1:1:boolean mayHaveDebugPosition():81:81 -> g
    1:1:boolean mayHaveDexItemBasedConstString():85:85 -> h
    1:1:boolean mayHaveDiv():89:89 -> i
    1:1:boolean mayHaveInstanceGet():116:116 -> j
    1:1:boolean mayHaveFieldGet():93 -> j
    2:2:boolean mayHaveStaticGet():226:226 -> j
    2:2:boolean mayHaveFieldGet():93 -> j
    1:2:boolean mayHaveFieldInstruction():106:107 -> k
    3:3:boolean mayHaveInstanceGet():116:116 -> k
    3:3:boolean mayHaveFieldInstruction():108 -> k
    4:4:boolean mayHaveInstancePut():120:120 -> k
    4:4:boolean mayHaveFieldInstruction():109 -> k
    5:5:boolean mayHaveStaticGet():226:226 -> k
    5:5:boolean mayHaveFieldInstruction():110 -> k
    6:6:boolean mayHaveStaticPut():230:230 -> k
    6:6:boolean mayHaveFieldInstruction():111 -> k
    7:7:boolean mayHaveFieldInstruction():107:107 -> k
    1:1:boolean mayHaveInstanceGet():116:116 -> l
    1:1:boolean mayHaveInstanceOf():124:124 -> m
    1:1:boolean mayHaveInstancePut():120:120 -> n
    1:1:boolean mayHaveIntSwitch():128:128 -> o
    1:1:boolean mayHaveInvokeDirect():132:132 -> p
    1:1:boolean mayHaveInvokeInterface():136:136 -> q
    1:2:boolean mayHaveInvokeMethod():154:155 -> r
    3:3:boolean mayHaveInvokeDirect():132:132 -> r
    3:3:boolean mayHaveInvokeMethod():156 -> r
    4:4:boolean mayHaveInvokeInterface():136:136 -> r
    4:4:boolean mayHaveInvokeMethod():157 -> r
    5:5:boolean mayHaveInvokePolymorphic():186:186 -> r
    5:5:boolean mayHaveInvokeMethod():158 -> r
    6:6:boolean mayHaveInvokeStatic():190:190 -> r
    6:6:boolean mayHaveInvokeMethod():159 -> r
    7:7:boolean mayHaveInvokeSuper():194:194 -> r
    7:7:boolean mayHaveInvokeMethod():160 -> r
    8:8:boolean mayHaveInvokeVirtual():198:198 -> r
    8:8:boolean mayHaveInvokeMethod():161 -> r
    9:9:boolean mayHaveInvokeMethod():155:155 -> r
    1:2:boolean mayHaveInvokeMethodWithReceiver():176:177 -> s
    3:3:boolean mayHaveInvokeDirect():132:132 -> s
    3:3:boolean mayHaveInvokeMethodWithReceiver():178 -> s
    4:4:boolean mayHaveInvokeInterface():136:136 -> s
    4:4:boolean mayHaveInvokeMethodWithReceiver():179 -> s
    5:5:boolean mayHaveInvokeSuper():194:194 -> s
    5:5:boolean mayHaveInvokeMethodWithReceiver():180 -> s
    6:6:boolean mayHaveInvokeVirtual():198:198 -> s
    6:6:boolean mayHaveInvokeMethodWithReceiver():181 -> s
    7:7:boolean mayHaveInvokeMethodWithReceiver():177:177 -> s
    1:1:boolean mayHaveInvokePolymorphic():186:186 -> t
    1:1:boolean mayHaveInvokeStatic():190:190 -> u
    1:1:boolean mayHaveInvokeSuper():194:194 -> v
    1:1:boolean mayHaveInvokeVirtual():198:198 -> w
    1:1:boolean mayHaveMonitorInstruction():202:202 -> x
    1:1:boolean mayHaveMul():206:206 -> y
    1:1:boolean mayHaveOr():210:210 -> z
com.android.tools.r8.ir.code.If -> com.android.tools.r8.t.b.b0:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.ir.code.If$Type type -> i
    1:1:void <clinit>():20:20 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.Value):73:74 -> <init>
    3:4:void <init>(com.android.tools.r8.ir.code.If$Type,java.util.List):78:79 -> <init>
    1:1:int maxInValueRegister():174:174 -> A2
    1:1:int maxOutValueRegister():179:179 -> B2
    boolean isIf() -> C1
    int opcode() -> C2
    1:4:com.android.tools.r8.ir.code.BasicBlock fallthroughBlock():132:135 -> G2
    1:4:com.android.tools.r8.ir.code.BasicBlock getTrueTarget():117:120 -> H2
    com.android.tools.r8.ir.code.If asIf() -> I
    1:1:com.android.tools.r8.ir.code.If$Type getType():106:106 -> I2
    1:2:void invert():110:111 -> J2
    3:4:void setFallthroughBlock(com.android.tools.r8.ir.code.BasicBlock):140:141 -> J2
    3:4:void invert():112 -> J2
    5:5:void invert():113:113 -> J2
    1:1:boolean isZeroTest():93:93 -> K2
    1:1:com.android.tools.r8.ir.code.Value lhs():97:97 -> L2
    1:2:com.android.tools.r8.ir.code.Value rhs():101:102 -> M2
    1:3:com.android.tools.r8.ir.code.BasicBlock targetFromNonNullObject():214:216 -> N2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:3:boolean verifyTypeCompatible(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.If$Type):65:67 -> a
    4:4:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):146:146 -> a
    5:5:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode):151:151 -> a
    6:7:void print(com.android.tools.r8.utils.CfgPrinter):185:186 -> a
    8:10:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(com.android.tools.r8.ir.code.ConstNumber):201:203 -> a
    11:14:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(com.android.tools.r8.ir.code.ConstNumber,com.android.tools.r8.ir.code.ConstNumber):207:210 -> a
    15:15:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):250:250 -> a
    16:23:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):255:262 -> a
    1:2:void setFallthroughBlock(com.android.tools.r8.ir.code.BasicBlock):140:141 -> b
    3:8:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):191:196 -> b
    9:24:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):220:235 -> b
    25:25:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):233:233 -> b
    26:26:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):231:231 -> b
    27:27:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):229:229 -> b
    28:28:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):227:227 -> b
    29:29:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):225:225 -> b
    30:30:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):223:223 -> b
    1:4:void setTrueTarget(com.android.tools.r8.ir.code.BasicBlock):124:127 -> c
    1:8:java.lang.String toString():161:168 -> toString
com.android.tools.r8.ir.code.If$Type -> com.android.tools.r8.t.b.b0$a:
    com.android.tools.r8.ir.code.If$Type GT -> c
    com.android.tools.r8.ir.code.If$Type LE -> d
    com.android.tools.r8.ir.code.If$Type EQ -> a
    com.android.tools.r8.ir.code.If$Type GE -> b
    com.android.tools.r8.ir.code.If$Type[] $VALUES -> g
    com.android.tools.r8.ir.code.If$Type LT -> e
    com.android.tools.r8.ir.code.If$Type NE -> f
    1:1:void <clinit>():23:23 -> <clinit>
    2:2:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(java.lang.String,int):22:22 -> <init>
    1:15:com.android.tools.r8.ir.code.If$Type inverted():45:59 -> a
    16:16:com.android.tools.r8.ir.code.If$Type inverted():55:55 -> a
    17:17:com.android.tools.r8.ir.code.If$Type inverted():53:53 -> a
    18:18:com.android.tools.r8.ir.code.If$Type inverted():51:51 -> a
    19:27:com.android.tools.r8.ir.code.If$Type inverted():49:57 -> a
    28:28:com.android.tools.r8.ir.code.If$Type inverted():47:47 -> a
    1:1:com.android.tools.r8.ir.code.If$Type[] values():22:22 -> b
com.android.tools.r8.ir.code.ImpreciseMemberTypeInstruction -> com.android.tools.r8.t.b.c0:
    void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver) -> a
    com.android.tools.r8.ir.code.MemberType getMemberType() -> e
com.android.tools.r8.ir.code.Inc -> com.android.tools.r8.t.b.d0:
    boolean $assertionsDisabled -> i
    int increment -> h
    1:1:void <clinit>():20:20 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,int):25:27 -> <init>
    int maxInValueRegister() -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):70:70 -> a
    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:75 -> a
    3:3:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):81:81 -> a
    4:14:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):86:96 -> a
    1:2:void addInValue(com.android.tools.r8.ir.code.Value):43:44 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):54:54 -> b
    1:1:java.lang.String toString():102:102 -> toString
com.android.tools.r8.ir.code.InstanceGet -> com.android.tools.r8.t.b.e0:
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():34:34 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):37:37 -> <init>
    int maxInValueRegister() -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    boolean isInstanceGet() -> D1
    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():207:207 -> E0
    boolean throwsOnNullInput() -> F2
    1:1:com.android.tools.r8.ir.code.Value value():66:66 -> I2
    com.android.tools.r8.ir.code.InstanceGet asInstanceGet() -> J
    1:2:com.android.tools.r8.ir.code.Value object():60:61 -> J2
    boolean instructionTypeCanThrow() -> R0
    1:1:boolean outTypeKnownToBeBoolean(java.util.Set):47:47 -> a
    2:2:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):52:52 -> a
    3:3:com.android.tools.r8.ir.code.Value dest():56:56 -> a
    3:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):78 -> a
    4:33:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):78:107 -> a
    34:34:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):104:104 -> a
    35:35:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):101:101 -> a
    36:36:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):98:98 -> a
    37:37:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):95:95 -> a
    38:38:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):92:92 -> a
    39:39:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):89:89 -> a
    40:64:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):85:109 -> a
    65:67:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):71:73 -> a
    68:68:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):129:129 -> a
    69:69:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):119:119 -> a
    69:69:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):129 -> a
    70:70:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):154:154 -> a
    71:71:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):174:174 -> a
    72:72:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):179:179 -> a
    73:74:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):184:185 -> a
    75:77:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):190:192 -> a
    78:78:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):190:190 -> a
    79:79:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):197:197 -> a
    80:80:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):217:217 -> a
    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):144:148 -> b
    1:1:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):119:119 -> c
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    1:1:java.lang.String toString():169:169 -> toString
com.android.tools.r8.ir.code.InstanceOf -> com.android.tools.r8.t.b.f0:
    com.android.tools.r8.graph.DexType type -> h
    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):24:25 -> <init>
    int maxInValueRegister() -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    boolean isInstanceOf() -> E1
    1:1:com.android.tools.r8.graph.DexType type():39:39 -> G2
    1:1:com.android.tools.r8.ir.code.Value value():47:47 -> H2
    com.android.tools.r8.ir.code.InstanceOf asInstanceOf() -> K
    boolean hasInvariantOutType() -> L0
    boolean instructionTypeCanThrow() -> R0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    boolean outTypeKnownToBeBoolean(java.util.Set) -> a
    1:1:com.android.tools.r8.ir.code.Value dest():43:43 -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):52 -> a
    2:4:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):52:54 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):90:90 -> a
    6:6:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):95:95 -> a
    7:8:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):105:106 -> a
    9:9:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):111:111 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):74:74 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
com.android.tools.r8.ir.code.InstancePut -> com.android.tools.r8.t.b.g0:
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():34:34 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):37:39 -> <init>
    int maxInValueRegister() -> A2
    1:1:int maxOutValueRegister():171:171 -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():220:220 -> E0
    boolean isInstancePut() -> F1
    boolean throwsOnNullInput() -> F2
    1:1:com.android.tools.r8.ir.code.Value value():58:58 -> I2
    1:1:com.android.tools.r8.ir.code.Value object():53:53 -> J2
    com.android.tools.r8.ir.code.InstancePut asInstancePut() -> L
    boolean instructionTypeCanThrow() -> R0
    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):49:49 -> a
    2:30:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):64:92 -> a
    31:31:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):89:89 -> a
    32:32:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):86:86 -> a
    33:33:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):83:83 -> a
    34:34:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80:80 -> a
    35:35:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):77:77 -> a
    36:36:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):74:74 -> a
    37:61:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):70:94 -> a
    62:63:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):129:130 -> a
    64:74:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):137:147 -> a
    75:75:boolean com.android.tools.r8.utils.InternalOptions.canHaveIncorrectJoinForArrayOfInterfacesBug():0:0 -> a
    75:75:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):141 -> a
    76:76:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):178:178 -> a
    77:77:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):198:198 -> a
    78:80:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):203:205 -> a
    81:81:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):203:203 -> a
    82:82:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):210:210 -> a
    83:83:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):230:230 -> a
    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):157:161 -> b
    1:11:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):104:114 -> c
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    1:1:java.lang.String toString():193:193 -> toString
com.android.tools.r8.ir.code.Instruction -> com.android.tools.r8.t.b.h0:
    java.util.List inValues -> b
    java.util.LinkedHashSet debugValues -> e
    boolean $assertionsDisabled -> g
    int number -> d
    com.android.tools.r8.ir.code.Value outValue -> a
    com.android.tools.r8.ir.code.BasicBlock block -> c
    com.android.tools.r8.ir.code.Position position -> f
    1:1:void <clinit>():45:45 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value):54:54 -> <init>
    2:10:void <init>(com.android.tools.r8.ir.code.Value):47:55 -> <init>
    11:11:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):58:58 -> <init>
    12:25:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):47:60 -> <init>
    26:26:void <init>(com.android.tools.r8.ir.code.Value,java.util.List):63:63 -> <init>
    27:49:void <init>(com.android.tools.r8.ir.code.Value,java.util.List):47:69 -> <init>
    com.android.tools.r8.ir.code.DebugLocalWrite asDebugLocalWrite() -> A
    1:2:void clearBlock():289:290 -> A0
    1:1:boolean isFieldPut():890:890 -> A1
    int maxInValueRegister() -> A2
    com.android.tools.r8.ir.code.DebugLocalsChange asDebugLocalsChange() -> B
    1:5:void clearDebugValues():260:264 -> B0
    boolean isGoto() -> B1
    int maxOutValueRegister() -> B2
    com.android.tools.r8.ir.code.DebugPosition asDebugPosition() -> C
    1:1:java.util.Set getDebugValues():624:624 -> C0
    boolean isIf() -> C1
    int opcode() -> C2
    com.android.tools.r8.ir.code.DexItemBasedConstString asDexItemBasedConstString() -> D
    1:1:java.lang.String getInstructionName():309:309 -> D0
    boolean isInstanceGet() -> D1
    1:1:com.android.tools.r8.ir.code.ValueType outType():178:178 -> D2
    com.android.tools.r8.ir.code.Div asDiv() -> E
    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():1395:1395 -> E0
    boolean isInstanceOf() -> E1
    1:1:com.android.tools.r8.ir.code.Value outValue():122:122 -> E2
    com.android.tools.r8.ir.code.Dup asDup() -> F
    1:1:int getNumber():358:358 -> F0
    boolean isInstancePut() -> F1
    boolean throwsOnNullInput() -> F2
    com.android.tools.r8.ir.code.FieldInstruction asFieldInstruction() -> G
    com.android.tools.r8.ir.code.ConstInstruction getOutConstantConstInstruction() -> G0
    boolean isIntSwitch() -> G1
    com.android.tools.r8.ir.code.Goto asGoto() -> H
    1:2:com.android.tools.r8.ir.code.Position getPosition():81:82 -> H0
    boolean isInvoke() -> H1
    com.android.tools.r8.ir.code.If asIf() -> I
    1:1:java.lang.String getPositionAsString():91:91 -> I0
    boolean isInvokeCustom() -> I1
    com.android.tools.r8.ir.code.InstanceGet asInstanceGet() -> J
    1:1:boolean hasBlock():305:305 -> J0
    boolean isInvokeDirect() -> J1
    com.android.tools.r8.ir.code.InstanceOf asInstanceOf() -> K
    1:1:java.util.List inValues():95:95 -> K0
    1:1:boolean hasInValueWithLocalInfo():109 -> K0
    2:3:boolean hasInValueWithLocalInfo():109:110 -> K0
    boolean isInvokeInterface() -> K1
    com.android.tools.r8.ir.code.InstancePut asInstancePut() -> L
    boolean hasInvariantOutType() -> L0
    boolean isInvokeMethod() -> L1
    com.android.tools.r8.ir.code.IntSwitch asIntSwitch() -> M
    1:1:boolean hasOutValue():118:118 -> M0
    1:1:boolean isInvokeMethodWithDynamicDispatch():1154:1154 -> M1
    com.android.tools.r8.ir.code.Invoke asInvoke() -> N
    1:1:boolean hasPosition():77:77 -> N0
    boolean isInvokeMethodWithReceiver() -> N1
    com.android.tools.r8.ir.code.InvokeCustom asInvokeCustom() -> O
    1:1:java.util.List inValues():95:95 -> O0
    boolean isInvokeMultiNewArray() -> O1
    com.android.tools.r8.ir.code.InvokeDirect asInvokeDirect() -> P
    1:1:boolean instructionInstanceCanThrow():548:548 -> P0
    boolean isInvokeNewArray() -> P1
    com.android.tools.r8.ir.code.InvokeInterface asInvokeInterface() -> Q
    boolean instructionTypeCanBeCanonicalized() -> Q0
    boolean isInvokePolymorphic() -> Q1
    com.android.tools.r8.ir.code.InvokeMethod asInvokeMethod() -> R
    boolean instructionTypeCanThrow() -> R0
    boolean isInvokeStatic() -> R1
    com.android.tools.r8.ir.code.InvokeMethodWithReceiver asInvokeMethodWithReceiver() -> S
    boolean isAdd() -> S0
    boolean isInvokeSuper() -> S1
    com.android.tools.r8.ir.code.InvokeMultiNewArray asInvokeMultiNewArray() -> T
    boolean isAllowedAfterThrowingInstruction() -> T0
    boolean isInvokeVirtual() -> T1
    com.android.tools.r8.ir.code.InvokeNewArray asInvokeNewArray() -> U
    boolean isAnd() -> U0
    boolean isJumpInstruction() -> U1
    com.android.tools.r8.ir.code.InvokePolymorphic asInvokePolymorphic() -> V
    boolean isArgument() -> V0
    boolean isLoad() -> V1
    com.android.tools.r8.ir.code.InvokeStatic asInvokeStatic() -> W
    boolean isArithmeticBinop() -> W0
    boolean isLogicalBinop() -> W1
    com.android.tools.r8.ir.code.InvokeSuper asInvokeSuper() -> X
    boolean isArrayGet() -> X0
    boolean isMonitor() -> X1
    com.android.tools.r8.ir.code.InvokeVirtual asInvokeVirtual() -> Y
    boolean isArrayLength() -> Y0
    boolean isMonitorEnter() -> Y1
    com.android.tools.r8.ir.code.JumpInstruction asJumpInstruction() -> Z
    boolean isArrayPut() -> Z0
    boolean isMove() -> Z1
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    void buildCf(com.android.tools.r8.ir.conversion.CfBuilder) -> a
    void buildDex(com.android.tools.r8.ir.conversion.DexBuilder) -> a
    boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value) -> a
    boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption) -> a
    com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType) -> a
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    boolean isTwoAddr(com.android.tools.r8.ir.regalloc.RegisterAllocator) -> a
    boolean outTypeKnownToBeBoolean(java.util.Set) -> a
    boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory) -> a
    1:2:void setPosition(com.android.tools.r8.ir.code.Position):86:87 -> a
    3:4:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):144:145 -> a
    5:6:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getTypeLattice():150:151 -> a
    7:12:void addDebugValue(com.android.tools.r8.ir.code.Value):157:162 -> a
    13:19:void clearUserInfo(com.android.tools.r8.ir.code.Instruction):167:173 -> a
    20:23:void replaceValue(int,com.android.tools.r8.ir.code.Value):195:198 -> a
    24:33:void replaceDebugValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):202:211 -> a
    34:40:com.android.tools.r8.ir.code.Value removeDebugValue(com.android.tools.r8.graph.DebugLocalInfo):245:251 -> a
    41:42:void setBlock(com.android.tools.r8.ir.code.BasicBlock):281:282 -> a
    43:43:void print(com.android.tools.r8.utils.CfgPrinter):333:333 -> a
    44:44:java.lang.String com.android.tools.r8.utils.CfgPrinter.makeUnusedValue():20:20 -> a
    44:44:void print(com.android.tools.r8.utils.CfgPrinter):334 -> a
    45:56:void print(com.android.tools.r8.utils.CfgPrinter):336:347 -> a
    57:58:void setNumber(int):362:363 -> a
    59:68:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):468:477 -> a
    69:70:boolean identicalNonValueParts(com.android.tools.r8.ir.code.Instruction):376:377 -> a
    69:70:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):474 -> a
    71:71:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):480:480 -> a
    72:75:boolean com.android.tools.r8.ir.code.InvokeDirect.sameConstructorReceiverValue(com.android.tools.r8.ir.code.Invoke):102:105 -> a
    72:75:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):480 -> a
    76:77:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):483:484 -> a
    78:78:int getNumber():358:358 -> a
    78:78:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):488 -> a
    79:79:int getNumber():358:358 -> a
    79:79:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):488 -> a
    80:112:boolean identicalOutputAfterRegisterAllocation(com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.regalloc.RegisterAllocator):432:464 -> a
    80:112:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):487 -> a
    113:122:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):491:500 -> a
    123:123:int getNumber():358:358 -> a
    123:123:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):501 -> a
    124:124:int getNumber():358:358 -> a
    124:124:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):501 -> a
    125:160:boolean identicalInputAfterRegisterAllocation(com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.regalloc.RegisterAllocator):387:422 -> a
    125:160:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):501 -> a
    161:177:boolean identicalInputAfterRegisterAllocation(com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.regalloc.RegisterAllocator):411:427 -> a
    161:177:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):501 -> a
    178:179:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):507:508 -> a
    180:180:boolean identicalStackValuePair(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue):515:515 -> a
    181:181:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.Value.outType():846:846 -> a
    181:181:boolean identicalStackValuePair(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue):515 -> a
    182:182:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.Value.outType():846:846 -> a
    182:182:boolean identicalStackValuePair(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue):515 -> a
    183:189:boolean identicalStackValuesPair(com.android.tools.r8.ir.code.StackValues,com.android.tools.r8.ir.code.StackValues):519:525 -> a
    190:190:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):570:570 -> a
    191:192:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):1331:1332 -> a
    193:196:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):1338:1341 -> a
    197:199:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):1346:1348 -> a
    200:206:boolean verifyValidPositionInfo(boolean):1415:1421 -> a
    207:207:boolean verifyValidPositionInfo(boolean):1417:1417 -> a
    com.android.tools.r8.ir.code.Load asLoad() -> a0
    boolean isAssume() -> a1
    boolean isMoveException() -> a2
    boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction) -> b
    1:4:void addInValue(com.android.tools.r8.ir.code.Value):100:103 -> b
    5:8:void replaceValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):186:189 -> b
    9:9:void printLIR(com.android.tools.r8.utils.CfgPrinter):354:354 -> b
    10:10:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):563:563 -> b
    11:22:boolean verifyTypes(com.android.tools.r8.graph.AppView):1353:1364 -> b
    com.android.tools.r8.ir.code.LogicalBinop asLogicalBinop() -> b0
    boolean isAssumeDynamicType() -> b1
    boolean isMul() -> b2
    boolean needsValueInRegister(com.android.tools.r8.ir.code.Value) -> c
    1:7:void moveDebugValues(com.android.tools.r8.ir.code.Instruction):217:223 -> c
    8:8:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):552:552 -> c
    9:9:com.android.tools.r8.graph.DebugLocalInfo getLocalInfo():620:620 -> c
    com.android.tools.r8.ir.code.Monitor asMonitor() -> c0
    boolean isAssumeNonNull() -> c1
    boolean isNeg() -> c2
    com.android.tools.r8.ir.code.Instruction asInstruction() -> d
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    1:9:void removeDebugValue(com.android.tools.r8.ir.code.Value):233:241 -> d
    com.android.tools.r8.ir.code.Move asMove() -> d0
    boolean isBinop() -> d1
    boolean isNewArrayEmpty() -> d2
    1:4:void setOutValue(com.android.tools.r8.ir.code.Value):126:129 -> e
    5:9:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):578:582 -> e
    com.android.tools.r8.ir.code.MoveException asMoveException() -> e0
    boolean isCheckCast() -> e1
    boolean isNewArrayFilledData() -> e2
    1:5:com.android.tools.r8.ir.code.Value swapOutValue(com.android.tools.r8.ir.code.Value):134:138 -> f
    com.android.tools.r8.ir.code.Mul asMul() -> f0
    boolean isCmp() -> f1
    boolean isNewInstance() -> f2
    1:2:com.android.tools.r8.ir.code.BasicBlock getBlock():273:274 -> g
    com.android.tools.r8.ir.code.Neg asNeg() -> g0
    boolean isConstClass() -> g1
    boolean isNot() -> g2
    com.android.tools.r8.ir.code.Add asAdd() -> h
    com.android.tools.r8.ir.code.NewArrayEmpty asNewArrayEmpty() -> h0
    boolean isConstInstruction() -> h1
    boolean isNumberConversion() -> h2
    com.android.tools.r8.ir.code.And asAnd() -> i
    com.android.tools.r8.ir.code.NewArrayFilledData asNewArrayFilledData() -> i0
    boolean isConstMethodHandle() -> i1
    boolean isOr() -> i2
    com.android.tools.r8.ir.code.Argument asArgument() -> j
    com.android.tools.r8.ir.code.NewInstance asNewInstance() -> j0
    boolean isConstMethodType() -> j1
    boolean isOutConstant() -> j2
    com.android.tools.r8.ir.code.ArithmeticBinop asArithmeticBinop() -> k
    com.android.tools.r8.ir.code.Not asNot() -> k0
    boolean isConstNumber() -> k1
    boolean isPop() -> k2
    com.android.tools.r8.ir.code.ArrayGet asArrayGet() -> l
    com.android.tools.r8.ir.code.NumberConversion asNumberConversion() -> l0
    boolean isConstString() -> l1
    boolean isRem() -> l2
    com.android.tools.r8.ir.code.ArrayLength asArrayLength() -> m
    com.android.tools.r8.ir.code.Or asOr() -> m0
    1:4:boolean isCreatingArray():1310:1313 -> m1
    boolean isReturn() -> m2
    com.android.tools.r8.ir.code.ArrayPut asArrayPut() -> n
    com.android.tools.r8.ir.code.Rem asRem() -> n0
    1:1:boolean isCreatingInstanceOrArray():1317:1317 -> n1
    boolean isShl() -> n2
    com.android.tools.r8.ir.code.Assume asAssume() -> o
    com.android.tools.r8.ir.code.Return asReturn() -> o0
    1:5:boolean isDebugInstruction():1114:1118 -> o1
    boolean isShr() -> o2
    com.android.tools.r8.ir.code.Assume asAssumeDynamicType() -> p
    com.android.tools.r8.ir.code.Shl asShl() -> p0
    boolean isDebugLocalRead() -> p1
    boolean isStaticGet() -> p2
    com.android.tools.r8.ir.code.Assume asAssumeNonNull() -> q
    com.android.tools.r8.ir.code.Shr asShr() -> q0
    boolean isDebugLocalUninitialized() -> q1
    boolean isStaticPut() -> q2
    com.android.tools.r8.ir.code.Binop asBinop() -> r
    com.android.tools.r8.ir.code.StaticGet asStaticGet() -> r0
    boolean isDebugLocalWrite() -> r1
    boolean isStore() -> r2
    com.android.tools.r8.ir.code.CheckCast asCheckCast() -> s
    com.android.tools.r8.ir.code.StaticPut asStaticPut() -> s0
    boolean isDebugLocalsChange() -> s1
    boolean isStringSwitch() -> s2
    com.android.tools.r8.ir.code.Cmp asCmp() -> t
    com.android.tools.r8.ir.code.Store asStore() -> t0
    boolean isDebugPosition() -> t1
    boolean isSub() -> t2
    1:14:java.lang.String toString():314:327 -> toString
    com.android.tools.r8.ir.code.ConstClass asConstClass() -> u
    com.android.tools.r8.ir.code.StringSwitch asStringSwitch() -> u0
    boolean isDexItemBasedConstString() -> u1
    boolean isSwap() -> u2
    com.android.tools.r8.ir.code.ConstInstruction asConstInstruction() -> v
    com.android.tools.r8.ir.code.Sub asSub() -> v0
    boolean isDiv() -> v1
    boolean isSwitch() -> v2
    com.android.tools.r8.ir.code.ConstMethodHandle asConstMethodHandle() -> w
    com.android.tools.r8.ir.code.Switch asSwitch() -> w0
    boolean isDup() -> w1
    boolean isThrow() -> w2
    com.android.tools.r8.ir.code.ConstMethodType asConstMethodType() -> x
    com.android.tools.r8.ir.code.Throw asThrow() -> x0
    boolean isDup2() -> x1
    boolean isUnop() -> x2
    com.android.tools.r8.ir.code.ConstNumber asConstNumber() -> y
    com.android.tools.r8.ir.code.Ushr asUshr() -> y0
    1:1:boolean isFieldGet():886:886 -> y1
    boolean isUshr() -> y2
    com.android.tools.r8.ir.code.ConstString asConstString() -> z
    com.android.tools.r8.ir.code.Xor asXor() -> z0
    boolean isFieldInstruction() -> z1
    boolean isXor() -> z2
com.android.tools.r8.ir.code.InstructionIterator -> com.android.tools.r8.t.b.i0:
    1:3:com.android.tools.r8.ir.code.Instruction peekNext():30:32 -> b
    1:3:com.android.tools.r8.ir.code.Instruction peekPrevious():45:47 -> f
    1:1:void remove():15:15 -> remove
com.android.tools.r8.ir.code.InstructionListIterator -> com.android.tools.r8.t.b.j0:
    com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType) -> a
    com.android.tools.r8.ir.code.Value insertConstIntInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions,int) -> a
    com.android.tools.r8.ir.code.Value insertConstNullInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions) -> a
    void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction,java.util.Set) -> a
    void replaceCurrentInstructionWithConstInt(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,int) -> a
    void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set) -> a
    void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set) -> a
    void setInsertionPosition(com.android.tools.r8.ir.code.Position) -> a
    com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator) -> a
    com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator) -> a
    1:1:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    2:2:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode):115:115 -> a
    3:3:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int):142:142 -> a
    4:6:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode):190:192 -> a
    1:3:java.lang.Object com.android.tools.r8.ir.code.PreviousUntilIterator.previousUntil(java.util.function.Predicate):18:20 -> b
    1:3:java.lang.Object com.android.tools.r8.ir.code.PreviousUntilIterator.previousUntil(java.util.function.Predicate):0 -> b
    void removeOrReplaceByDebugLocalRead() -> e
    1:1:void removeInstructionIgnoreOutValue():50:50 -> g
com.android.tools.r8.ir.code.InstructionOrPhi -> com.android.tools.r8.t.b.k0:
    boolean isPhi() -> b
    com.android.tools.r8.ir.code.Instruction asInstruction() -> d
    com.android.tools.r8.ir.code.Phi asPhi() -> f
    com.android.tools.r8.ir.code.BasicBlock getBlock() -> g
com.android.tools.r8.ir.code.IntSwitch -> com.android.tools.r8.t.b.l0:
    boolean $assertionsDisabled -> m
    int[] keys -> l
    1:1:void <clinit>():27:27 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.Value,int[],int[],int):32:34 -> <init>
    int maxInValueRegister() -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    boolean isIntSwitch() -> G1
    1:7:boolean valid():55:61 -> K2
    com.android.tools.r8.ir.code.IntSwitch asIntSwitch() -> M
    1:1:int getFirstKey():177:177 -> M2
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getKeyToTargetMap():214:215 -> N2
    3:3:int getKey(int):206:206 -> N2
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getKeyToTargetMap():216 -> N2
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getKeyToTargetMap():216:216 -> N2
    1:1:int[] getKeys():210:210 -> O2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:void forEachCase(com.android.tools.r8.utils.IntObjConsumer):48:48 -> a
    2:2:int getKey(int):206:206 -> a
    2:2:void forEachCase(com.android.tools.r8.utils.IntObjConsumer):49 -> a
    3:3:void forEachCase(com.android.tools.r8.utils.IntObjConsumer):49:49 -> a
    4:4:long numberOfTargetsIfPacked(int[]):68:68 -> a
    5:5:boolean canBePacked(com.android.tools.r8.utils.InternalOutputMode,long):79:79 -> a
    6:6:long sparsePayloadSize(com.android.tools.r8.utils.InternalOutputMode,int[]):143:143 -> a
    6:6:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):84 -> a
    7:7:int baseSparseSize(com.android.tools.r8.utils.InternalOutputMode):114:114 -> a
    7:7:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):84 -> a
    8:8:boolean canBePacked(com.android.tools.r8.utils.InternalOutputMode,int[]):73:73 -> a
    8:8:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):86 -> a
    9:9:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):87:87 -> a
    10:10:int basePackedSize(com.android.tools.r8.utils.InternalOutputMode):103:103 -> a
    10:10:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):88 -> a
    11:11:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):93:93 -> a
    12:12:boolean canBePacked(com.android.tools.r8.utils.InternalOutputMode):159:159 -> a
    12:12:boolean emitPacked(com.android.tools.r8.utils.InternalOutputMode):173 -> a
    13:13:boolean canBePacked(com.android.tools.r8.utils.InternalOutputMode,int[]):73:73 -> a
    13:13:boolean canBePacked(com.android.tools.r8.utils.InternalOutputMode):159 -> a
    13:13:boolean emitPacked(com.android.tools.r8.utils.InternalOutputMode):173 -> a
    14:14:long packedPayloadSize(com.android.tools.r8.utils.InternalOutputMode):164:164 -> a
    14:14:boolean emitPacked(com.android.tools.r8.utils.InternalOutputMode):173 -> a
    15:15:long sparsePayloadSize(com.android.tools.r8.utils.InternalOutputMode):169:169 -> a
    15:15:boolean emitPacked(com.android.tools.r8.utils.InternalOutputMode):173 -> a
    16:16:long sparsePayloadSize(com.android.tools.r8.utils.InternalOutputMode,int[]):143:143 -> a
    16:16:long sparsePayloadSize(com.android.tools.r8.utils.InternalOutputMode):169 -> a
    16:16:boolean emitPacked(com.android.tools.r8.utils.InternalOutputMode):173 -> a
    17:21:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):197:201 -> a
    22:48:com.android.tools.r8.code.Nop buildPayload(int[],int,com.android.tools.r8.utils.InternalOutputMode):222:248 -> a
    49:52:void print(com.android.tools.r8.utils.CfgPrinter):278:281 -> a
    53:53:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):287:287 -> a
    54:75:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):292:313 -> a
    boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction) -> b
    1:1:long estimatedSparseSize(com.android.tools.r8.utils.InternalOutputMode,long):97:97 -> b
    2:2:int baseSparseSize(com.android.tools.r8.utils.InternalOutputMode):114:114 -> b
    2:2:long estimatedSparseSize(com.android.tools.r8.utils.InternalOutputMode,long):97 -> b
    3:3:long packedPayloadSize(com.android.tools.r8.utils.InternalOutputMode,int[]):136:136 -> b
    4:4:boolean canBePacked(com.android.tools.r8.utils.InternalOutputMode,int[]):73:73 -> b
    4:4:long packedPayloadSize(com.android.tools.r8.utils.InternalOutputMode,int[]):136 -> b
    5:7:long packedPayloadSize(com.android.tools.r8.utils.InternalOutputMode,int[]):136:138 -> b
    1:2:long packedPayloadSize(com.android.tools.r8.utils.InternalOutputMode,long):124:125 -> c
    1:1:long sparsePayloadSize(com.android.tools.r8.utils.InternalOutputMode,long):148:148 -> d
    1:1:int getKey(int):206:206 -> e
    1:4:java.lang.String toString():264:267 -> toString
    5:5:int getKey(int):206:206 -> toString
    5:5:java.lang.String toString():268 -> toString
    6:11:java.lang.String toString():268:273 -> toString
com.android.tools.r8.ir.code.Invoke -> com.android.tools.r8.t.b.m0:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():24:24 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,java.util.List):61:61 -> <init>
    1:1:java.util.List arguments():103:103 -> A2
    1:1:int maxInValueRegister():213 -> A2
    2:4:int maxInValueRegister():213:215 -> A2
    int maxOutValueRegister() -> B2
    1:1:java.lang.String getInstructionName():269:269 -> D0
    1:1:java.util.List arguments():103:103 -> G2
    boolean isInvoke() -> H1
    1:1:java.util.List arguments():103:103 -> H2
    1:1:boolean argumentsAreConsecutiveInputArguments():222 -> H2
    2:2:boolean argumentsAreConsecutiveInputArguments():222:222 -> H2
    3:3:java.util.List arguments():103:103 -> H2
    3:3:boolean argumentsAreConsecutiveInputArguments():225 -> H2
    4:5:boolean argumentsAreConsecutiveInputArguments():225:226 -> H2
    6:6:java.util.List arguments():103:103 -> H2
    6:6:boolean argumentsAreConsecutiveInputArguments():229 -> H2
    7:7:boolean argumentsAreConsecutiveInputArguments():229:229 -> H2
    8:8:java.util.List arguments():103:103 -> H2
    8:8:boolean argumentsAreConsecutiveInputArguments():230 -> H2
    9:10:boolean argumentsAreConsecutiveInputArguments():230:231 -> H2
    com.android.tools.r8.graph.DexType getReturnType() -> I2
    com.android.tools.r8.ir.code.Invoke$Type getType() -> J2
    java.lang.String getTypeString() -> K2
    1:1:int requiredArgumentRegisters():108:108 -> L2
    2:2:int com.android.tools.r8.ir.code.Value.requiredRegisters():313:313 -> L2
    2:2:int requiredArgumentRegisters():109 -> L2
    com.android.tools.r8.ir.code.Invoke asInvoke() -> N
    boolean instructionTypeCanThrow() -> R0
    1:21:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):71:91 -> a
    22:22:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):89:89 -> a
    23:23:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):87:87 -> a
    24:24:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):85:85 -> a
    25:25:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):83:83 -> a
    26:26:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):79:79 -> a
    27:27:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):75:75 -> a
    28:36:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):73:81 -> a
    37:37:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):77:77 -> a
    38:38:int argumentRegisterValue(int,com.android.tools.r8.ir.conversion.DexBuilder):115:115 -> a
    39:39:java.util.List arguments():103:103 -> a
    39:39:int argumentRegisterValue(int,com.android.tools.r8.ir.conversion.DexBuilder):116 -> a
    40:40:int argumentRegisterValue(int,com.android.tools.r8.ir.conversion.DexBuilder):116:116 -> a
    41:41:java.util.List arguments():103:103 -> a
    41:41:int argumentRegisterValue(int,com.android.tools.r8.ir.conversion.DexBuilder):122 -> a
    42:42:int argumentRegisterValue(int,com.android.tools.r8.ir.conversion.DexBuilder):122:122 -> a
    43:43:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):128:128 -> a
    44:44:java.util.List arguments():103:103 -> a
    44:44:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):130 -> a
    45:54:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):130:139 -> a
    55:55:int com.android.tools.r8.ir.code.Value.requiredRegisters():313:313 -> a
    55:55:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):140 -> a
    56:58:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):141:143 -> a
    59:59:int com.android.tools.r8.ir.code.Value.requiredRegisters():313:313 -> a
    59:59:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):143 -> a
    60:60:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):143:143 -> a
    61:61:int com.android.tools.r8.ir.code.Value.requiredRegisters():313:313 -> a
    61:61:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):144 -> a
    62:63:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):145:146 -> a
    64:77:void addInvokeAndMoveResult(com.android.tools.r8.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder):165:178 -> a
    78:82:void addInvokeAndMoveResult(com.android.tools.r8.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder):176:180 -> a
    83:96:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):186:199 -> a
    97:103:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):197:203 -> a
    104:108:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):284:288 -> a
    109:109:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):286:286 -> a
    110:110:boolean outTypeKnownToBeBoolean(java.util.Set):293:293 -> a
    1:1:java.util.List arguments():103:103 -> b
    1:1:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):153 -> b
    2:3:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):153:154 -> b
    4:4:int com.android.tools.r8.ir.code.Value.requiredRegisters():313:313 -> b
    4:4:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):154 -> b
    5:5:java.util.List arguments():103:103 -> b
    5:5:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):155 -> b
    6:6:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):155:155 -> b
    7:7:java.util.List arguments():103:103 -> b
    7:7:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):156 -> b
    8:9:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):156:157 -> b
    10:10:int com.android.tools.r8.ir.code.Value.requiredRegisters():313:313 -> b
    10:10:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):158 -> b
    1:1:boolean needsRangedInvoke(com.android.tools.r8.ir.conversion.DexBuilder):240:240 -> c
    2:2:java.util.List arguments():103:103 -> c
    2:2:boolean needsRangedInvoke(com.android.tools.r8.ir.conversion.DexBuilder):247 -> c
    3:10:boolean needsRangedInvoke(com.android.tools.r8.ir.conversion.DexBuilder):247:254 -> c
    11:11:java.util.List arguments():103:103 -> c
    11:11:boolean needsRangedInvoke(com.android.tools.r8.ir.conversion.DexBuilder):255 -> c
    12:13:boolean needsRangedInvoke(com.android.tools.r8.ir.conversion.DexBuilder):255:256 -> c
com.android.tools.r8.ir.code.Invoke$Type -> com.android.tools.r8.t.b.m0$a:
    com.android.tools.r8.ir.code.Invoke$Type NEW_ARRAY -> f
    com.android.tools.r8.ir.code.Invoke$Type MULTI_NEW_ARRAY -> g
    com.android.tools.r8.ir.code.Invoke$Type[] $VALUES -> j
    com.android.tools.r8.ir.code.Invoke$Type CUSTOM -> h
    com.android.tools.r8.ir.code.Invoke$Type POLYMORPHIC -> i
    com.android.tools.r8.ir.code.Invoke$Type INTERFACE -> b
    com.android.tools.r8.ir.code.Invoke$Type STATIC -> c
    com.android.tools.r8.ir.code.Invoke$Type SUPER -> d
    com.android.tools.r8.ir.code.Invoke$Type VIRTUAL -> e
    com.android.tools.r8.ir.code.Invoke$Type DIRECT -> a
    1:9:void <clinit>():27:35 -> <clinit>
    10:10:void <clinit>():26:26 -> <clinit>
    1:1:void <init>(java.lang.String,int):26:26 -> <init>
    1:1:com.android.tools.r8.ir.code.Invoke$Type[] values():26:26 -> a
    2:18:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType toMethodHandle(com.android.tools.r8.graph.DexMethod):38:54 -> a
    19:19:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType toMethodHandle(com.android.tools.r8.graph.DexMethod):52:52 -> a
    20:20:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType toMethodHandle(com.android.tools.r8.graph.DexMethod):50:50 -> a
    21:24:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType toMethodHandle(com.android.tools.r8.graph.DexMethod):44:47 -> a
    25:25:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType toMethodHandle(com.android.tools.r8.graph.DexMethod):42:42 -> a
    26:26:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType toMethodHandle(com.android.tools.r8.graph.DexMethod):40:40 -> a
com.android.tools.r8.ir.code.InvokeCustom -> com.android.tools.r8.t.b.n0:
    com.android.tools.r8.graph.DexCallSite callSite -> i
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():25:25 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.ir.code.Value,java.util.List):30:32 -> <init>
    int opcode() -> C2
    boolean isInvokeCustom() -> I1
    1:1:com.android.tools.r8.graph.DexType getReturnType():101:101 -> I2
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():110:110 -> J2
    java.lang.String getTypeString() -> K2
    boolean hasInvariantOutType() -> L0
    1:1:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> M2
    com.android.tools.r8.ir.code.InvokeCustom asInvokeCustom() -> O
    1:29:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):66:94 -> a
    30:42:boolean verifyLambdaInterfaces(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,java.util.Set,com.android.tools.r8.graph.DexType):47:59 -> a
    30:42:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):94 -> a
    43:43:boolean verifyLambdaInterfaces(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,java.util.Set,com.android.tools.r8.graph.DexType):58:58 -> a
    43:43:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):94 -> a
    44:44:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):96:96 -> a
    45:45:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
    45:45:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):196 -> a
    46:46:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):196:196 -> a
    47:52:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):126:131 -> a
    53:53:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
    53:53:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):131 -> a
    54:58:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):131:135 -> a
    59:59:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
    59:59:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):137 -> a
    60:67:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):137:144 -> a
    68:68:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):149:149 -> a
    69:69:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
    69:69:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):149 -> a
    70:70:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):149:149 -> a
    71:71:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forInvokeCustom():169:169 -> a
    71:71:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):170 -> a
    72:72:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):177:177 -> a
    73:73:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
    73:73:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):178 -> a
    74:77:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):178:181 -> a
    78:78:com.android.tools.r8.graph.DexCallSite getCallSite():105:105 -> a
    78:78:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):182 -> a
    79:82:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):182:185 -> a
    83:83:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeCustom):179:179 -> a
    83:83:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):42 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):154:154 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    1:1:java.lang.String toString():120:120 -> toString
com.android.tools.r8.ir.code.InvokeDirect -> com.android.tools.r8.t.b.o0:
    boolean $assertionsDisabled -> m
    boolean itf -> l
    1:1:void <clinit>():32:32 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List,boolean):41:44 -> <init>
    int opcode() -> C2
    boolean isInvokeDirect() -> J1
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():64:64 -> J2
    java.lang.String getTypeString() -> K2
    1:1:boolean isInterface():54:54 -> O2
    com.android.tools.r8.ir.code.InvokeDirect asInvokeDirect() -> P
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:93 -> a
    20:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):141:141 -> a
    21:21:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):146:146 -> a
    22:22:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):156:156 -> a
    23:23:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeDirect):184:184 -> a
    23:23:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):59 -> a
    24:60:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):224:260 -> a
    61:61:boolean com.android.tools.r8.ir.code.Value.isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate):1041:1041 -> a
    61:61:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):260 -> a
    62:62:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):265:265 -> a
    63:63:boolean lambda$canBeDeadCode$0(java.util.List,com.android.tools.r8.ir.code.Instruction):259:259 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):110:110 -> b
    1:37:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):162:198 -> c
    38:38:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> c
    38:38:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):198 -> c
    39:55:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):200:216 -> c
    1:14:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):275:288 -> e
    1:6:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):125:130 -> f
    7:13:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):129:135 -> f
com.android.tools.r8.ir.code.InvokeInterface -> com.android.tools.r8.t.b.p0:
    boolean $assertionsDisabled -> l
    1:1:void <clinit>():23:23 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):26:26 -> <init>
    int opcode() -> C2
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():41:41 -> J2
    boolean isInvokeInterface() -> K1
    java.lang.String getTypeString() -> K2
    com.android.tools.r8.ir.code.InvokeInterface asInvokeInterface() -> Q
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):52:70 -> a
    20:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):105:105 -> a
    21:21:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):110:110 -> a
    22:22:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):120:120 -> a
    23:23:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeInterface):189:189 -> a
    23:23:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):36 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):75:75 -> b
    1:8:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):90:97 -> f
    9:9:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):93:93 -> f
com.android.tools.r8.ir.code.InvokeMethod -> com.android.tools.r8.t.b.q0:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.DexMethod method -> i
    1:1:void <clinit>():31:31 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):36:37 -> <init>
    1:1:com.android.tools.r8.graph.DexType getReturnType():42:42 -> I2
    boolean hasInvariantOutType() -> L0
    boolean isInvokeMethod() -> L1
    1:1:com.android.tools.r8.graph.DexMethod getInvokedMethod():46:46 -> M2
    com.android.tools.r8.ir.code.InvokeMethod asInvokeMethod() -> R
    com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.DefaultInliningOracle,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
    1:6:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):138:143 -> a
    7:7:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> a
    7:7:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):148 -> a
    8:8:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):148:148 -> a
    9:9:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> a
    9:9:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):149 -> a
    10:11:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):149:150 -> a
    12:12:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> a
    12:12:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):150 -> a
    13:13:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):150:150 -> a
    14:14:boolean com.android.tools.r8.utils.InternalOptions.canHaveIncorrectJoinForArrayOfInterfacesBug():0:0 -> a
    14:14:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):142 -> a
    15:23:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):161:169 -> a
    24:24:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):180:180 -> a
    25:30:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):195:200 -> a
    31:31:boolean verifyD8LookupResult(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):208:208 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):51:51 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    1:1:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):190:190 -> e
    com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> f
    1:29:java.util.Collection lookupTargets(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):79:107 -> g
    30:43:java.util.Collection lookupTargets(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):106:119 -> g
    1:1:java.lang.String toString():56:56 -> toString
com.android.tools.r8.ir.code.InvokeMethodWithReceiver -> com.android.tools.r8.t.b.r0:
    boolean $assertionsDisabled -> k
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):25:25 -> <init>
    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():66:66 -> E0
    boolean throwsOnNullInput() -> F2
    boolean isInvokeMethodWithReceiver() -> N1
    1:2:com.android.tools.r8.ir.code.Value getReceiver():39:40 -> N2
    com.android.tools.r8.ir.code.InvokeMethodWithReceiver asInvokeMethodWithReceiver() -> S
    1:1:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.DefaultInliningOracle,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):50:50 -> a
    2:2:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):56:56 -> a
    1:15:boolean verifyTypes(com.android.tools.r8.graph.AppView):71:85 -> b
    16:16:boolean verifyTypes(com.android.tools.r8.graph.AppView):84:84 -> b
com.android.tools.r8.ir.code.InvokeMultiNewArray -> com.android.tools.r8.t.b.s0:
    com.android.tools.r8.graph.DexType type -> i
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():25:25 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value,java.util.List):30:31 -> <init>
    int opcode() -> C2
    1:1:com.android.tools.r8.graph.DexType getArrayType():60:60 -> I2
    1:1:com.android.tools.r8.graph.DexType getReturnType():65 -> I2
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():56:56 -> J2
    java.lang.String getTypeString() -> K2
    boolean hasInvariantOutType() -> L0
    1:1:com.android.tools.r8.graph.DexType getArrayType():60:60 -> M2
    1:1:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> N2
    1:1:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrowNegativeArraySizeException():159 -> N2
    2:13:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrowNegativeArraySizeException():159:170 -> N2
    boolean isInvokeMultiNewArray() -> O1
    com.android.tools.r8.ir.code.InvokeMultiNewArray asInvokeMultiNewArray() -> T
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):81:81 -> a
    2:2:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):86:86 -> a
    3:3:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):96:96 -> a
    4:5:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):101:102 -> a
    6:6:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):107:107 -> a
    7:7:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> a
    7:7:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):107 -> a
    8:8:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):107:107 -> a
    9:9:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):112:112 -> a
    10:10:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):186:186 -> a
    11:11:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeMultiNewArray):194:194 -> a
    11:11:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):41 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):75:75 -> b
    2:5:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):117:120 -> b
    6:6:boolean com.android.tools.r8.graph.DexType.isWideType():259:259 -> b
    6:6:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):120 -> b
    7:21:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):120:134 -> b
    22:22:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    22:22:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):138 -> b
    23:37:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):140:154 -> b
    1:6:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):176:181 -> c
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
com.android.tools.r8.ir.code.InvokeNewArray -> com.android.tools.r8.t.b.t0:
    com.android.tools.r8.graph.DexType type -> i
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():25:25 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value,java.util.List):30:31 -> <init>
    int opcode() -> C2
    1:1:com.android.tools.r8.graph.DexType getArrayType():50:50 -> I2
    1:1:com.android.tools.r8.graph.DexType getReturnType():46 -> I2
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():55:55 -> J2
    java.lang.String getTypeString() -> K2
    boolean hasInvariantOutType() -> L0
    1:1:com.android.tools.r8.errors.Unreachable cfUnsupported():139:139 -> M2
    1:1:com.android.tools.r8.graph.DexType getArrayType():50:50 -> N2
    boolean isInvokeNewArray() -> P1
    com.android.tools.r8.ir.code.InvokeNewArray asInvokeNewArray() -> U
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):71:89 -> a
    20:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):110:110 -> a
    21:21:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):115:115 -> a
    22:22:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):125:125 -> a
    23:23:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):130:130 -> a
    24:24:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):135:135 -> a
    25:25:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeNewArray):199:199 -> a
    25:25:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):41 -> a
    26:26:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):199:199 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):94:94 -> b
    2:5:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):144:147 -> b
    6:6:boolean com.android.tools.r8.graph.DexType.isWideType():259:259 -> b
    6:6:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):147 -> b
    7:21:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):147:161 -> b
    22:22:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    22:22:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):165 -> b
    23:39:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):167:183 -> b
    1:6:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):189:194 -> c
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    1:1:java.lang.String toString():65:65 -> toString
com.android.tools.r8.ir.code.InvokePolymorphic -> com.android.tools.r8.t.b.u0:
    boolean $assertionsDisabled -> l
    com.android.tools.r8.graph.DexProto proto -> k
    1:1:void <clinit>():28:28 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):33:34 -> <init>
    int opcode() -> C2
    1:1:com.android.tools.r8.graph.DexType getReturnType():49:49 -> I2
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():54:54 -> J2
    java.lang.String getTypeString() -> K2
    1:1:com.android.tools.r8.graph.DexProto getProto():63:63 -> N2
    boolean isInvokePolymorphic() -> Q1
    com.android.tools.r8.ir.code.InvokePolymorphic asInvokePolymorphic() -> V
    1:7:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):69:75 -> a
    8:8:com.android.tools.r8.graph.DexProto getProto():63:63 -> a
    8:8:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75 -> a
    9:15:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:81 -> a
    16:16:com.android.tools.r8.graph.DexProto getProto():63:63 -> a
    16:16:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):82 -> a
    17:24:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):82:89 -> a
    25:31:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):94:100 -> a
    32:32:com.android.tools.r8.graph.DexProto getProto():63:63 -> a
    32:32:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):100 -> a
    33:34:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):100:101 -> a
    35:35:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):137:137 -> a
    36:36:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forInvokePolymorphic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):232:232 -> a
    36:36:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):137 -> a
    37:39:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.DefaultInliningOracle,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):149:151 -> a
    40:40:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokePolymorphic):204:204 -> a
    40:40:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):44 -> a
    1:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):106:108 -> b
    com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> f
    java.util.Collection lookupTargets(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> g
com.android.tools.r8.ir.code.InvokeStatic -> com.android.tools.r8.t.b.v0:
    boolean itf -> k
    boolean $assertionsDisabled -> l
    1:1:void <clinit>():29:29 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):34:35 -> <init>
    3:4:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List,boolean):39:40 -> <init>
    int opcode() -> C2
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():55:55 -> J2
    java.lang.String getTypeString() -> K2
    boolean isInvokeStatic() -> R1
    com.android.tools.r8.ir.code.InvokeStatic asInvokeStatic() -> W
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):66:84 -> a
    20:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):120:120 -> a
    21:21:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.DefaultInliningOracle,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):130:130 -> a
    22:22:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):136:136 -> a
    23:23:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):146:146 -> a
    24:24:boolean lambda$instructionMayHaveSideEffects$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):193:193 -> a
    25:25:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):204:204 -> a
    26:26:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeStatic):209:209 -> a
    26:26:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):50 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):89:89 -> b
    1:38:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):152:189 -> c
    1:6:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):104:109 -> f
    7:13:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):108:114 -> f
com.android.tools.r8.ir.code.InvokeSuper -> com.android.tools.r8.t.b.w0:
    boolean $assertionsDisabled -> m
    boolean itf -> l
    1:1:void <clinit>():22:22 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List,boolean):27:28 -> <init>
    int opcode() -> C2
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():43:43 -> J2
    java.lang.String getTypeString() -> K2
    boolean isInvokeSuper() -> S1
    com.android.tools.r8.ir.code.InvokeSuper asInvokeSuper() -> X
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):54:72 -> a
    20:20:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):77:77 -> a
    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):110:110 -> a
    22:22:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):120:120 -> a
    23:23:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeSuper):214:214 -> a
    23:23:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):38 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):82:82 -> b
    1:5:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):97:101 -> f
com.android.tools.r8.ir.code.InvokeVirtual -> com.android.tools.r8.t.b.x0:
    boolean $assertionsDisabled -> l
    1:1:void <clinit>():26:26 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):29:29 -> <init>
    int opcode() -> C2
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():44:44 -> J2
    java.lang.String getTypeString() -> K2
    boolean isInvokeVirtual() -> T1
    com.android.tools.r8.ir.code.InvokeVirtual asInvokeVirtual() -> Y
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55:73 -> a
    20:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):108:108 -> a
    21:21:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):113:113 -> a
    22:22:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):123:123 -> a
    23:23:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):180:180 -> a
    24:24:java.lang.Object com.android.tools.r8.ir.code.DefaultInstructionVisitor.visit(com.android.tools.r8.ir.code.InvokeVirtual):219:219 -> a
    24:24:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):39 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):78:78 -> b
    1:41:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):129:169 -> c
    1:8:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):93:100 -> f
    9:9:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):96:96 -> f
com.android.tools.r8.ir.code.JumpInstruction -> com.android.tools.r8.t.b.y0:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():12:12 -> <clinit>
    1:1:void <init>():15:15 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.Value):19:19 -> <init>
    3:3:void <init>(java.util.List):23:23 -> <init>
    com.android.tools.r8.ir.code.BasicBlock fallthroughBlock() -> G2
    boolean hasInvariantOutType() -> L0
    boolean isJumpInstruction() -> U1
    com.android.tools.r8.ir.code.JumpInstruction asJumpInstruction() -> Z
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forJumpInstruction():261:261 -> a
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):52 -> a
    1:1:void setFallthroughBlock(com.android.tools.r8.ir.code.BasicBlock):31:31 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
com.android.tools.r8.ir.code.LinearFlowInstructionListIterator -> com.android.tools.r8.t.b.z0:
    com.android.tools.r8.ir.code.IRCode code -> a
    com.android.tools.r8.ir.code.InstructionListIterator currentBlockIterator -> c
    com.android.tools.r8.ir.code.BasicBlock currentBlock -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():15:15 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):23:23 -> <init>
    2:10:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,int):26:34 -> <init>
    1:1:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction,java.util.Set):40:40 -> a
    2:2:com.android.tools.r8.ir.code.Value insertConstNullInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):45:45 -> a
    3:3:com.android.tools.r8.ir.code.Value insertConstIntInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions,int):50:50 -> a
    4:4:void replaceCurrentInstructionWithConstInt(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,int):56:56 -> a
    5:5:void replaceCurrentInstructionWithStaticGet(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField,java.util.Set):65:65 -> a
    6:6:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,java.util.Set):76:76 -> a
    7:7:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):82:82 -> a
    8:8:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):87:87 -> a
    9:9:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.Set,com.android.tools.r8.graph.DexType):98:98 -> a
    10:13:boolean isLinearEdge(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):113:116 -> a
    14:24:com.android.tools.r8.ir.code.BasicBlock getBeginningOfTrivialLinearGotoChain(com.android.tools.r8.ir.code.BasicBlock):147:157 -> a
    1:1:void add(java.lang.Object):15:15 -> add
    2:2:void add(com.android.tools.r8.ir.code.Instruction):104:104 -> add
    2:2:void add(java.lang.Object):15 -> add
    1:18:com.android.tools.r8.ir.code.Instruction next():126:143 -> c
    1:1:void removeOrReplaceByDebugLocalRead():109:109 -> e
    1:1:boolean hasNext():121:121 -> hasNext
    1:4:boolean hasPrevious():162:165 -> hasPrevious
    1:1:java.lang.Object next():15:15 -> next
    1:1:int nextIndex():187:187 -> nextIndex
    1:1:java.lang.Object previous():15:15 -> previous
    2:14:com.android.tools.r8.ir.code.Instruction previous():170:182 -> previous
    1:1:int previousIndex():192:192 -> previousIndex
    1:1:void remove():197:197 -> remove
    1:1:void set(java.lang.Object):15:15 -> set
    2:2:void set(com.android.tools.r8.ir.code.Instruction):202:202 -> set
    2:2:void set(java.lang.Object):15 -> set
com.android.tools.r8.ir.code.Load -> com.android.tools.r8.t.b.A0:
    1:1:void <init>(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value):22:22 -> <init>
    int maxInValueRegister() -> A2
    1:1:int maxOutValueRegister():61:61 -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.ir.code.Value src():36:36 -> G2
    boolean hasInvariantOutType() -> L0
    boolean isLoad() -> V1
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):72:72 -> a
    2:3:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):77:78 -> a
    4:4:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):83:83 -> a
    5:5:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):93:93 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forLoad():265:265 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):67 -> a
    com.android.tools.r8.ir.code.Load asLoad() -> a0
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):51:51 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
com.android.tools.r8.ir.code.LogicalBinop -> com.android.tools.r8.t.b.B0:
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():17:17 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):20:20 -> <init>
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode() -> L2
    boolean isLogicalBinop() -> W1
    com.android.tools.r8.code.Instruction CreateInt(int,int,int) -> a
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55:73 -> a
    20:47:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):67:94 -> a
    48:57:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):88:97 -> a
    58:75:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):112:129 -> a
    76:86:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):127:137 -> a
    87:87:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):144:144 -> a
    com.android.tools.r8.code.Instruction CreateInt2Addr(int,int) -> b
    com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int) -> b
    com.android.tools.r8.ir.code.LogicalBinop asLogicalBinop() -> b0
    com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int) -> c
    com.android.tools.r8.code.Instruction CreateLong2Addr(int,int) -> c
    1:5:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):44:48 -> c
    com.android.tools.r8.code.Instruction CreateLong(int,int,int) -> d
com.android.tools.r8.ir.code.MemberType -> com.android.tools.r8.t.b.C0:
    com.android.tools.r8.ir.code.MemberType CHAR -> c
    com.android.tools.r8.ir.code.MemberType BOOLEAN_OR_BYTE -> b
    com.android.tools.r8.ir.code.MemberType INT -> e
    com.android.tools.r8.ir.code.MemberType SHORT -> d
    com.android.tools.r8.ir.code.MemberType LONG -> g
    com.android.tools.r8.ir.code.MemberType FLOAT -> f
    com.android.tools.r8.ir.code.MemberType INT_OR_FLOAT -> i
    com.android.tools.r8.ir.code.MemberType DOUBLE -> h
    com.android.tools.r8.ir.code.MemberType LONG_OR_DOUBLE -> j
    com.android.tools.r8.ir.code.MemberType[] $VALUES -> k
    com.android.tools.r8.ir.code.MemberType OBJECT -> a
    1:10:void <clinit>():12:21 -> <clinit>
    11:11:void <clinit>() -> <clinit>
    1:1:void <init>(java.lang.String,int):11:11 -> <init>
    1:1:boolean isPrecise():24:24 -> a
com.android.tools.r8.ir.code.Monitor -> com.android.tools.r8.t.b.D0:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.ir.code.Monitor$Type type -> h
    1:1:void <clinit>():22:22 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Monitor$Type,com.android.tools.r8.ir.code.Value):31:32 -> <init>
    int maxInValueRegister() -> A2
    1:1:int maxOutValueRegister():87:87 -> B2
    int opcode() -> C2
    1:7:java.lang.String getInstructionName():119:125 -> D0
    1:1:com.android.tools.r8.ir.code.Value getNonNullInput():156:156 -> E0
    boolean throwsOnNullInput() -> F2
    1:1:boolean isEnter():50:50 -> G2
    1:1:com.android.tools.r8.ir.code.Value object():46:46 -> H2
    boolean hasInvariantOutType() -> L0
    boolean instructionTypeCanThrow() -> R0
    boolean isMonitor() -> X1
    1:1:boolean isEnter():50:50 -> Y1
    1:1:boolean isMonitorEnter():103 -> Y1
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:8:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):64:71 -> a
    9:9:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):136:136 -> a
    10:10:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):141:141 -> a
    11:11:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):146:146 -> a
    12:12:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMonitor():269:269 -> a
    12:12:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):114 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):77:77 -> b
    com.android.tools.r8.ir.code.Monitor asMonitor() -> c0
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
com.android.tools.r8.ir.code.Monitor$Type -> com.android.tools.r8.t.b.D0$a:
    com.android.tools.r8.ir.code.Monitor$Type ENTER -> a
    com.android.tools.r8.ir.code.Monitor$Type[] $VALUES -> c
    com.android.tools.r8.ir.code.Monitor$Type EXIT -> b
    1:1:void <clinit>():25:25 -> <clinit>
    2:2:void <clinit>():24:24 -> <clinit>
    1:1:void <init>(java.lang.String,int):24:24 -> <init>
com.android.tools.r8.ir.code.Move -> com.android.tools.r8.t.b.E0:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():18:18 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):23:23 -> <init>
    int maxInValueRegister() -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    1:2:com.android.tools.r8.ir.code.ConstInstruction getOutConstantConstInstruction():86:87 -> G0
    1:1:com.android.tools.r8.ir.code.Value dest():37:37 -> G2
    1:1:com.android.tools.r8.ir.code.Value src():41:41 -> H2
    boolean hasInvariantOutType() -> L0
    boolean isMove() -> Z1
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):46:46 -> a
    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):51:51 -> a
    3:3:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):56:56 -> a
    4:4:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):108:108 -> a
    5:5:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):118:118 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMove():273:273 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):103 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):71:71 -> b
    2:5:boolean verifyTypes(com.android.tools.r8.graph.AppView):128:131 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    com.android.tools.r8.ir.code.Move asMove() -> d0
    1:1:boolean isOutConstant():81:81 -> j2
    1:1:java.lang.String toString():76:76 -> toString
com.android.tools.r8.ir.code.MoveException -> com.android.tools.r8.t.b.F0:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.DexType exceptionType -> h
    com.android.tools.r8.utils.InternalOptions options -> i
    1:1:void <clinit>():19:19 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType,com.android.tools.r8.utils.InternalOptions):24:26 -> <init>
    1:1:int maxInValueRegister():51:51 -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.graph.DexType getExceptionType():119:119 -> G2
    boolean hasInvariantOutType() -> L0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    void buildCf(com.android.tools.r8.ir.conversion.CfBuilder) -> a
    1:1:com.android.tools.r8.ir.code.Value dest():40:40 -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):45 -> a
    2:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):45:46 -> a
    4:5:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):83:84 -> a
    6:6:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):95:95 -> a
    7:7:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):110:110 -> a
    8:8:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):115:115 -> a
    9:9:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forMoveException():277:277 -> a
    9:9:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):90 -> a
    boolean isMoveException() -> a2
    1:4:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):62:65 -> b
    5:5:boolean com.android.tools.r8.utils.InternalOptions.canHaveExceptionTypeBug():1455:1455 -> b
    5:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):65 -> b
    6:6:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):66:66 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    com.android.tools.r8.ir.code.MoveException asMoveException() -> e0
com.android.tools.r8.ir.code.Mul -> com.android.tools.r8.t.b.G0:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):22:22 -> <init>
    int opcode() -> C2
    boolean isCommutative() -> H2
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():139:139 -> L2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    double foldDouble(double,double) -> a
    float foldFloat(float,float) -> a
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateDouble(int,int,int):69:69 -> a
    1:1:com.android.tools.r8.code.Instruction CreateFloat(int,int,int):61:61 -> b
    2:2:com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int):89:89 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):104:104 -> b
    boolean isMul() -> b2
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):45:45 -> c
    2:2:com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int):84:84 -> c
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):74:74 -> d
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):99:99 -> d
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):79:79 -> e
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):94:94 -> e
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):53:53 -> f
    com.android.tools.r8.ir.code.Mul asMul() -> f0
com.android.tools.r8.ir.code.Neg -> com.android.tools.r8.t.b.H0:
    com.android.tools.r8.ir.code.NumericType type -> h
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():21:21 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):26:27 -> <init>
    int opcode() -> C2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Unop.dest():21:21 -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55 -> a
    2:18:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55:71 -> a
    19:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):68:68 -> a
    20:20:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):65:65 -> a
    21:21:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:62 -> a
    22:36:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):59:73 -> a
    37:55:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):88:106 -> a
    56:56:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):111:111 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):49:49 -> b
    boolean isNeg() -> c2
    com.android.tools.r8.ir.code.Neg asNeg() -> g0
com.android.tools.r8.ir.code.NewArrayEmpty -> com.android.tools.r8.t.b.I0:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexType type -> h
    1:1:void <clinit>():20:20 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):25:26 -> <init>
    int maxInValueRegister() -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.ir.code.Value size():49:49 -> G2
    boolean hasInvariantOutType() -> L0
    1:4:boolean instructionInstanceCanThrow():77:80 -> P0
    boolean instructionTypeCanThrow() -> R0
    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):36:36 -> a
    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):54:54 -> a
    3:3:com.android.tools.r8.ir.code.Value dest():45:45 -> a
    3:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55 -> a
    4:5:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55:56 -> a
    6:11:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):85:90 -> a
    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    12:12:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):90 -> a
    13:13:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):111:111 -> a
    14:14:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):121:121 -> a
    15:16:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):126:127 -> a
    17:18:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):132:133 -> a
    19:19:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):138:138 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):95:95 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    boolean isNewArrayEmpty() -> d2
    com.android.tools.r8.ir.code.NewArrayEmpty asNewArrayEmpty() -> h0
    1:1:java.lang.String toString():41:41 -> toString
com.android.tools.r8.ir.code.NewArrayFilledData -> com.android.tools.r8.t.b.J0:
    long size -> i
    short[] data -> j
    boolean $assertionsDisabled -> k
    int element_width -> h
    1:1:void <clinit>():20:20 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.code.Value,int,long,short[]):30:33 -> <init>
    int maxInValueRegister() -> A2
    1:1:int maxOutValueRegister():83:83 -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.ir.code.Value src():47:47 -> G2
    boolean hasInvariantOutType() -> L0
    boolean instructionTypeCanThrow() -> R0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):56:57 -> a
    3:3:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):62:62 -> a
    4:4:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):110:110 -> a
    5:5:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):153:153 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forNewArrayFilledData():285:285 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):105 -> a
    1:7:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):67:73 -> b
    8:16:com.android.tools.r8.ir.analysis.AbstractError instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):120:128 -> b
    1:8:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):134:141 -> c
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    boolean isNewArrayFilledData() -> e2
    com.android.tools.r8.ir.code.NewArrayFilledData asNewArrayFilledData() -> i0
com.android.tools.r8.ir.code.NewInstance -> com.android.tools.r8.t.b.K0:
    boolean allowSpilling -> i
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.DexType clazz -> h
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):34:34 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):31:36 -> <init>
    1:1:int maxInValueRegister():71:71 -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.ir.code.Value dest():50:50 -> G2
    1:1:boolean isSpillingAllowed():199:199 -> H2
    1:1:void markNoSpilling():195:195 -> I2
    boolean hasInvariantOutType() -> L0
    boolean instructionTypeCanThrow() -> R0
    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):46:46 -> a
    2:2:com.android.tools.r8.ir.code.Value dest():50:50 -> a
    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55 -> a
    3:4:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55:56 -> a
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):99:99 -> a
    6:6:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):109:109 -> a
    7:7:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):114:114 -> a
    8:8:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):119:119 -> a
    9:9:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):124:124 -> a
    10:10:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):134:134 -> a
    11:11:boolean lambda$instructionMayHaveSideEffects$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):170:170 -> a
    12:12:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):191:191 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):66:66 -> b
    2:2:boolean lambda$instructionMayTriggerMethodInvocation$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):210:210 -> b
    3:6:boolean verifyTypes(com.android.tools.r8.graph.AppView):220:223 -> b
    7:9:boolean verifyTypes(com.android.tools.r8.graph.AppView):222:224 -> b
    1:10:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):140:149 -> c
    11:11:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> c
    11:11:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):149 -> c
    12:42:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):150:180 -> c
    43:43:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):145:145 -> c
    1:11:boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):204:214 -> d
    boolean isNewInstance() -> f2
    com.android.tools.r8.ir.code.NewInstance asNewInstance() -> j0
    1:1:java.lang.String toString():61:61 -> toString
com.android.tools.r8.ir.code.NextUntilIterator -> com.android.tools.r8.t.b.L0:
    1:3:java.lang.Object nextUntil(java.util.function.Predicate):19:21 -> a
com.android.tools.r8.ir.code.Not -> com.android.tools.r8.t.b.M0:
    com.android.tools.r8.ir.code.NumericType type -> h
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():19:19 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):24:25 -> <init>
    int opcode() -> C2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:15:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):45:59 -> a
    16:16:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):64:64 -> a
    17:17:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Unop.dest():21:21 -> a
    17:17:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):66 -> a
    18:28:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):66:76 -> a
    29:37:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):70:78 -> a
    38:38:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):99:99 -> a
    39:39:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):105:105 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):83:83 -> b
    boolean isNot() -> g2
    com.android.tools.r8.ir.code.Not asNot() -> k0
com.android.tools.r8.ir.code.NumberConversion -> com.android.tools.r8.t.b.N0:
    com.android.tools.r8.ir.code.NumericType to -> i
    com.android.tools.r8.ir.code.NumericType from -> h
    1:3:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):36:38 -> <init>
    int opcode() -> C2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Unop.dest():21:21 -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):58 -> a
    2:75:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):58:131 -> a
    76:96:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:82 -> a
    97:97:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):79:79 -> a
    98:98:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):76:76 -> a
    99:99:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):73:73 -> a
    100:100:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):70:70 -> a
    101:101:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):67:67 -> a
    102:165:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):64:127 -> a
    166:166:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):121:121 -> a
    167:167:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):118:118 -> a
    168:179:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):101:112 -> a
    180:180:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):106:106 -> a
    181:181:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):103:103 -> a
    182:193:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):86:97 -> a
    194:194:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):91:91 -> a
    195:240:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):88:133 -> a
    241:241:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):157:157 -> a
    242:242:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):162:162 -> a
    243:243:boolean outTypeKnownToBeBoolean(java.util.Set):167:167 -> a
    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):138:142 -> b
    boolean isNumberConversion() -> h2
    com.android.tools.r8.ir.code.NumberConversion asNumberConversion() -> l0
com.android.tools.r8.ir.code.NumericType -> com.android.tools.r8.t.b.O0:
    com.android.tools.r8.ir.code.NumericType DOUBLE -> g
    com.android.tools.r8.ir.code.NumericType FLOAT -> f
    com.android.tools.r8.ir.code.NumericType LONG -> e
    com.android.tools.r8.ir.code.NumericType INT -> d
    com.android.tools.r8.ir.code.NumericType SHORT -> c
    com.android.tools.r8.ir.code.NumericType CHAR -> b
    com.android.tools.r8.ir.code.NumericType BYTE -> a
    com.android.tools.r8.ir.code.NumericType[] $VALUES -> h
    1:7:void <clinit>():11:17 -> <clinit>
    8:8:void <clinit>():10:10 -> <clinit>
    1:1:void <init>(java.lang.String,int):10:10 -> <init>
    1:17:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):20:36 -> a
    18:18:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):34:34 -> a
    19:19:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):32:32 -> a
    20:20:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):30:30 -> a
    21:21:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):28:28 -> a
    22:22:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):26:26 -> a
    23:23:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):24:24 -> a
    24:24:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):22:22 -> a
    25:39:com.android.tools.r8.ir.code.NumericType fromDexType(com.android.tools.r8.graph.DexType):41:55 -> a
    40:40:com.android.tools.r8.ir.code.NumericType fromDexType(com.android.tools.r8.graph.DexType):47:47 -> a
    41:51:com.android.tools.r8.ir.code.NumericType fromDexType(com.android.tools.r8.graph.DexType):43:53 -> a
    52:52:com.android.tools.r8.ir.code.NumericType fromDexType(com.android.tools.r8.graph.DexType):49:49 -> a
    53:59:com.android.tools.r8.ir.code.NumericType fromDexType(com.android.tools.r8.graph.DexType):45:51 -> a
    60:60:boolean isWide():62:62 -> a
com.android.tools.r8.ir.code.Or -> com.android.tools.r8.t.b.P0:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):18:18 -> <init>
    int opcode() -> C2
    boolean isCommutative() -> H2
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():93:93 -> L2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):48:48 -> a
    2:2:boolean outTypeKnownToBeBoolean(java.util.Set):98:98 -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):58:58 -> b
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):73:73 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):78:78 -> b
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):63:63 -> c
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):68:68 -> c
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):53:53 -> d
    boolean isOr() -> i2
    com.android.tools.r8.ir.code.Or asOr() -> m0
com.android.tools.r8.ir.code.Phi -> com.android.tools.r8.t.b.Q0:
    com.android.tools.r8.ir.code.Phi$RegisterReadType readType -> t
    java.util.List definitionUsers -> v
    java.util.List operands -> s
    boolean isStackPhi -> u
    boolean $assertionsDisabled -> w
    com.android.tools.r8.ir.code.BasicBlock block -> r
    1:1:void <clinit>():34:34 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.ir.code.Phi$RegisterReadType):58:58 -> <init>
    2:21:void <init>(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.ir.code.Phi$RegisterReadType):42:61 -> <init>
    boolean isConstant() -> L
    1:2:boolean isValueOnStack():352:353 -> S
    1:1:void markNonDebugLocalRead():157:157 -> W
    1:1:boolean needsRegister():375:375 -> X
    1:4:void constrainType(com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.utils.Reporter):82:85 -> a
    5:27:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):107:129 -> a
    28:29:void appendOperand(com.android.tools.r8.ir.code.Value):168:169 -> a
    28:29:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):130 -> a
    30:30:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):132:132 -> a
    31:31:void throwUndefinedValueError():161:161 -> a
    31:31:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):109 -> a
    32:32:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    32:32:void throwUndefinedValueError():161 -> a
    32:32:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):109 -> a
    33:33:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    33:33:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    33:33:void throwUndefinedValueError():161 -> a
    33:33:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):109 -> a
    34:34:void throwUndefinedValueError():161:161 -> a
    34:34:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):109 -> a
    35:39:void addOperands(java.util.List,boolean):143:147 -> a
    40:41:void appendOperand(com.android.tools.r8.ir.code.Value):168:169 -> a
    40:41:void addOperands(java.util.List,boolean):148 -> a
    42:42:boolean removeTrivialPhi():233:233 -> a
    42:42:void addOperands(java.util.List,boolean):151 -> a
    43:43:void throwUndefinedValueError():161:161 -> a
    43:43:void addOperands(java.util.List,boolean):145 -> a
    44:44:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    44:44:void throwUndefinedValueError():161 -> a
    44:44:void addOperands(java.util.List,boolean):145 -> a
    45:45:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    45:45:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    45:45:void throwUndefinedValueError():161 -> a
    45:45:void addOperands(java.util.List,boolean):145 -> a
    46:46:void throwUndefinedValueError():161:161 -> a
    46:46:void addOperands(java.util.List,boolean):145 -> a
    47:50:void replaceOperandAt(int,com.android.tools.r8.ir.code.Value):201:204 -> a
    51:54:void replaceOperand(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):208:211 -> a
    55:94:boolean removeTrivialPhi(com.android.tools.r8.ir.conversion.IRBuilder,java.util.Set):238:277 -> a
    95:95:void addDefinitionsUser(java.util.Map):334:334 -> a
    95:95:boolean removeTrivialPhi(com.android.tools.r8.ir.conversion.IRBuilder,java.util.Set):277 -> a
    96:105:boolean removeTrivialPhi(com.android.tools.r8.ir.conversion.IRBuilder,java.util.Set):284:293 -> a
    106:113:void print(com.android.tools.r8.utils.CfgPrinter):322:329 -> a
    114:114:void addDefinitionsUser(java.util.Map):334:334 -> a
    115:118:void lambda$verifyIsStackPhi$0(java.util.Set,com.android.tools.r8.ir.code.Value):364:367 -> a
    119:119:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.cf.TypeVerificationHelper):383:383 -> a
    120:120:com.android.tools.r8.ir.code.ValueType com.android.tools.r8.ir.code.Value.outType():846:846 -> a
    120:120:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.cf.TypeVerificationHelper):383 -> a
    121:129:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.cf.TypeVerificationHelper):383:391 -> a
    boolean isPhi() -> b
    1:2:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Object):16:17 -> b
    1:2:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType(com.android.tools.r8.graph.AppView):406 -> b
    3:19:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType(com.android.tools.r8.graph.AppView):407:423 -> b
    20:22:void abortOnInvalidDebugInfo(com.android.tools.r8.ir.code.ValueTypeConstraint):89:91 -> b
    23:23:com.android.tools.r8.ir.code.Value getOperand(int):173:173 -> b
    24:35:void removeOperandsByIndex(java.util.List):186:197 -> b
    36:36:void removeDefinitionsUser(java.util.Map):338:338 -> b
    37:37:void setIsStackPhi(boolean):357:357 -> b
    1:2:void removeOperand(int):181:182 -> c
    3:4:boolean verifyIsStackPhi(java.util.Set):361:362 -> c
    1:3:com.android.tools.r8.ir.analysis.type.TypeLatticeElement computePhiType(com.android.tools.r8.graph.AppView):396:398 -> d
    com.android.tools.r8.ir.code.Phi asPhi() -> f
    1:1:com.android.tools.r8.ir.code.BasicBlock getBlock():76:76 -> g
    1:1:boolean usesValueOneTime(com.android.tools.r8.ir.code.Value):379:379 -> h
    1:1:void clearDefinitionsUsers():342:342 -> i0
    1:1:java.util.List getOperands():177:177 -> j0
    1:1:boolean isTrivialPhi():218:218 -> k0
    1:10:java.lang.String printPhi():309:318 -> l0
    1:4:void removeDeadPhi():299:302 -> m0
    5:5:com.android.tools.r8.ir.code.BasicBlock getBlock():76:76 -> m0
    5:5:void removeDeadPhi():305 -> m0
    6:6:void removeDeadPhi():305:305 -> m0
    1:1:boolean removeTrivialPhi():233:233 -> n0
com.android.tools.r8.ir.code.Phi$RegisterReadType -> com.android.tools.r8.t.b.Q0$a:
    com.android.tools.r8.ir.code.Phi$RegisterReadType NORMAL -> a
    com.android.tools.r8.ir.code.Phi$RegisterReadType DEBUG -> b
    1:2:void <clinit>():37:38 -> <clinit>
    1:1:void <init>(java.lang.String,int):36:36 -> <init>
com.android.tools.r8.ir.code.Pop -> com.android.tools.r8.t.b.R0:
    1:1:void <init>(com.android.tools.r8.ir.code.StackValue):19:19 -> <init>
    1:1:int maxInValueRegister():59:59 -> A2
    1:1:int maxOutValueRegister():64:64 -> B2
    int opcode() -> C2
    boolean hasInvariantOutType() -> L0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:75 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):80:80 -> a
    3:3:com.android.tools.r8.cf.code.CfStackInstruction com.android.tools.r8.cf.code.CfStackInstruction.popType(com.android.tools.r8.ir.code.ValueType):69:69 -> a
    3:3:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):80 -> a
    4:4:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):80:80 -> a
    5:5:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):85:85 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forPop():297:297 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):70 -> a
    1:5:void addInValue(com.android.tools.r8.ir.code.Value):34:38 -> b
    6:6:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):54:54 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    boolean isPop() -> k2
com.android.tools.r8.ir.code.Position -> com.android.tools.r8.t.b.S0:
    com.android.tools.r8.ir.code.Position TESTING_POSITION -> h
    com.android.tools.r8.ir.code.Position NO_POSITION_SYNTHETIC -> g
    com.android.tools.r8.graph.DexString file -> b
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexMethod method -> d
    com.android.tools.r8.ir.code.Position NO_POSITION -> f
    boolean synthetic -> c
    int line -> a
    com.android.tools.r8.ir.code.Position callerPosition -> e
    1:12:void <clinit>():13:24 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):39:41 -> <init>
    4:10:void <init>(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,boolean):45:51 -> <init>
    1:3:com.android.tools.r8.ir.code.Position synthetic(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):55:57 -> a
    4:5:com.android.tools.r8.ir.code.Position noneWithMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):77:78 -> a
    6:13:com.android.tools.r8.ir.code.Position getPositionForInlining(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):83:90 -> a
    14:14:com.android.tools.r8.ir.code.Position getPositionForInlining(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):88:88 -> a
    15:15:com.android.tools.r8.ir.code.Position getOutermostCaller():110:110 -> a
    1:1:boolean isNone():95:95 -> b
    1:1:boolean isSome():103:103 -> c
    1:1:boolean isSyntheticNone():99:99 -> d
    1:1:com.android.tools.r8.ir.code.Position none():61:61 -> e
    1:7:boolean equals(java.lang.Object):121:127 -> equals
    1:1:com.android.tools.r8.ir.code.Position syntheticNone():65:65 -> f
    1:1:com.android.tools.r8.ir.code.Position testingPosition():70:70 -> g
    1:5:int hashCode():134:138 -> hashCode
    1:19:java.lang.String toString(boolean):143:161 -> toString
    1:19:java.lang.String toString():166 -> toString
com.android.tools.r8.ir.code.Rem -> com.android.tools.r8.t.b.T0:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):24:24 -> <init>
    int opcode() -> C2
    boolean isCommutative() -> H2
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():148:148 -> L2
    1:1:boolean instructionTypeCanThrow():134:134 -> R0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    double foldDouble(double,double) -> a
    float foldFloat(float,float) -> a
    1:1:com.android.tools.r8.code.Instruction CreateDouble(int,int,int):69:69 -> a
    2:2:int foldIntegers(int,int):114:114 -> a
    3:3:long foldLongs(long,long):119:119 -> a
    4:8:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):139:143 -> a
    1:1:com.android.tools.r8.code.Instruction CreateFloat(int,int,int):64:64 -> b
    2:2:com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int):89:89 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):104:104 -> b
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):54:54 -> c
    2:2:com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int):84:84 -> c
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):74:74 -> d
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):99:99 -> d
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):79:79 -> e
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):94:94 -> e
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):59:59 -> f
    boolean isRem() -> l2
    com.android.tools.r8.ir.code.Rem asRem() -> n0
com.android.tools.r8.ir.code.Return -> com.android.tools.r8.t.b.U0:
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():21:21 -> <clinit>
    1:1:void <init>():24:24 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.Value):28:28 -> <init>
    int maxInValueRegister() -> A2
    1:1:int maxOutValueRegister():97:97 -> B2
    int opcode() -> C2
    1:2:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getReturnType():46:47 -> H2
    1:1:boolean isReturnVoid():42:42 -> I2
    1:2:com.android.tools.r8.ir.code.Value returnValue():51:52 -> J2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:75 -> a
    2:3:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):119:120 -> a
    4:6:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):127:129 -> a
    7:7:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):126:126 -> a
    8:8:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forReturn():301:301 -> a
    8:8:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):114 -> a
    1:15:com.android.tools.r8.code.Instruction createDexInstruction(com.android.tools.r8.ir.conversion.DexBuilder):56:70 -> b
    16:23:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):80:87 -> b
    24:26:boolean com.android.tools.r8.ir.analysis.type.TypeLatticeElement.isValueTypeCompatible(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):385:387 -> b
    24:26:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):87 -> b
    boolean isReturn() -> m2
    com.android.tools.r8.ir.code.Return asReturn() -> o0
com.android.tools.r8.ir.code.Shl -> com.android.tools.r8.t.b.V0:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):17:17 -> <init>
    int opcode() -> C2
    boolean isCommutative() -> H2
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():98:98 -> L2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):53:53 -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):63:63 -> b
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):78:78 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):83:83 -> b
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):68:68 -> c
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):73:73 -> c
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):58:58 -> d
    1:1:boolean fitsInDexInstruction(com.android.tools.r8.ir.code.Value):33:33 -> g
    boolean isShl() -> n2
    com.android.tools.r8.ir.code.Shl asShl() -> p0
com.android.tools.r8.ir.code.Shr -> com.android.tools.r8.t.b.W0:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):17:17 -> <init>
    int opcode() -> C2
    boolean isCommutative() -> H2
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():98:98 -> L2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):53:53 -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):63:63 -> b
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):78:78 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):83:83 -> b
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):68:68 -> c
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):73:73 -> c
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):58:58 -> d
    1:1:boolean fitsInDexInstruction(com.android.tools.r8.ir.code.Value):33:33 -> g
    boolean isShr() -> o2
    com.android.tools.r8.ir.code.Shr asShr() -> q0
com.android.tools.r8.ir.code.SingleConstant -> com.android.tools.r8.t.b.X0:
    int decodedValue() -> a
com.android.tools.r8.ir.code.StackValue -> com.android.tools.r8.t.b.Y0:
    int height -> r
    com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo typeInfo -> s
    boolean $assertionsDisabled -> t
    1:1:void <clinit>():11:11 -> <clinit>
    1:4:void <init>(com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,int):17:20 -> <init>
    boolean isValueOnStack() -> S
    boolean needsRegister() -> X
    1:3:com.android.tools.r8.ir.code.StackValue create(com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo,int,com.android.tools.r8.graph.AppView):24:26 -> a
    4:4:void setNeedsRegister(boolean):54:54 -> a
    1:1:com.android.tools.r8.ir.code.StackValue duplicate(int):39:39 -> b
    1:1:int getHeight():31:31 -> i0
    1:1:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo():35:35 -> j0
    1:1:java.lang.String toString():59:59 -> toString
com.android.tools.r8.ir.code.StackValues -> com.android.tools.r8.t.b.Z0:
    com.android.tools.r8.ir.code.StackValue[] stackValues -> r
    boolean $assertionsDisabled -> s
    1:1:void <clinit>():14:14 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.StackValue[]):19:21 -> <init>
    boolean isValueOnStack() -> S
    boolean needsRegister() -> X
    1:1:void setNeedsRegister(boolean):35:35 -> a
    1:1:com.android.tools.r8.ir.code.StackValue[] getStackValues():25:25 -> i0
    1:10:java.lang.String toString():40:49 -> toString
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getTypeLattice():59:59 -> w
com.android.tools.r8.ir.code.StaticGet -> com.android.tools.r8.t.b.a1:
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():32:32 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):35:35 -> <init>
    int maxInValueRegister() -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.ir.code.Value value():68:68 -> I2
    1:1:com.android.tools.r8.ir.code.Value dest():63:63 -> J2
    boolean instructionTypeCanBeCanonicalized() -> Q0
    boolean instructionTypeCanThrow() -> R0
    1:5:com.android.tools.r8.ir.code.StaticGet copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.StaticGet):39:43 -> a
    6:7:com.android.tools.r8.ir.code.StaticGet copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.StaticGet):48:49 -> a
    6:7:com.android.tools.r8.ir.code.StaticGet copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.StaticGet):44 -> a
    8:8:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):59:59 -> a
    9:9:com.android.tools.r8.ir.code.Value dest():63:63 -> a
    9:9:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):94 -> a
    10:37:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):94:121 -> a
    38:38:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):118:118 -> a
    39:39:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):115:115 -> a
    40:40:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):112:112 -> a
    41:41:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):109:109 -> a
    42:42:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):106:106 -> a
    43:43:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):103:103 -> a
    44:68:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):99:123 -> a
    69:80:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):73:84 -> a
    81:87:boolean couldIntroduceAnAlias(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Value):82:88 -> a
    88:88:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):149:149 -> a
    89:89:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):139:139 -> a
    89:89:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):149 -> a
    90:90:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):174:174 -> a
    91:91:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):194:194 -> a
    92:94:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):199:201 -> a
    95:95:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):199:199 -> a
    96:96:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):206:206 -> a
    97:97:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):211:211 -> a
    98:98:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):221:221 -> a
    99:99:boolean outTypeKnownToBeBoolean(java.util.Set):227:227 -> a
    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):164:168 -> b
    6:6:boolean lambda$instructionMayTriggerMethodInvocation$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):239:239 -> b
    1:1:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):139:139 -> c
    1:5:boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):232:236 -> d
    boolean isStaticGet() -> p2
    com.android.tools.r8.ir.code.StaticGet asStaticGet() -> r0
    1:1:java.lang.String toString():179:179 -> toString
com.android.tools.r8.ir.code.StaticPut -> com.android.tools.r8.t.b.b1:
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():32:32 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):35:35 -> <init>
    int maxInValueRegister() -> A2
    1:1:int maxOutValueRegister():152:152 -> B2
    int opcode() -> C2
    1:2:com.android.tools.r8.ir.code.Value value():50:51 -> I2
    boolean instructionTypeCanThrow() -> R0
    1:1:java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor):45:45 -> a
    2:29:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57:84 -> a
    30:30:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):81:81 -> a
    31:31:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):78:78 -> a
    32:32:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:75 -> a
    33:33:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):72:72 -> a
    34:34:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):69:69 -> a
    35:35:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):66:66 -> a
    36:60:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:86 -> a
    61:61:java.lang.Boolean lambda$instructionMayHaveSideEffects$0(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):118:118 -> a
    62:63:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):139:140 -> a
    64:74:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):158:168 -> a
    75:75:boolean com.android.tools.r8.utils.InternalOptions.canHaveIncorrectJoinForArrayOfInterfacesBug():0:0 -> a
    75:75:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):162 -> a
    76:76:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):188:188 -> a
    77:77:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):208:208 -> a
    78:80:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):213:215 -> a
    81:81:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):213:213 -> a
    82:82:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):225:225 -> a
    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):178:182 -> b
    6:6:boolean lambda$instructionMayTriggerMethodInvocation$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):238:238 -> b
    1:22:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):97:118 -> c
    23:30:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):117:124 -> c
    1:5:boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):231:235 -> d
    boolean isStaticPut() -> q2
    com.android.tools.r8.ir.code.StaticPut asStaticPut() -> s0
    1:1:java.lang.String toString():193:193 -> toString
com.android.tools.r8.ir.code.Store -> com.android.tools.r8.t.b.c1:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():20:20 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.StackValue):23:23 -> <init>
    1:1:int maxInValueRegister():57:57 -> A2
    int maxOutValueRegister() -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.ir.code.Value src():37:37 -> G2
    boolean hasInvariantOutType() -> L0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):73:73 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):78:78 -> a
    3:3:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):83:83 -> a
    4:4:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):88:88 -> a
    5:5:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):93:93 -> a
    6:6:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):103:103 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forStore():317:317 -> a
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):68 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):52:52 -> b
    1:2:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):108:109 -> c
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    boolean isStore() -> r2
    com.android.tools.r8.ir.code.Store asStore() -> t0
com.android.tools.r8.ir.code.StringSwitch -> com.android.tools.r8.t.b.d1:
    boolean $assertionsDisabled -> m
    com.android.tools.r8.graph.DexString[] keys -> l
    1:1:void <clinit>():15:15 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexString[],int[],int):21:23 -> <init>
    1:1:int maxInValueRegister():101:101 -> A2
    1:1:int maxOutValueRegister():106:106 -> B2
    int opcode() -> C2
    1:4:boolean valid():44:47 -> K2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:void forEachCase(java.util.function.BiConsumer):37:37 -> a
    2:2:com.android.tools.r8.graph.DexString getKey(int):62:62 -> a
    2:2:void forEachCase(java.util.function.BiConsumer):38 -> a
    3:3:void forEachCase(java.util.function.BiConsumer):38:38 -> a
    4:4:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):81:81 -> a
    5:5:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):86:86 -> a
    6:6:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):96:96 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):91:91 -> b
    boolean isStringSwitch() -> s2
    1:4:java.lang.String toString():67:70 -> toString
    5:5:com.android.tools.r8.graph.DexString getKey(int):62:62 -> toString
    5:5:java.lang.String toString():71 -> toString
    6:11:java.lang.String toString():71:76 -> toString
    com.android.tools.r8.ir.code.StringSwitch asStringSwitch() -> u0
com.android.tools.r8.ir.code.Sub -> com.android.tools.r8.t.b.e1:
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():24:24 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):27:27 -> <init>
    int opcode() -> C2
    boolean isCommutative() -> H2
    1:8:int maxInOutValueRegisterSize():131:138 -> J2
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():217:217 -> L2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    double foldDouble(double,double) -> a
    float foldFloat(float,float) -> a
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateDouble(int,int,int):62:62 -> a
    2:37:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):164:199 -> a
    38:38:com.android.tools.r8.code.Instruction CreateInt(int,int,int):47:47 -> a
    38:38:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):200 -> a
    39:39:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):202:202 -> a
    40:40:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):165:165 -> a
    1:1:com.android.tools.r8.code.Instruction CreateFloat(int,int,int):57:57 -> b
    2:2:com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int):82:82 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):99:99 -> b
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):47:47 -> c
    2:2:com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int):77:77 -> c
    3:15:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):145:157 -> c
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):67:67 -> d
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):94:94 -> d
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):72:72 -> e
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):88:88 -> e
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):52:52 -> f
    1:3:boolean negativeFitsInDexInstruction(com.android.tools.r8.ir.code.Value):123:125 -> i
    boolean isSub() -> t2
    com.android.tools.r8.ir.code.Sub asSub() -> v0
com.android.tools.r8.ir.code.Swap -> com.android.tools.r8.t.b.f1:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):22:22 -> <init>
    2:5:void <init>(com.android.tools.r8.ir.code.StackValues,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):26:29 -> <init>
    int maxInValueRegister() -> A2
    1:1:int maxOutValueRegister():87:87 -> B2
    int opcode() -> C2
    boolean hasInvariantOutType() -> L0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):67:67 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):72:72 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forSwap():321:321 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):93 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):77:77 -> b
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    1:6:void setOutValue(com.android.tools.r8.ir.code.Value):44:49 -> e
    boolean isSwap() -> u2
com.android.tools.r8.ir.code.Switch -> com.android.tools.r8.t.b.g1:
    int[] targetBlockIndices -> i
    int fallthroughBlockIndex -> j
    boolean $assertionsDisabled -> k
    1:1:void <clinit>():9:9 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.Value,int[],int):15:17 -> <init>
    1:1:com.android.tools.r8.ir.code.BasicBlock fallthroughBlock():51:51 -> G2
    1:1:int getFallthroughBlockIndex():55:55 -> H2
    1:1:int numberOfKeys():68:68 -> I2
    1:1:int[] targetBlockIndices():40:40 -> J2
    1:2:boolean valid():25:26 -> K2
    3:3:int getTargetBlockIndex(int):36:36 -> K2
    3:3:boolean valid():26 -> K2
    4:4:int getFallthroughBlockIndex():55:55 -> K2
    4:4:boolean valid():26 -> K2
    5:5:boolean valid():26:26 -> K2
    1:1:com.android.tools.r8.ir.code.Value value():21:21 -> L2
    1:1:int getTargetBlockIndex(int):36:36 -> b
    2:2:void setFallthroughBlock(com.android.tools.r8.ir.code.BasicBlock):64:64 -> b
    1:1:void setFallthroughBlockIndex(int):59:59 -> c
    1:1:com.android.tools.r8.ir.code.BasicBlock targetBlock(int):32:32 -> d
    2:2:int[] targetBlockIndices():40:40 -> d
    2:2:com.android.tools.r8.ir.code.BasicBlock targetBlock(int):32 -> d
    3:3:com.android.tools.r8.ir.code.BasicBlock targetBlock(int):32:32 -> d
    boolean isSwitch() -> v2
    com.android.tools.r8.ir.code.Switch asSwitch() -> w0
com.android.tools.r8.ir.code.Throw -> com.android.tools.r8.t.b.h1:
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():17:17 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value):20:20 -> <init>
    int maxInValueRegister() -> A2
    1:1:int maxOutValueRegister():49:49 -> B2
    int opcode() -> C2
    1:1:com.android.tools.r8.ir.code.Value exception():34:34 -> H2
    boolean instructionTypeCanThrow() -> R0
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):39:39 -> a
    2:2:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):81:81 -> a
    3:3:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):86:86 -> a
    4:21:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):91:108 -> a
    22:22:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forThrow():325:325 -> a
    22:22:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):76 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):60:60 -> b
    boolean isThrow() -> w2
    com.android.tools.r8.ir.code.Throw asThrow() -> x0
com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier -> com.android.tools.r8.t.b.j1:
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement getTypeLattice() -> a
    1:1:com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier create(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):15:15 -> a
    com.android.tools.r8.graph.DebugLocalInfo getLocalInfo() -> c
com.android.tools.r8.ir.code.TypeAndLocalInfoSupplier$1 -> com.android.tools.r8.t.b.i1:
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement val$type -> b
    com.android.tools.r8.graph.DebugLocalInfo val$local -> a
    1:1:void <init>(com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):15:15 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getTypeLattice():24:24 -> a
    1:1:com.android.tools.r8.graph.DebugLocalInfo getLocalInfo():19:19 -> c
com.android.tools.r8.ir.code.Unop -> com.android.tools.r8.t.b.k1:
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):17:17 -> <init>
    int maxInValueRegister() -> A2
    int maxOutValueRegister() -> B2
    1:1:com.android.tools.r8.ir.code.Value source():25:25 -> G2
    boolean hasInvariantOutType() -> L0
    1:2:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):56:57 -> a
    3:3:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):62:62 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget com.android.tools.r8.ir.optimize.InliningConstraints.forUnop():329:329 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):51 -> a
    boolean instructionMayTriggerMethodInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType) -> d
    boolean isUnop() -> x2
com.android.tools.r8.ir.code.Ushr -> com.android.tools.r8.t.b.l1:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):17:17 -> <init>
    int opcode() -> C2
    boolean isCommutative() -> H2
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():98:98 -> L2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):53:53 -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):63:63 -> b
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):78:78 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):83:83 -> b
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):68:68 -> c
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):73:73 -> c
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):58:58 -> d
    1:1:boolean fitsInDexInstruction(com.android.tools.r8.ir.code.Value):33:33 -> g
    com.android.tools.r8.ir.code.Ushr asUshr() -> y0
    boolean isUshr() -> y2
com.android.tools.r8.ir.code.Value -> com.android.tools.r8.t.b.m1:
    int needsRegister -> j
    boolean isThis -> k
    boolean isArgument -> l
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeLattice -> o
    com.android.tools.r8.ir.code.Value UNDEFINED -> p
    boolean $assertionsDisabled -> q
    int number -> a
    com.android.tools.r8.ir.regalloc.LiveIntervals liveIntervals -> i
    com.android.tools.r8.ir.code.Instruction definition -> b
    com.android.tools.r8.ir.code.Value previousConsecutive -> h
    java.util.Set uniqueUsers -> d
    com.android.tools.r8.ir.code.Value nextConsecutive -> g
    java.util.Set uniquePhiUsers -> f
    java.util.LinkedList phiUsers -> e
    com.android.tools.r8.ir.code.Value$DebugData debugData -> n
    com.android.tools.r8.utils.LongInterval valueRange -> m
    java.util.LinkedList users -> c
    1:165:void <clinit>():51:215 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):234:234 -> <init>
    2:20:void <init>(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):219:237 -> <init>
    1:1:boolean hasDebugUsers():499:499 -> A
    1:1:boolean hasLocalInfo():321:321 -> B
    1:1:boolean hasPhiUsers():503:503 -> C
    1:1:boolean hasUsers():507:507 -> D
    1:1:boolean hasUsersInfo():630:630 -> E
    1:1:boolean hasValueRange():1008:1008 -> F
    1:8:boolean internalComputeNeedsRegister():778:785 -> G
    1:1:boolean isArgument():919:919 -> H
    1:1:boolean isConstClass():875:875 -> I
    1:1:boolean isConstNumber():855:855 -> J
    1:1:boolean isConstString():859:859 -> K
    1:1:boolean isConstant():879:879 -> L
    1:1:boolean isDexItemBasedConstString():863:863 -> M
    boolean isFixedRegisterValue() -> N
    1:1:boolean isLinked():410:410 -> O
    1:3:boolean isNeverNull():907:909 -> P
    1:1:boolean isThis():1000:1000 -> Q
    1:1:boolean isUsed():539:539 -> R
    2:2:int numberOfDebugUsers():531:531 -> R
    2:2:boolean isUsed():539 -> R
    boolean isValueOnStack() -> S
    1:3:boolean isZero():1093:1095 -> T
    1:3:void markAsArgument():913:915 -> U
    1:3:void markAsThis():989:991 -> V
    1:1:void markNonDebugLocalRead():148:148 -> W
    1:3:boolean needsRegister():762:764 -> X
    1:1:int numberOfAllNonDebugUsers():527:527 -> Y
    1:1:int numberOfAllUsers():535 -> Y
    2:2:int numberOfDebugUsers():531:531 -> Y
    2:2:int numberOfAllUsers():535 -> Y
    1:5:int numberOfPhiUsers():519:523 -> Z
    boolean lambda$fullyRemovePhiUser$1(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Phi) -> a
    boolean lambda$fullyRemoveUser$0(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> a
    1:13:void constrainType(com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.utils.Reporter):55:67 -> a
    14:14:void setTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1104:1104 -> a
    14:14:void constrainType(com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.utils.Reporter):68 -> a
    15:15:void constrainType(com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.utils.Reporter):57:57 -> a
    16:18:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
    16:18:void constrainType(com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.utils.Reporter):57 -> a
    19:79:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):73:133 -> a
    80:81:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):128:129 -> a
    82:83:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):123:124 -> a
    84:85:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):118:119 -> a
    86:90:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):110:114 -> a
    91:92:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):105:106 -> a
    93:94:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):100:101 -> a
    95:111:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):79:95 -> a
    112:116:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):92:96 -> a
    117:117:boolean verifyCompatible(com.android.tools.r8.ir.code.ValueType):139:139 -> a
    118:118:boolean verifyCompatible(com.android.tools.r8.ir.code.ValueTypeConstraint):143:143 -> a
    118:118:boolean verifyCompatible(com.android.tools.r8.ir.code.ValueType):139 -> a
    119:139:com.android.tools.r8.ir.code.Value getAliasedValue(com.android.tools.r8.ir.code.AliasedValueConfiguration,java.util.function.Predicate):278:298 -> a
    140:141:com.android.tools.r8.ir.code.Value getSpecificAliasedValue(java.util.function.Predicate):304:305 -> a
    142:144:void setLocalInfo(com.android.tools.r8.graph.DebugLocalInfo):325:327 -> a
    145:148:boolean hasSameOrNoLocal(com.android.tools.r8.ir.code.Value):336:339 -> a
    149:150:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):379:380 -> a
    151:152:com.android.tools.r8.ir.code.Value$DebugUse markEnd(com.android.tools.r8.ir.code.Value$DebugUse):384:385 -> a
    151:152:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):380 -> a
    153:161:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.end():183:191 -> a
    153:161:com.android.tools.r8.ir.code.Value$DebugUse markEnd(com.android.tools.r8.ir.code.Value$DebugUse):385 -> a
    153:161:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):380 -> a
    162:162:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.end():189:189 -> a
    162:162:com.android.tools.r8.ir.code.Value$DebugUse markEnd(com.android.tools.r8.ir.code.Value$DebugUse):385 -> a
    162:162:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):380 -> a
    163:163:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.end():186:186 -> a
    163:163:com.android.tools.r8.ir.code.Value$DebugUse markEnd(com.android.tools.r8.ir.code.Value$DebugUse):385 -> a
    163:163:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):380 -> a
    164:164:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):380:380 -> a
    165:166:boolean onlyUsedInBlock(com.android.tools.r8.ir.code.BasicBlock):430:431 -> a
    167:169:java.util.Set aliasedUsers(com.android.tools.r8.ir.code.AliasedValueConfiguration):455:457 -> a
    170:177:void collectAliasedUsersViaAssume(com.android.tools.r8.ir.code.AliasedValueConfiguration,java.util.Set,java.util.Set,java.util.Set):466:473 -> a
    178:178:void collectAliasedUsersViaAssume(com.android.tools.r8.ir.code.AliasedValueConfiguration,java.util.Set,java.util.Set,java.util.Set):472:472 -> a
    179:180:void addPhiUser(com.android.tools.r8.ir.code.Phi):594:595 -> a
    181:183:java.util.Set affectedValues():645:647 -> a
    184:184:void addAffectedValuesTo(java.util.Set):651:651 -> a
    185:190:void forEachAffectedValue(java.util.function.Consumer):655:660 -> a
    191:218:void replaceSelectiveUsers(com.android.tools.r8.ir.code.Value,java.util.Set,java.util.Map):692:719 -> a
    219:228:void replaceUserInDebugData(java.util.Map$Entry,com.android.tools.r8.ir.code.Value):726:735 -> a
    229:242:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.join(com.android.tools.r8.ir.code.Value$DebugUse,com.android.tools.r8.ir.code.Value$DebugUse):196:209 -> a
    229:242:void replaceUserInDebugData(java.util.Map$Entry,com.android.tools.r8.ir.code.Value):735 -> a
    243:243:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.join(com.android.tools.r8.ir.code.Value$DebugUse,com.android.tools.r8.ir.code.Value$DebugUse):197:197 -> a
    243:243:void replaceUserInDebugData(java.util.Map$Entry,com.android.tools.r8.ir.code.Value):735 -> a
    244:244:void replaceUserInDebugData(java.util.Map$Entry,com.android.tools.r8.ir.code.Value):735:735 -> a
    245:246:void setLiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):753:754 -> a
    247:248:void setNeedsRegister(boolean):768:769 -> a
    249:258:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):883:892 -> a
    259:270:int computeArgumentPosition(com.android.tools.r8.ir.code.IRCode):944:955 -> a
    271:271:void setValueRange(com.android.tools.r8.utils.LongInterval):1004:1004 -> a
    272:272:boolean isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):1036:1036 -> a
    273:273:boolean isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate):1041:1041 -> a
    273:273:boolean isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):1036 -> a
    274:301:boolean isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,java.util.Set):1058:1085 -> a
    302:302:void setTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1104:1104 -> a
    303:305:void narrowing(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1123:1125 -> a
    306:314:void narrowing(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1123:1131 -> a
    315:315:void setTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1104:1104 -> a
    315:315:void narrowing(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1132 -> a
    316:323:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType(com.android.tools.r8.graph.AppView):1180:1187 -> a
    324:324:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    324:324:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType(com.android.tools.r8.graph.AppView):1188 -> a
    325:345:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType(com.android.tools.r8.graph.AppView):1189:1209 -> a
    346:346:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    346:346:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType(com.android.tools.r8.graph.AppView):1210 -> a
    347:347:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType(com.android.tools.r8.graph.AppView):1211:1211 -> a
    1:5:int numberOfUsers():511:515 -> a0
    boolean isPhi() -> b
    1:2:void fullyRemovePhiUser(com.android.tools.r8.ir.code.Phi):604:605 -> b
    3:4:void addDebugUser(com.android.tools.r8.ir.code.Instruction):609:610 -> b
    5:13:void replaceDebugUser(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):740:748 -> b
    14:36:boolean knownToBeBoolean(java.util.Set):963:985 -> b
    37:43:void widening(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1110:1116 -> b
    44:44:void setTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1104:1104 -> b
    44:44:void widening(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1117 -> b
    45:78:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType(com.android.tools.r8.graph.AppView):1141:1174 -> b
    79:79:boolean lambda$getDynamicLowerBoundType$5(com.android.tools.r8.ir.code.Value):1197:1197 -> b
    1:15:boolean onlyDependsOnArgument():923:937 -> b0
    16:16:boolean onlyDependsOnArgument():935:935 -> b0
    1:1:java.util.Set aliasedUsers():451:451 -> c
    2:4:java.util.Set aliasedUsers(com.android.tools.r8.ir.code.AliasedValueConfiguration):455:457 -> c
    2:4:java.util.Set aliasedUsers():451 -> c
    5:16:boolean isAlwaysNull(com.android.tools.r8.graph.AppView):543:554 -> c
    17:18:void addUser(com.android.tools.r8.ir.code.Instruction):569:570 -> c
    19:20:void removePhiUser(com.android.tools.r8.ir.code.Phi):599:600 -> c
    21:21:boolean lambda$getDynamicUpperBoundType$3(com.android.tools.r8.ir.code.Value):1144:1144 -> c
    1:1:com.android.tools.r8.ir.code.ValueType outType():846:846 -> c0
    1:1:int compareTo(java.lang.Object):51:51 -> compareTo
    2:2:int compareTo(com.android.tools.r8.ir.code.Value):807:807 -> compareTo
    2:2:int compareTo(java.lang.Object):51 -> compareTo
    1:2:void fullyRemoveUser(com.android.tools.r8.ir.code.Instruction):579:580 -> d
    3:3:boolean lambda$getDynamicUpperBoundType$4(com.android.tools.r8.ir.code.Value):1152:1152 -> d
    1:1:int requiredRegisters():313:313 -> d0
    com.android.tools.r8.ir.code.FixedRegisterValue asFixedRegisterValue() -> e
    boolean lambda$replaceSelectiveUsers$2(com.android.tools.r8.ir.code.Value) -> e
    1:5:void removeDebugUser(com.android.tools.r8.ir.code.Instruction):622:626 -> e
    1:2:com.android.tools.r8.ir.code.Instruction singleUniqueUser():446:447 -> e0
    com.android.tools.r8.ir.code.Phi asPhi() -> f
    1:4:void linkTo(com.android.tools.r8.ir.code.Value):389:392 -> f
    5:6:void removeUser(com.android.tools.r8.ir.code.Instruction):574:575 -> f
    1:4:java.util.Set uniquePhiUsers():484:487 -> f0
    1:13:void replaceUsers(com.android.tools.r8.ir.code.Value):667:679 -> g
    1:4:java.util.Set uniqueUsers():439:442 -> g0
    1:6:void clearUsers():584:589 -> h
    1:2:boolean usedInMonitorOperation():560:561 -> h0
    1:1:int hashCode():812:812 -> hashCode
    1:6:void clearUsersInfo():634:639 -> i
    1:2:void computeNeedsRegister():773:774 -> j
    1:1:java.util.Set debugUsers():491:491 -> k
    1:2:com.android.tools.r8.ir.code.Phi firstPhiUser():479:480 -> l
    1:1:com.android.tools.r8.ir.code.Value getAliasedValue():269:269 -> m
    2:2:com.android.tools.r8.ir.code.Value getAliasedValue():268:268 -> m
    1:2:com.android.tools.r8.ir.code.ConstInstruction getConstInstruction():850:851 -> n
    1:7:java.util.List getDebugLocalEnds():356:362 -> o
    1:7:java.util.List getDebugLocalStarts():343:349 -> p
    1:2:com.android.tools.r8.ir.code.Instruction getDefinition():249:250 -> q
    1:1:com.android.tools.r8.ir.regalloc.LiveIntervals getLiveIntervals():758:758 -> r
    1:1:com.android.tools.r8.graph.DebugLocalInfo getLocalInfo():317:317 -> s
    1:1:com.android.tools.r8.ir.code.Value getNextConsecutive():422:422 -> t
    1:26:java.lang.String toString():817:842 -> toString
    1:1:int getNumber():309:309 -> u
    1:1:com.android.tools.r8.ir.code.Value getPreviousConsecutive():426:426 -> v
    1:1:com.android.tools.r8.ir.code.Value getStartOfConsecutive():415 -> v
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getTypeLattice():1136:1136 -> w
    1:11:com.android.tools.r8.utils.LongInterval getValueRange():1020:1030 -> x
    1:1:boolean hasAliasedValue():254:254 -> y
    1:1:boolean hasAnyUsers():495:495 -> z
com.android.tools.r8.ir.code.Value$DebugData -> com.android.tools.r8.t.b.m1$a:
    java.util.Map users -> b
    com.android.tools.r8.graph.DebugLocalInfo local -> a
    1:1:void <init>(com.android.tools.r8.graph.DebugLocalInfo):158:158 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.DebugLocalInfo):156:159 -> <init>
com.android.tools.r8.ir.code.Value$DebugUse -> com.android.tools.r8.t.b.m1$b:
    com.android.tools.r8.ir.code.Value$DebugUse START -> b
    com.android.tools.r8.ir.code.Value$DebugUse[] $VALUES -> e
    com.android.tools.r8.ir.code.Value$DebugUse LIVE -> a
    com.android.tools.r8.ir.code.Value$DebugUse LIVE_FINAL -> d
    com.android.tools.r8.ir.code.Value$DebugUse END -> c
    boolean $assertionsDisabled -> f
    1:2:void <clinit>():166:167 -> <clinit>
    3:3:void <clinit>():166:166 -> <clinit>
    1:1:void <init>(java.lang.String,int):166:166 -> <init>
com.android.tools.r8.ir.code.ValueNumberGenerator -> com.android.tools.r8.t.b.n1:
    int nextValueNumber -> a
    1:2:void <init>():6:7 -> <init>
    1:1:int next():10:10 -> a
com.android.tools.r8.ir.code.ValueType -> com.android.tools.r8.t.b.o1:
    com.android.tools.r8.ir.code.ValueType DOUBLE -> e
    com.android.tools.r8.ir.code.ValueType FLOAT -> c
    com.android.tools.r8.ir.code.ValueType LONG -> d
    com.android.tools.r8.ir.code.ValueType OBJECT -> a
    com.android.tools.r8.ir.code.ValueType INT -> b
    com.android.tools.r8.ir.code.ValueType[] $VALUES -> f
    1:5:void <clinit>():14:18 -> <clinit>
    6:6:void <clinit>():13:13 -> <clinit>
    1:1:void <init>(java.lang.String,int):13:13 -> <init>
    1:1:boolean isObject():21:21 -> a
    2:2:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84:84 -> a
    3:3:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):79:79 -> a
    3:3:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84 -> a
    4:4:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):77:77 -> a
    4:4:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84 -> a
    5:15:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):63:73 -> a
    5:15:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84 -> a
    16:20:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):71:75 -> a
    16:20:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84 -> a
    21:21:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):69:69 -> a
    21:21:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):84 -> a
    22:35:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):88:101 -> a
    36:36:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):99:99 -> a
    37:37:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):97:97 -> a
    38:38:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):95:95 -> a
    39:39:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):93:93 -> a
    40:55:com.android.tools.r8.ir.code.ValueType fromTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):106:121 -> a
    1:1:boolean isWide():29:29 -> b
    1:1:int requiredRegisters():33:33 -> c
com.android.tools.r8.ir.code.ValueTypeConstraint -> com.android.tools.r8.t.b.p1:
    com.android.tools.r8.ir.code.ValueTypeConstraint FLOAT -> c
    com.android.tools.r8.ir.code.ValueTypeConstraint INT -> b
    com.android.tools.r8.ir.code.ValueTypeConstraint OBJECT -> a
    com.android.tools.r8.ir.code.ValueTypeConstraint DOUBLE -> g
    com.android.tools.r8.ir.code.ValueTypeConstraint LONG -> f
    com.android.tools.r8.ir.code.ValueTypeConstraint INT_OR_FLOAT_OR_OBJECT -> e
    com.android.tools.r8.ir.code.ValueTypeConstraint INT_OR_FLOAT -> d
    com.android.tools.r8.ir.code.ValueTypeConstraint[] $VALUES -> i
    com.android.tools.r8.ir.code.ValueTypeConstraint LONG_OR_DOUBLE -> h
    1:8:void <clinit>():14:21 -> <clinit>
    9:9:void <clinit>():13:13 -> <clinit>
    1:1:void <init>(java.lang.String,int):13:13 -> <init>
    1:1:boolean isWide():32:32 -> a
    2:14:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):46:58 -> a
    15:15:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):56:56 -> a
    16:16:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):54:54 -> a
    17:17:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):52:52 -> a
    18:18:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):50:50 -> a
    19:19:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):48:48 -> a
    20:20:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):106:106 -> a
    21:21:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):104:104 -> a
    22:32:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):90:100 -> a
    33:37:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):98:102 -> a
    38:38:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):96:96 -> a
    39:39:com.android.tools.r8.ir.code.ValueTypeConstraint fromDexType(com.android.tools.r8.graph.DexType):111:111 -> a
    40:53:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):115:128 -> a
    54:54:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):126:126 -> a
    55:55:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):124:124 -> a
    56:56:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):122:122 -> a
    57:57:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):120:120 -> a
    58:82:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):133:157 -> a
    83:83:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):137:137 -> a
    1:1:int requiredRegisters():42:42 -> b
com.android.tools.r8.ir.code.WideConstant -> com.android.tools.r8.t.b.q1:
    long decodedValue() -> a
com.android.tools.r8.ir.code.Xor -> com.android.tools.r8.t.b.r1:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):18:18 -> <init>
    int opcode() -> C2
    boolean isCommutative() -> H2
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():93:93 -> L2
    java.lang.Object accept(com.android.tools.r8.ir.code.InstructionVisitor) -> a
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):48:48 -> a
    2:2:boolean outTypeKnownToBeBoolean(java.util.Set):98:98 -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):58:58 -> b
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):73:73 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):78:78 -> b
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):63:63 -> c
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):68:68 -> c
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):53:53 -> d
    com.android.tools.r8.ir.code.Xor asXor() -> z0
    boolean isXor() -> z2
com.android.tools.r8.ir.conversion.ArrayFilledDataPayloadResolver -> com.android.tools.r8.ir.conversion.c:
    java.util.Map unresolvedPayload -> a
    java.util.Map payloadToData -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():15:15 -> <clinit>
    1:10:void <init>():15:24 -> <init>
    1:7:void addPayloadUser(com.android.tools.r8.code.FillArrayData):27:33 -> a
    8:17:void resolve(com.android.tools.r8.code.FillArrayDataPayload):38:47 -> a
    18:18:short[] getData(int):59:59 -> a
    19:19:void clear():63:63 -> a
    1:1:int getElementWidth(int):51:51 -> b
    1:1:long getSize(int):55:55 -> c
com.android.tools.r8.ir.conversion.ArrayFilledDataPayloadResolver$1 -> com.android.tools.r8.ir.conversion.a:
com.android.tools.r8.ir.conversion.ArrayFilledDataPayloadResolver$PayloadData -> com.android.tools.r8.ir.conversion.b:
    long size -> b
    short[] data -> c
    int element_width -> a
    1:1:void <init>():17:17 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.conversion.ArrayFilledDataPayloadResolver$1):17:17 -> <init>
com.android.tools.r8.ir.conversion.CallGraph -> com.android.tools.r8.ir.conversion.d:
    com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult cycleEliminationResult -> b
    java.util.Set nodes -> a
    1:3:void <init>(java.util.Set,com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult):164:166 -> <init>
    1:2:com.android.tools.r8.ir.conversion.CallSiteInformation createCallSiteInformation(com.android.tools.r8.graph.AppView):175:176 -> a
    3:3:com.android.tools.r8.ir.conversion.CallSiteInformation com.android.tools.r8.ir.conversion.CallSiteInformation.empty():27:27 -> a
    3:3:com.android.tools.r8.ir.conversion.CallSiteInformation createCallSiteInformation(com.android.tools.r8.graph.AppView):177 -> a
    4:4:java.util.Set extractLeaves():185:185 -> a
    5:16:java.util.Set extractNodes(java.util.function.Predicate,java.util.function.Consumer):193:204 -> a
    1:1:java.util.Set extractRoots():189:189 -> b
com.android.tools.r8.ir.conversion.CallGraph$Node -> com.android.tools.r8.ir.conversion.d$a:
    com.android.tools.r8.graph.DexEncodedMethod method -> a
    java.util.Set callees -> c
    java.util.Set callers -> d
    boolean $assertionsDisabled -> e
    int numberOfCallSites -> b
    1:1:void <clinit>():37:37 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod):50:50 -> <init>
    2:11:void <init>(com.android.tools.r8.graph.DexEncodedMethod):42:51 -> <init>
    1:1:void addCallerConcurrently(com.android.tools.r8.ir.conversion.CallGraph$Node):55:55 -> a
    2:8:void addCallerConcurrently(com.android.tools.r8.ir.conversion.CallGraph$Node,boolean):60:66 -> a
    9:16:void addCallerConcurrently(com.android.tools.r8.ir.conversion.CallGraph$Node,boolean):63:70 -> a
    17:19:void cleanCalleesForRemoval():80:82 -> a
    1:3:void cleanCallersForRemoval():87:89 -> b
    4:4:boolean hasCallee(com.android.tools.r8.ir.conversion.CallGraph$Node):106:106 -> b
    1:1:java.util.Set getCalleesWithDeterministicOrder():98:98 -> c
    2:2:boolean hasCaller(com.android.tools.r8.ir.conversion.CallGraph$Node):110:110 -> c
    1:1:int compareTo(java.lang.Object):37:37 -> compareTo
    2:2:int compareTo(com.android.tools.r8.ir.conversion.CallGraph$Node):123:123 -> compareTo
    2:2:int compareTo(java.lang.Object):37 -> compareTo
    1:2:void removeCaller(com.android.tools.r8.ir.conversion.CallGraph$Node):75:76 -> d
    3:3:java.util.Set getCallersWithDeterministicOrder():94:94 -> d
    1:1:int getNumberOfCallSites():102:102 -> e
    1:1:boolean isLeaf():118:118 -> f
    1:1:boolean isRoot():114:114 -> g
    1:30:java.lang.String toString():128:157 -> toString
com.android.tools.r8.ir.conversion.CallGraphBuilder -> com.android.tools.r8.ir.conversion.e:
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():16:16 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):19:19 -> <init>
    1:1:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):16:16 -> a
    2:2:void process(java.util.concurrent.ExecutorService):24:24 -> a
    3:3:void processClass(com.android.tools.r8.graph.DexProgramClass):28:28 -> a
    4:6:boolean verifyAllMethodsWithCodeExists():40:42 -> a
    1:3:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):32:34 -> b
    4:4:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):33:33 -> b
com.android.tools.r8.ir.conversion.CallGraphBuilderBase -> com.android.tools.r8.ir.conversion.g:
    java.util.Map nodes -> b
    java.util.Map possibleTargetsCache -> c
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():45:45 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):51:51 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.AppView):47:52 -> <init>
    void process(java.util.concurrent.ExecutorService) -> a
    boolean verifyAllMethodsWithCodeExists() -> a
    1:1:java.util.Map access$000(com.android.tools.r8.ir.conversion.CallGraphBuilderBase):45:45 -> a
    2:10:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):56:64 -> a
    11:11:java.util.TreeSet com.android.tools.r8.com.google.common.collect.Sets.newTreeSet():405:405 -> a
    11:11:java.util.TreeSet com.android.tools.r8.com.google.common.collect.Sets.newTreeSet(java.lang.Iterable):430 -> a
    11:11:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):64 -> a
    12:12:java.util.TreeSet com.android.tools.r8.com.google.common.collect.Sets.newTreeSet(java.lang.Iterable):431:431 -> a
    12:12:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):64 -> a
    13:19:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):65:71 -> a
    20:20:void lambda$build$0(com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteBuilderShrinker):60:60 -> a
    21:23:com.android.tools.r8.ir.conversion.CallGraph$Node getOrCreateNode(com.android.tools.r8.graph.DexEncodedMethod):77:79 -> a
    24:24:com.android.tools.r8.ir.conversion.CallGraph$Node lambda$getOrCreateNode$1(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod):78:78 -> a
com.android.tools.r8.ir.conversion.CallGraphBuilderBase$1 -> com.android.tools.r8.ir.conversion.f:
com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator -> com.android.tools.r8.ir.conversion.g$a:
    java.util.Deque stack -> c
    java.util.Collection nodes -> a
    java.util.Set stackSet -> d
    com.android.tools.r8.utils.InternalOptions options -> b
    java.util.Set marked -> e
    int maxDepth -> g
    boolean $assertionsDisabled -> h
    java.util.Map removedEdges -> f
    1:1:void <clinit>():283:283 -> <clinit>
    1:1:void <init>(java.util.Collection,com.android.tools.r8.utils.InternalOptions):341:341 -> <init>
    2:22:void <init>(java.util.Collection,com.android.tools.r8.utils.InternalOptions):328:348 -> <init>
    1:15:void traverse():429:443 -> a
    1:15:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    16:18:void push(com.android.tools.r8.ir.conversion.CallGraph$Node):546:548 -> a
    16:18:void traverse():448 -> a
    16:18:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    19:28:void traverse():452:461 -> a
    19:28:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    29:52:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCallees(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):476:499 -> a
    29:52:void traverse():461 -> a
    29:52:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    53:60:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCallees(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):495:502 -> a
    53:60:void traverse():461 -> a
    53:60:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    61:65:java.util.LinkedList extractCycle(com.android.tools.r8.ir.conversion.CallGraph$Node):559:563 -> a
    61:65:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCallees(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):505 -> a
    61:65:void traverse():461 -> a
    61:65:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    66:67:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCallees(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):507:508 -> a
    66:67:void traverse():461 -> a
    66:67:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    68:76:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge findCallEdgeForRemoval(java.util.LinkedList):568:576 -> a
    68:76:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCallees(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):514 -> a
    68:76:void traverse():461 -> a
    68:76:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    77:89:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCallees(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):519:531 -> a
    77:89:void traverse():461 -> a
    77:89:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    90:90:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCallees(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):526:526 -> a
    90:90:void traverse():461 -> a
    90:90:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    91:93:void recoverStack(java.util.LinkedList):594:596 -> a
    91:93:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCallees(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):536 -> a
    91:93:void traverse():461 -> a
    91:93:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    94:94:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge findCallEdgeForRemoval(java.util.LinkedList):580:580 -> a
    94:94:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCallees(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):514 -> a
    94:94:void traverse():461 -> a
    94:94:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    95:95:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    95:95:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge findCallEdgeForRemoval(java.util.LinkedList):580 -> a
    95:95:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCallees(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):514 -> a
    95:95:void traverse():461 -> a
    95:95:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    96:96:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge findCallEdgeForRemoval(java.util.LinkedList):580:580 -> a
    96:96:com.android.tools.r8.ir.conversion.CallGraph$Node iterateCallees(java.util.Iterator,com.android.tools.r8.ir.conversion.CallGraph$Node):514 -> a
    96:96:void traverse():461 -> a
    96:96:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    97:101:void traverse():464:468 -> a
    97:101:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    102:105:void pop(com.android.tools.r8.ir.conversion.CallGraph$Node):552:555 -> a
    102:105:void traverse():468 -> a
    102:105:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    106:106:void traverse():469:469 -> a
    106:106:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():353 -> a
    107:110:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():355:358 -> a
    111:115:void reset():365:369 -> a
    111:115:com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult breakCycles():360 -> a
    116:116:boolean edgeRemovalIsSafe(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):586:586 -> a
    117:117:void recordEdgeRemoval(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):590:590 -> a
    118:120:java.util.Collection reorderNodes(java.util.List):601:603 -> a
    1:1:java.util.Set lambda$recordEdgeRemoval$0(com.android.tools.r8.ir.conversion.CallGraph$Node):590:590 -> b
com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge -> com.android.tools.r8.ir.conversion.g$a$a:
    com.android.tools.r8.ir.conversion.CallGraph$Node callee -> b
    com.android.tools.r8.ir.conversion.CallGraph$Node caller -> a
    1:3:void <init>(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):293:295 -> <init>
    1:1:com.android.tools.r8.ir.conversion.CallGraph$Node access$500(com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge):288:288 -> a
    2:2:void remove():299:299 -> a
    1:1:com.android.tools.r8.ir.conversion.CallGraph$Node access$600(com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CallEdge):288:288 -> b
com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$CycleEliminationResult -> com.android.tools.r8.ir.conversion.g$a$b:
    java.util.Map removedEdges -> a
    1:2:void <init>(java.util.Map):307:308 -> <init>
    1:1:void forEachRemovedCaller(com.android.tools.r8.ir.conversion.CallGraph$Node,java.util.function.Consumer):312:312 -> a
    2:3:int numberOfRemovedEdges():317:318 -> a
com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$IteratorWorkItem -> com.android.tools.r8.ir.conversion.g$a$c:
    com.android.tools.r8.ir.conversion.CallGraph$Node caller -> a
    java.util.Iterator callees -> b
    1:3:void <init>(com.android.tools.r8.ir.conversion.CallGraph$Node,java.util.Iterator):412:414 -> <init>
    com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$IteratorWorkItem asIterator() -> a
    1:1:java.util.Iterator access$300(com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$IteratorWorkItem):408:408 -> a
    1:1:com.android.tools.r8.ir.conversion.CallGraph$Node access$400(com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$IteratorWorkItem):408:408 -> b
    boolean isIterator() -> c
com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$NodeWorkItem -> com.android.tools.r8.ir.conversion.g$a$d:
    com.android.tools.r8.ir.conversion.CallGraph$Node node -> a
    1:2:void <init>(com.android.tools.r8.ir.conversion.CallGraph$Node):393:394 -> <init>
    1:1:com.android.tools.r8.ir.conversion.CallGraph$Node access$200(com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$NodeWorkItem):390:390 -> a
    com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$NodeWorkItem asNode() -> b
    boolean isNode() -> d
com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$WorkItem -> com.android.tools.r8.ir.conversion.g$a$e:
    1:1:void <init>():372:372 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.conversion.CallGraphBuilderBase$1):372:372 -> <init>
    com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$IteratorWorkItem asIterator() -> a
    com.android.tools.r8.ir.conversion.CallGraphBuilderBase$CycleEliminator$NodeWorkItem asNode() -> b
    boolean isIterator() -> c
    boolean isNode() -> d
com.android.tools.r8.ir.conversion.CallGraphBuilderBase$InvokeExtractor -> com.android.tools.r8.ir.conversion.g$b:
    com.android.tools.r8.ir.conversion.CallGraph$Node caller -> a
    com.android.tools.r8.ir.conversion.CallGraphBuilderBase this$0 -> c
    java.util.function.Predicate targetTester -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():84:84 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.conversion.CallGraphBuilderBase,com.android.tools.r8.ir.conversion.CallGraph$Node,java.util.function.Predicate):89:92 -> <init>
    1:3:void addClassInitializerTarget(com.android.tools.r8.graph.DexClass):96:98 -> a
    4:5:void addClassInitializerTarget(com.android.tools.r8.graph.DexType):103:104 -> a
    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    6:6:void addClassInitializerTarget(com.android.tools.r8.graph.DexType):104 -> a
    7:7:void addClassInitializerTarget(com.android.tools.r8.graph.DexType):106:106 -> a
    8:22:void addTarget(com.android.tools.r8.graph.DexEncodedMethod,boolean):111:125 -> a
    23:41:void processInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod):129:147 -> a
    42:42:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    42:42:void processInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod):147 -> a
    43:49:void processInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod):148:154 -> a
    50:53:void processInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod):137:140 -> a
    54:55:void processInvokeWithDynamicDispatch(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexEncodedMethod):162:163 -> a
    56:56:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    56:56:void processInvokeWithDynamicDispatch(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexEncodedMethod):163 -> a
    57:85:void processInvokeWithDynamicDispatch(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexEncodedMethod):165:193 -> a
    86:89:java.util.Set lambda$processInvokeWithDynamicDispatch$0(boolean,com.android.tools.r8.graph.DexMethod):181:184 -> a
    90:90:java.util.Set com.android.tools.r8.graph.ResolutionResult.lookupVirtualDispatchTargets(boolean,com.android.tools.r8.graph.AppInfoWithSubtyping):80:80 -> a
    90:90:java.util.Set lambda$processInvokeWithDynamicDispatch$0(boolean,com.android.tools.r8.graph.DexMethod):184 -> a
    91:92:void processFieldAccess(com.android.tools.r8.graph.DexField):201:202 -> a
    93:93:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():139:139 -> a
    93:93:void processFieldAccess(com.android.tools.r8.graph.DexField):203 -> a
    94:94:void processFieldAccess(com.android.tools.r8.graph.DexField):204:204 -> a
    1:1:void registerCallSite(com.android.tools.r8.graph.DexCallSite):278:278 -> registerCallSite
    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):247:247 -> registerInstanceFieldRead
    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):241:241 -> registerInstanceFieldWrite
    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):217:217 -> registerInvokeDirect
    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):229:229 -> registerInvokeInterface
    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):223:223 -> registerInvokeStatic
    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):235:235 -> registerInvokeSuper
    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):211:211 -> registerInvokeVirtual
    1:2:boolean registerNewInstance(com.android.tools.r8.graph.DexType):253:254 -> registerNewInstance
    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):261:261 -> registerStaticFieldRead
    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):267:267 -> registerStaticFieldWrite
com.android.tools.r8.ir.conversion.CallSiteInformation -> com.android.tools.r8.ir.conversion.h:
    1:1:void <init>():14:14 -> <init>
    boolean hasDoubleCallSite(com.android.tools.r8.graph.DexMethod) -> a
    boolean hasSingleCallSite(com.android.tools.r8.graph.DexMethod) -> b
com.android.tools.r8.ir.conversion.CallSiteInformation$CallGraphBasedCallSiteInformation -> com.android.tools.r8.ir.conversion.h$a:
    java.util.Set singleCallSite -> a
    java.util.Set doubleCallSite -> b
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph):50:50 -> <init>
    2:25:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph):47:70 -> <init>
    1:1:boolean hasDoubleCallSite(com.android.tools.r8.graph.DexMethod):94:94 -> a
    1:1:boolean hasSingleCallSite(com.android.tools.r8.graph.DexMethod):83:83 -> b
com.android.tools.r8.ir.conversion.CallSiteInformation$EmptyCallSiteInformation -> com.android.tools.r8.ir.conversion.i:
    com.android.tools.r8.ir.conversion.CallSiteInformation$EmptyCallSiteInformation EMPTY_INFO -> a
    1:1:void <clinit>():32:32 -> <clinit>
    1:1:void <init>():30:30 -> <init>
    boolean hasDoubleCallSite(com.android.tools.r8.graph.DexMethod) -> a
    1:1:com.android.tools.r8.ir.conversion.CallSiteInformation$EmptyCallSiteInformation access$000():30:30 -> a
    boolean hasSingleCallSite(com.android.tools.r8.graph.DexMethod) -> b
com.android.tools.r8.ir.conversion.CfBuilder -> com.android.tools.r8.ir.conversion.l:
    com.android.tools.r8.ir.code.Position currentPosition -> h
    java.util.Map newInstanceLabels -> q
    java.util.List thisInitializers -> p
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.code.BasicBlock pendingFrame -> l
    boolean pendingLocalChanges -> k
    java.util.Map initializers -> o
    com.android.tools.r8.ir.code.IRCode code -> c
    boolean $assertionsDisabled -> r
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap openLocalVariables -> n
    java.util.Map labels -> d
    com.android.tools.r8.cf.CfRegisterAllocator registerAllocator -> g
    java.util.List instructions -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap pendingLocals -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap emittedLocals -> i
    java.util.Set emittedLabels -> e
    com.android.tools.r8.graph.DexEncodedMethod method -> b
    java.util.List localVariablesTable -> m
    1:1:void <clinit>():68:68 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):124:124 -> <init>
    2:46:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):83:127 -> <init>
    1:2:com.android.tools.r8.graph.DexField resolveField(com.android.tools.r8.graph.DexField):185:186 -> a
    3:20:void computeInitializers():190:207 -> a
    3:20:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):131 -> a
    21:23:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):132:134 -> a
    24:36:void rewriteNots():224:236 -> a
    24:36:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):135 -> a
    37:37:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    37:37:void rewriteNots():236 -> a
    37:37:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):135 -> a
    38:46:void rewriteNots():237:245 -> a
    38:46:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):135 -> a
    47:47:void rewriteNots():244:244 -> a
    47:47:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):135 -> a
    48:68:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):136:156 -> a
    69:106:void rewriteIincPatterns():360:397 -> a
    69:106:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):159 -> a
    107:107:int getLocalRegister(com.android.tools.r8.ir.code.Value):640:640 -> a
    107:107:void rewriteIincPatterns():397 -> a
    107:107:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):159 -> a
    108:108:void rewriteIincPatterns():397:397 -> a
    108:108:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):159 -> a
    109:109:int getLocalRegister(com.android.tools.r8.ir.code.Value):640:640 -> a
    109:109:void rewriteIincPatterns():397 -> a
    109:109:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):159 -> a
    110:128:void rewriteIincPatterns():398:416 -> a
    110:128:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):159 -> a
    129:129:void rewriteIincPatterns():394:394 -> a
    129:129:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):159 -> a
    130:130:void rewriteIincPatterns():389:389 -> a
    130:130:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):159 -> a
    131:132:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):161:162 -> a
    133:153:com.android.tools.r8.graph.CfCode buildCfCode():260:280 -> a
    133:153:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    154:180:com.android.tools.r8.graph.CfCode buildCfCode():279:305 -> a
    154:180:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    181:181:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
    181:181:com.android.tools.r8.graph.CfCode buildCfCode():305 -> a
    181:181:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    182:183:com.android.tools.r8.graph.CfCode buildCfCode():305:306 -> a
    182:183:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    184:186:int stackHeightAtBlockEntry(com.android.tools.r8.ir.code.BasicBlock):252:254 -> a
    184:186:com.android.tools.r8.graph.CfCode buildCfCode():309 -> a
    184:186:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    187:188:void com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker.setHeight(int):119:120 -> a
    187:188:com.android.tools.r8.graph.CfCode buildCfCode():309 -> a
    187:188:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    189:189:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):423:423 -> a
    189:189:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    189:189:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    190:190:boolean hasMaterializingInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):351:351 -> a
    190:190:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):424 -> a
    190:190:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    190:190:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    191:195:boolean isNopInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):340:344 -> a
    191:195:boolean hasMaterializingInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):352 -> a
    191:195:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):424 -> a
    191:195:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    191:195:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    196:198:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):428:430 -> a
    196:198:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    196:198:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    199:232:void addFrame(com.android.tools.r8.ir.code.BasicBlock):542:575 -> a
    199:232:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):430 -> a
    199:232:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    199:232:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    233:243:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):431:441 -> a
    233:243:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    233:243:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    244:245:void com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker.pop(com.android.tools.r8.ir.code.Value):114:115 -> a
    244:245:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):441 -> a
    244:245:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    244:245:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    246:263:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):444:461 -> a
    246:263:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    246:263:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    264:281:void updatePositionAndLocals(com.android.tools.r8.ir.code.Instruction):470:487 -> a
    264:281:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):463 -> a
    264:281:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    264:281:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    282:282:void add(com.android.tools.r8.cf.code.CfInstruction):644:644 -> a
    282:282:void updatePositionAndLocals(com.android.tools.r8.ir.code.Instruction):487 -> a
    282:282:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):463 -> a
    282:282:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    282:282:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    283:283:void updatePositionAndLocals(com.android.tools.r8.ir.code.Instruction):488:488 -> a
    283:283:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):463 -> a
    283:283:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    283:283:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    284:284:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):464:464 -> a
    284:284:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    284:284:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    285:285:com.android.tools.r8.graph.CfCode buildCfCode():312:312 -> a
    285:285:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    286:286:boolean com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker.isEmpty():104:104 -> a
    286:286:com.android.tools.r8.graph.CfCode buildCfCode():312 -> a
    286:286:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    287:307:com.android.tools.r8.graph.CfCode buildCfCode():312:332 -> a
    287:307:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    308:308:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):164:164 -> a
    309:316:boolean verifyInvokeInterface(com.android.tools.r8.graph.CfCode,com.android.tools.r8.graph.AppView):169:176 -> a
    309:316:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):164 -> a
    317:317:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    317:317:boolean verifyInvokeInterface(com.android.tools.r8.graph.CfCode,com.android.tools.r8.graph.AppView):176 -> a
    317:317:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):164 -> a
    318:318:boolean verifyInvokeInterface(com.android.tools.r8.graph.CfCode,com.android.tools.r8.graph.AppView):177:177 -> a
    318:318:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):164 -> a
    319:325:java.util.List computeInitializers(com.android.tools.r8.ir.code.Value):211:217 -> a
    326:326:com.android.tools.r8.cf.code.CfInstruction getLastInstruction():538:538 -> a
    326:326:com.android.tools.r8.cf.code.CfLabel ensureLabel():528 -> a
    327:330:com.android.tools.r8.cf.code.CfLabel ensureLabel():529:532 -> a
    331:331:void add(com.android.tools.r8.cf.code.CfInstruction):644:644 -> a
    331:331:com.android.tools.r8.cf.code.CfLabel ensureLabel():533 -> a
    332:333:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):579:580 -> a
    334:364:com.android.tools.r8.cf.code.CfFrame$FrameType findAllocator(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):589:619 -> a
    334:364:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):582 -> a
    365:365:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):583:583 -> a
    366:366:com.android.tools.r8.cf.code.CfFrame$FrameType findAllocator(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):596:596 -> a
    366:366:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):582 -> a
    367:369:void emitLabel(com.android.tools.r8.cf.code.CfLabel):627:629 -> a
    370:370:com.android.tools.r8.cf.code.CfLabel getLabel(com.android.tools.r8.ir.code.BasicBlock):636:636 -> a
    371:371:void add(com.android.tools.r8.cf.code.CfInstruction):644:644 -> a
    1:20:void updateLocals(com.android.tools.r8.cf.code.CfLabel):493:512 -> b
    21:26:void updateLocals(com.android.tools.r8.cf.code.CfLabel):511:516 -> b
    27:30:boolean localsChanged():520:523 -> b
    31:31:com.android.tools.r8.cf.code.CfLabel lambda$getLabel$0(com.android.tools.r8.ir.code.BasicBlock):636:636 -> b
    32:32:int getLocalRegister(com.android.tools.r8.ir.code.Value):640:640 -> b
com.android.tools.r8.ir.conversion.CfBuilder$1 -> com.android.tools.r8.ir.conversion.j:
com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker -> com.android.tools.r8.ir.conversion.k:
    int height -> b
    boolean $assertionsDisabled -> c
    int maxHeight -> a
    1:1:void <clinit>():99:99 -> <clinit>
    1:3:void <init>():99:101 -> <init>
    4:4:void <init>(com.android.tools.r8.ir.conversion.CfBuilder$1):99:99 -> <init>
    1:3:void push(com.android.tools.r8.ir.code.Value):108:110 -> a
com.android.tools.r8.ir.conversion.CfSourceCode -> com.android.tools.r8.ir.conversion.o:
    int currentInstructionIndex -> o
    com.android.tools.r8.graph.CfCode code -> h
    com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo currentBlockInfo -> a
    boolean inPrelude -> p
    boolean $assertionsDisabled -> v
    com.android.tools.r8.utils.InternalOutputMode internalOutputMode -> u
    com.android.tools.r8.ir.code.Monitor monitorEnter -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap incomingState -> s
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap outgoingLocals -> r
    com.android.tools.r8.origin.Origin origin -> j
    com.android.tools.r8.graph.AppView appView -> k
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap incomingLocals -> q
    com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList cachedLocalVariableList -> n
    com.android.tools.r8.ir.conversion.CfState state -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap labelOffsets -> l
    com.android.tools.r8.ir.code.CanonicalPositions canonicalPositions -> t
    java.util.List localVariables -> g
    com.android.tools.r8.graph.DexEncodedMethod method -> i
    boolean hasExitingInstruction -> b
    boolean needsGeneratedMethodSynchronization -> c
    boolean currentlyGeneratingMethodSynchronization -> d
    com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList cachedTryHandlerList -> m
    1:1:void <clinit>():55:55 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.CfCode,java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.AppView):226:226 -> <init>
    2:193:void <init>(com.android.tools.r8.graph.CfCode,java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.AppView):58:249 -> <init>
    int getMoveExceptionRegister(int) -> a
    void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder) -> a
    void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder) -> a
    boolean verifyLocalInScope(com.android.tools.r8.graph.DebugLocalInfo) -> a
    1:1:int instructionCount():262:262 -> a
    2:6:boolean canThrowHelper(com.android.tools.r8.cf.code.CfInstruction):290:294 -> a
    7:9:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):299:301 -> a
    10:10:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    10:10:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):301 -> a
    11:12:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):301:302 -> a
    13:39:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):301:327 -> a
    40:40:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList getTryHandlers(int,com.android.tools.r8.graph.DexItemFactory):334:334 -> a
    41:41:boolean com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList.validFor(int):80:80 -> a
    41:41:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList getTryHandlers(int,com.android.tools.r8.graph.DexItemFactory):334 -> a
    42:45:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList getTryHandlers(int,com.android.tools.r8.graph.DexItemFactory):335:338 -> a
    46:53:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList getTryHandlers(int,com.android.tools.r8.graph.DexItemFactory):336:343 -> a
    54:78:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):384:408 -> a
    79:81:void buildMethodEnterSynchronization(com.android.tools.r8.ir.conversion.IRBuilder):428:430 -> a
    79:81:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):409 -> a
    82:82:boolean isStatic():416:416 -> a
    82:82:void buildMethodEnterSynchronization(com.android.tools.r8.ir.conversion.IRBuilder):432 -> a
    82:82:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):409 -> a
    83:91:void buildMethodEnterSynchronization(com.android.tools.r8.ir.conversion.IRBuilder):433:441 -> a
    83:91:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):409 -> a
    92:93:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):411:412 -> a
    94:99:void buildExceptionalExitMethodSynchronization(com.android.tools.r8.ir.conversion.IRBuilder):445:450 -> a
    94:99:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):509 -> a
    100:111:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):512:523 -> a
    112:123:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):520:531 -> a
    124:126:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState$Snapshot.exceptionTransfer(com.android.tools.r8.graph.DexType):302:304 -> a
    124:126:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):531 -> a
    127:128:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):532:533 -> a
    129:129:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState$Snapshot.exceptionTransfer(com.android.tools.r8.graph.DexType):302:302 -> a
    129:129:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):531 -> a
    130:135:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):537:542 -> a
    136:139:void endLocals(com.android.tools.r8.ir.conversion.IRBuilder):691:694 -> a
    136:139:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):561 -> a
    140:152:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):544:556 -> a
    153:153:void build(com.android.tools.r8.cf.code.CfInstruction,com.android.tools.r8.ir.conversion.IRBuilder):580:580 -> a
    153:153:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):564 -> a
    154:160:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):566:572 -> a
    161:166:void startLocals(com.android.tools.r8.ir.conversion.IRBuilder):700:705 -> a
    161:166:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):575 -> a
    167:179:java.lang.String prettyType(com.android.tools.r8.ir.code.ValueType):717:729 -> a
    167:179:void startLocals(com.android.tools.r8.ir.conversion.IRBuilder):707 -> a
    167:179:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):575 -> a
    180:184:void startLocals(com.android.tools.r8.ir.conversion.IRBuilder):707:711 -> a
    180:184:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):575 -> a
    185:186:void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean):471:472 -> a
    187:215:void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean):471:499 -> a
    216:217:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):584:585 -> a
    218:222:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):111:115 -> a
    218:222:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):585 -> a
    223:238:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.origin.Origin):119:134 -> a
    223:238:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):115 -> a
    223:238:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):585 -> a
    239:239:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    239:239:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.origin.Origin):134 -> a
    239:239:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):115 -> a
    239:239:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):585 -> a
    240:240:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.origin.Origin):134:134 -> a
    240:240:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):115 -> a
    240:240:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):585 -> a
    241:241:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):587:587 -> a
    242:242:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.origin.Origin):120:120 -> a
    242:242:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):115 -> a
    242:242:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):585 -> a
    243:243:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    243:243:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.origin.Origin):120 -> a
    243:243:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):115 -> a
    243:243:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):585 -> a
    244:244:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.origin.Origin):120:120 -> a
    244:244:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):115 -> a
    244:244:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):585 -> a
    245:246:int getLabelOffset(com.android.tools.r8.cf.code.CfLabel):596:597 -> a
    247:257:void setStateFromFrame(com.android.tools.r8.cf.code.CfFrame):601:611 -> a
    258:258:void setStateFromFrame(com.android.tools.r8.cf.code.CfFrame):610:610 -> a
    259:282:com.android.tools.r8.graph.DexType convertUninitialized(com.android.tools.r8.cf.code.CfFrame$FrameType):615:638 -> a
    283:283:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,int):652:652 -> a
    284:289:com.android.tools.r8.ir.code.Position getCanonicalPosition(com.android.tools.r8.ir.code.Position):804:809 -> a
    290:290:com.android.tools.r8.ir.code.Position getCanonicalPosition(com.android.tools.r8.ir.code.Position):804:804 -> a
    int instructionOffset(int) -> b
    void setUp() -> b
    1:4:void buildPostlude(com.android.tools.r8.ir.conversion.IRBuilder):455:458 -> b
    5:6:boolean isControlFlow(com.android.tools.r8.cf.code.CfInstruction):734:735 -> b
    1:1:boolean isCurrentlyGeneratingMethodSynchronization():420:420 -> c
    1:1:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):742 -> c
    2:4:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):745:747 -> c
    5:10:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):746:751 -> c
    11:11:boolean isCurrentlyGeneratingMethodSynchronization():420:420 -> c
    11:11:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):662 -> c
    12:12:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):665:665 -> c
    13:13:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):657:657 -> c
    13:13:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):666 -> c
    14:16:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):668:670 -> c
    17:17:boolean isCurrentlyGeneratingMethodSynchronization():420:420 -> c
    17:17:boolean verifyCurrentInstructionCanThrow():761 -> c
    18:19:boolean verifyCurrentInstructionCanThrow():761:762 -> c
    20:20:boolean lambda$getCanonicalDebugPositionAtOffset$0(com.android.tools.r8.cf.code.CfInstruction):777:777 -> c
    1:2:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):773:774 -> d
    3:25:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):773:795 -> d
    26:26:com.android.tools.r8.ir.code.Position lambda$getCanonicalDebugPositionAtOffset$1(com.android.tools.r8.cf.code.CfInstruction):778:778 -> d
    27:27:com.android.tools.r8.ir.code.Position getCurrentPosition():800:800 -> d
    1:1:boolean isCurrentlyGeneratingMethodSynchronization():420:420 -> e
    1:1:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):657 -> e
    2:2:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):657:657 -> e
    3:3:int getCurrentInstructionIndex():592:592 -> e
    boolean verifyRegister(int) -> f
    1:1:com.android.tools.r8.origin.Origin getOrigin():253:253 -> f
    int instructionIndex(int) -> g
    1:1:com.android.tools.r8.graph.DexType getOriginalHolder():257:257 -> g
    1:1:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList getLocalVariables(int):347:347 -> h
    2:2:boolean com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList.validFor(int):175:175 -> h
    2:2:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList getLocalVariables(int):347 -> h
    3:6:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList getLocalVariables(int):348:351 -> h
    7:7:java.lang.Iterable lambda$getCanonicalDebugPositionAtOffset$2():779:779 -> h
    8:11:java.lang.Iterable lambda$getCanonicalDebugPositionAtOffset$2():776:779 -> h
    1:25:int[] getTargets(int):355:379 -> i
    26:27:int[] getTargets(int):359:360 -> i
    28:28:boolean localsChanged():687:687 -> i
    1:9:void setLocalVariableLists():674:682 -> j
    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMaps.emptyMap():198:198 -> j
    10:10:void setLocalVariableLists():683 -> j
    11:11:void setLocalVariableLists():683:683 -> j
com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList -> com.android.tools.r8.ir.conversion.m:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap locals -> c
    int endOffset -> b
    int startOffset -> a
    1:4:void <init>(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):140:143 -> <init>
    1:18:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList compute(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):153:170 -> a
    19:19:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMaps.emptyMap():198:198 -> a
    19:19:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList compute(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):171 -> a
    20:20:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList compute(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):171:171 -> a
com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList -> com.android.tools.r8.ir.conversion.n:
    java.util.List guards -> c
    boolean $assertionsDisabled -> e
    int endOffset -> b
    int startOffset -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList offsets -> d
    1:1:void <clinit>():65:65 -> <clinit>
    1:5:void <init>(int,int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):72:76 -> <init>
    1:2:boolean isEmpty():84:85 -> a
    3:4:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList computeTryHandlers(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,boolean,com.android.tools.r8.graph.DexItemFactory):96:97 -> a
    5:5:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> a
    5:5:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList computeTryHandlers(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,boolean,com.android.tools.r8.graph.DexItemFactory):97 -> a
    6:6:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList computeTryHandlers(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,boolean,com.android.tools.r8.graph.DexItemFactory):98:98 -> a
    7:7:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet.<init>():104:104 -> a
    7:7:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList computeTryHandlers(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,boolean,com.android.tools.r8.graph.DexItemFactory):98 -> a
    8:36:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList computeTryHandlers(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,boolean,com.android.tools.r8.graph.DexItemFactory):100:128 -> a
com.android.tools.r8.ir.conversion.CfState -> com.android.tools.r8.ir.conversion.t:
    com.android.tools.r8.ir.conversion.CfState$Snapshot current -> a
    com.android.tools.r8.ir.code.Position position -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():12:12 -> <clinit>
    1:1:void <init>(com.android.tools.r8.origin.Origin):72:72 -> <init>
    1:1:void buildPrelude(com.android.tools.r8.ir.code.Position):79:79 -> a
    2:2:void com.android.tools.r8.ir.conversion.CfState$BaseSnapshot.<init>():314:314 -> a
    2:2:void buildPrelude(com.android.tools.r8.ir.code.Position):79 -> a
    3:4:void buildPrelude(com.android.tools.r8.ir.code.Position):79:80 -> a
    5:7:void reset(com.android.tools.r8.ir.conversion.CfState$Snapshot,boolean,com.android.tools.r8.ir.code.Position):88:90 -> a
    8:8:void setStateFromFrame(com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType[],com.android.tools.r8.ir.code.Position):94:94 -> a
    9:9:int stackHeight():150:150 -> a
    9:9:void setStateFromFrame(com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType[],com.android.tools.r8.ir.code.Position):94 -> a
    10:11:void setStateFromFrame(com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType[],com.android.tools.r8.ir.code.Position):94:95 -> a
    12:12:com.android.tools.r8.ir.conversion.CfState$Slot push(com.android.tools.r8.ir.conversion.CfState$Slot):154:154 -> a
    13:13:com.android.tools.r8.ir.conversion.CfState$Slot push(com.android.tools.r8.graph.DexType):158:158 -> a
    14:14:com.android.tools.r8.ir.conversion.CfState$Slot push(com.android.tools.r8.ir.code.ValueType):162:162 -> a
    15:17:com.android.tools.r8.ir.conversion.CfState$Slot push(com.android.tools.r8.ir.conversion.CfState$SlotType):166:168 -> a
    18:18:void updateState(com.android.tools.r8.ir.conversion.CfState$Snapshot):172:172 -> a
    19:19:com.android.tools.r8.ir.conversion.CfState$Slot peek(int):194:194 -> a
    20:20:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.graph.DexType):202:202 -> a
    21:22:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.ir.conversion.CfState$SlotType):210:211 -> a
    21:22:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.graph.DexType):202 -> a
    23:23:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.ir.conversion.CfState$Slot):206:206 -> a
    24:25:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.ir.conversion.CfState$SlotType):210:211 -> a
    24:25:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.ir.conversion.CfState$Slot):206 -> a
    26:26:com.android.tools.r8.ir.code.Position getPosition():215:215 -> a
    1:1:com.android.tools.r8.ir.conversion.CfState$Snapshot getSnapshot():107:107 -> b
    2:2:com.android.tools.r8.ir.conversion.CfState$Slot read(int):198:198 -> b
    3:4:void setPosition(com.android.tools.r8.ir.code.Position):219:220 -> b
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot peek():190:190 -> c
    1:2:com.android.tools.r8.ir.conversion.CfState$Slot pop():176:177 -> d
    1:1:java.lang.String toString():225:225 -> toString
com.android.tools.r8.ir.conversion.CfState$1 -> com.android.tools.r8.ir.conversion.p:
com.android.tools.r8.ir.conversion.CfState$BaseSnapshot -> com.android.tools.r8.ir.conversion.q:
    com.android.tools.r8.ir.conversion.CfState$SlotType[] locals -> c
    com.android.tools.r8.ir.conversion.CfState$SlotType[] stack -> d
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():309:309 -> <clinit>
    1:3:void <init>(int,int):318:320 -> <init>
    4:5:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot):324:325 -> <init>
    6:15:void <init>(com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType[],com.android.tools.r8.ir.code.Position):329:338 -> <init>
    com.android.tools.r8.ir.conversion.CfState$BaseSnapshot asBase() -> a
    1:3:com.android.tools.r8.ir.conversion.CfState$SlotType getSlotType(com.android.tools.r8.graph.DexType):343:345 -> a
    4:8:com.android.tools.r8.ir.conversion.CfState$Slot getLocal(int):371:375 -> a
    9:13:void build(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot):380:384 -> a
    1:1:int maxLocal():355:355 -> b
    2:2:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):360:360 -> b
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot peek():365:365 -> c
    2:2:int stackHeight():350:350 -> c
    2:2:com.android.tools.r8.ir.conversion.CfState$Slot peek():365 -> c
    3:3:com.android.tools.r8.ir.conversion.CfState$Slot peek():365:365 -> c
    4:4:int stackHeight():350:350 -> c
    4:4:com.android.tools.r8.ir.conversion.CfState$Slot peek():366 -> c
    5:5:com.android.tools.r8.ir.conversion.CfState$Slot peek():366:366 -> c
    1:1:int stackHeight():350:350 -> d
    1:15:java.lang.String toString():395:409 -> toString
com.android.tools.r8.ir.conversion.CfState$Pop -> com.android.tools.r8.ir.conversion.r:
    int stackHeight -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():452:452 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot):457:459 -> <init>
    1:2:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):469:470 -> b
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot peek():475:475 -> c
    1:1:int stackHeight():464:464 -> d
    1:1:java.lang.String toString():480:480 -> toString
com.android.tools.r8.ir.conversion.CfState$Push -> com.android.tools.r8.ir.conversion.s:
    com.android.tools.r8.ir.conversion.CfState$Slot slot -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():413:413 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$SlotType):418:420 -> <init>
    1:3:void build(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot):440:442 -> a
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):430:430 -> b
    2:2:com.android.tools.r8.ir.conversion.CfState$Slot peek():435:435 -> b
    2:2:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):430 -> b
    3:3:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):430:430 -> b
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot peek():435:435 -> c
    1:1:int stackHeight():425:425 -> d
    1:1:java.lang.String toString():448:448 -> toString
com.android.tools.r8.ir.conversion.CfState$Slot -> com.android.tools.r8.ir.conversion.t$a:
    com.android.tools.r8.ir.conversion.CfState$SlotType slotType -> d
    com.android.tools.r8.ir.code.ValueType type -> b
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.DexType preciseType -> c
    int register -> a
    1:1:void <clinit>():228:228 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.ir.conversion.CfState$SlotType,com.android.tools.r8.ir.conversion.CfState$1):228:228 -> <init>
    2:6:void <init>(int,com.android.tools.r8.ir.conversion.CfState$SlotType):240:244 -> <init>
    1:1:com.android.tools.r8.ir.conversion.CfState$SlotType access$100(com.android.tools.r8.ir.conversion.CfState$Slot):228:228 -> a
    2:2:com.android.tools.r8.ir.conversion.CfState$Slot stackSlot(int,com.android.tools.r8.ir.conversion.CfState$SlotType):248:248 -> a
    2:2:com.android.tools.r8.ir.conversion.CfState$Slot access$300(int,com.android.tools.r8.ir.conversion.CfState$SlotType):228 -> a
    1:2:int stackPosition():252:253 -> b
    1:2:int access$500(com.android.tools.r8.ir.conversion.CfState$Slot):228 -> b
    1:3:java.lang.String toString():258:260 -> toString
com.android.tools.r8.ir.conversion.CfState$SlotType -> com.android.tools.r8.ir.conversion.w:
    1:1:void <init>():14:14 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.conversion.CfState$1):14:14 -> <init>
    com.android.tools.r8.ir.code.ValueType getImprecise() -> a
    com.android.tools.r8.graph.DexType getPrecise() -> b
com.android.tools.r8.ir.conversion.CfState$SlotType$Imprecise -> com.android.tools.r8.ir.conversion.u:
    com.android.tools.r8.ir.code.ValueType type -> a
    1:2:void <init>(com.android.tools.r8.ir.code.ValueType):47:48 -> <init>
    1:1:com.android.tools.r8.ir.code.ValueType getImprecise():58:58 -> a
    com.android.tools.r8.graph.DexType getPrecise() -> b
    1:1:java.lang.String toString():63:63 -> toString
com.android.tools.r8.ir.conversion.CfState$SlotType$Precise -> com.android.tools.r8.ir.conversion.v:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):23:24 -> <init>
    1:1:com.android.tools.r8.ir.code.ValueType getImprecise():34:34 -> a
    1:1:com.android.tools.r8.graph.DexType getPrecise():29:29 -> b
    1:1:java.lang.String toString():39:39 -> toString
com.android.tools.r8.ir.conversion.CfState$Snapshot -> com.android.tools.r8.ir.conversion.x:
    com.android.tools.r8.ir.conversion.CfState$Snapshot parent -> a
    int updates -> b
    1:1:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot,int,com.android.tools.r8.ir.conversion.CfState$1):264:264 -> <init>
    2:4:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot,int):268:270 -> <init>
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot getLocal(int):290:290 -> a
    2:2:void build(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot):294:294 -> a
    3:3:com.android.tools.r8.ir.conversion.CfState$BaseSnapshot asBase():298:298 -> a
    1:1:int maxLocal():278:278 -> b
    2:2:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):282:282 -> b
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot peek():286:286 -> c
    1:1:int stackHeight():274:274 -> d
com.android.tools.r8.ir.conversion.CfState$Write -> com.android.tools.r8.ir.conversion.y:
    com.android.tools.r8.ir.conversion.CfState$Slot slot -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():484:484 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot,int,com.android.tools.r8.ir.conversion.CfState$SlotType):489:491 -> <init>
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot getLocal(int):501:501 -> a
    2:3:void build(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot):506:507 -> a
    1:1:int maxLocal():496:496 -> b
    1:1:java.lang.String toString():512:512 -> toString
com.android.tools.r8.ir.conversion.CodeOptimization -> com.android.tools.r8.ir.conversion.z:
    void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor) -> a
com.android.tools.r8.ir.conversion.DexBuilder -> com.android.tools.r8.ir.conversion.K:
    boolean hasBackwardsBranch -> m
    boolean $assertionsDisabled -> o
    int outRegisterCount -> l
    int inRegisterCount -> k
    int minOffset -> h
    com.android.tools.r8.utils.InternalOptions options -> c
    com.android.tools.r8.ir.code.IRCode ir -> a
    int maxOffset -> g
    com.android.tools.r8.ir.conversion.DexBuilder$Info[] instructionToInfo -> i
    com.android.tools.r8.ir.conversion.DexBuilder$Info previousNonFallthroughInfo -> j
    com.android.tools.r8.ir.code.BasicBlock nextBlock -> n
    java.util.List fillArrayDataInfos -> e
    java.util.List switchPayloadInfos -> d
    com.android.tools.r8.ir.regalloc.RegisterAllocator registerAllocator -> b
    java.util.Set ifsNeedingRewrite -> f
    1:1:void <clinit>():83:83 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):125:126 -> <init>
    3:3:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,com.android.tools.r8.utils.InternalOptions):129:129 -> <init>
    4:43:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,com.android.tools.r8.utils.InternalOptions):95:134 -> <init>
    1:1:com.android.tools.r8.ir.conversion.DexBuilder$Info access$000(com.android.tools.r8.ir.conversion.DexBuilder,com.android.tools.r8.ir.code.BasicBlock):83:83 -> a
    2:2:com.android.tools.r8.ir.conversion.DexBuilder$Info access$100(com.android.tools.r8.ir.conversion.DexBuilder,com.android.tools.r8.ir.code.Instruction):83:83 -> a
    3:3:boolean access$202(com.android.tools.r8.ir.conversion.DexBuilder,boolean):83:83 -> a
    4:7:boolean identicalInstructionsAfterBuildingDexCode(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):142:145 -> a
    8:10:com.android.tools.r8.ir.conversion.DexBuilder$Info buildInfoForComparison(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder):150:152 -> a
    11:39:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):335:363 -> a
    40:42:boolean isTrivialFallthroughTarget(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):325:327 -> a
    40:42:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):364 -> a
    43:68:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):366:391 -> a
    69:69:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
    69:69:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):391 -> a
    70:99:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):392:421 -> a
    100:100:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
    100:100:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):421 -> a
    101:103:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):424:426 -> a
    104:105:boolean isNopInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):584:585 -> a
    104:105:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):427 -> a
    106:108:boolean isNonMaterializingConstNumber(com.android.tools.r8.ir.code.Instruction):592:594 -> a
    106:108:boolean isNopInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):586 -> a
    106:108:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):427 -> a
    109:109:boolean isNopInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):587:587 -> a
    109:109:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):427 -> a
    110:123:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):429:442 -> a
    124:124:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    124:124:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):443 -> a
    125:154:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):445:474 -> a
    155:166:void rewriteIfs():490:501 -> a
    155:166:com.android.tools.r8.graph.DexCode build():184 -> a
    167:171:void rewriteIfs():500:504 -> a
    167:171:com.android.tools.r8.graph.DexCode build():184 -> a
    172:172:com.android.tools.r8.graph.DexCode build():188:188 -> a
    173:178:void reset():160:165 -> a
    173:178:com.android.tools.r8.graph.DexCode build():191 -> a
    179:179:int instructionNumberToIndex(int):662:662 -> a
    179:179:void reset():165 -> a
    179:179:com.android.tools.r8.graph.DexCode build():191 -> a
    180:183:void reset():165:168 -> a
    180:183:com.android.tools.r8.graph.DexCode build():191 -> a
    184:225:com.android.tools.r8.graph.DexCode build():196:237 -> a
    226:226:boolean com.android.tools.r8.utils.InternalOptions.canHaveTracingPastInstructionsStreamBug():1391:1391 -> a
    226:226:com.android.tools.r8.graph.DexCode build():237 -> a
    227:270:com.android.tools.r8.graph.DexCode build():238:281 -> a
    271:290:com.android.tools.r8.code.Nop createSwitchPayload(com.android.tools.r8.ir.conversion.DexBuilder$SwitchPayloadInfo,int):714:733 -> a
    271:290:com.android.tools.r8.graph.DexCode build():284 -> a
    291:305:com.android.tools.r8.graph.DexCode build():285:299 -> a
    306:306:com.android.tools.r8.code.FillArrayDataPayload com.android.tools.r8.ir.code.NewArrayFilledData.createPayload():51:51 -> a
    306:306:com.android.tools.r8.graph.DexCode build():299 -> a
    307:310:com.android.tools.r8.graph.DexCode build():300:303 -> a
    311:311:com.android.tools.r8.code.FillArrayDataPayload com.android.tools.r8.ir.code.NewArrayFilledData.createPayload():51:51 -> a
    311:311:com.android.tools.r8.graph.DexCode build():299 -> a
    312:314:com.android.tools.r8.ir.conversion.DexBuilder$TryInfo computeTryInfo():740:742 -> a
    312:314:com.android.tools.r8.graph.DexCode build():307 -> a
    315:320:com.android.tools.r8.graph.DexCode$Try[] getDexTryItems(java.util.List,java.util.Map):843:848 -> a
    315:320:com.android.tools.r8.ir.conversion.DexBuilder$TryInfo computeTryInfo():744 -> a
    315:320:com.android.tools.r8.graph.DexCode build():307 -> a
    321:321:com.android.tools.r8.ir.conversion.DexBuilder$TryInfo computeTryInfo():745:745 -> a
    321:321:com.android.tools.r8.graph.DexCode build():307 -> a
    322:339:com.android.tools.r8.graph.DexCode$TryHandler[] getDexTryHandlers(java.util.Map):854:871 -> a
    322:339:com.android.tools.r8.ir.conversion.DexBuilder$TryInfo computeTryInfo():745 -> a
    322:339:com.android.tools.r8.graph.DexCode build():307 -> a
    340:348:com.android.tools.r8.graph.DexCode build():310:318 -> a
    349:350:void requestOutgoingRegisters(int):514:515 -> a
    351:351:int allocatedRegister(com.android.tools.r8.ir.code.Value,int):520:520 -> a
    352:355:void addGoto(com.android.tools.r8.ir.code.Goto):530:533 -> a
    356:370:boolean needsNopBetweenMoveAndInstanceOf(com.android.tools.r8.code.InstanceOf):538:552 -> a
    356:370:void addInstanceOf(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.code.InstanceOf):562 -> a
    371:373:void addInstanceOf(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.code.InstanceOf):563:565 -> a
    374:375:void addIf(com.android.tools.r8.ir.code.If):570:571 -> a
    376:376:void addMove(com.android.tools.r8.ir.code.Move):575:575 -> a
    377:377:void addNop(com.android.tools.r8.ir.code.Instruction):598:598 -> a
    377:377:void addDebugPosition(com.android.tools.r8.ir.code.DebugPosition):604 -> a
    378:378:void addNop(com.android.tools.r8.ir.code.Instruction):598:598 -> a
    379:382:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction):608:611 -> a
    383:386:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction):609:612 -> a
    387:388:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction[]):616:617 -> a
    389:391:void addSwitch(com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.code.Format31t):621:623 -> a
    392:393:void addFillArrayData(com.android.tools.r8.ir.code.NewArrayFilledData,com.android.tools.r8.code.FillArrayData):627:628 -> a
    394:395:void addArgument(com.android.tools.r8.ir.code.Argument):632:633 -> a
    396:400:void addReturn(com.android.tools.r8.ir.code.Return,com.android.tools.r8.code.Instruction):637:641 -> a
    401:401:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):646:646 -> a
    402:403:void setSingleInfo(com.android.tools.r8.ir.conversion.DexBuilder$Info):680:681 -> a
    402:403:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):648 -> a
    404:410:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):651:657 -> a
    411:415:void setInfo(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):672:676 -> a
    411:415:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):658 -> a
    416:416:int instructionNumberToIndex(int):662:662 -> a
    416:416:void setInfo(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):676 -> a
    416:416:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):658 -> a
    417:417:void setInfo(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):676:676 -> a
    417:417:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):658 -> a
    418:429:com.android.tools.r8.ir.conversion.DexBuilder$Info getTargetInfo(com.android.tools.r8.ir.code.BasicBlock):685:696 -> a
    430:435:com.android.tools.r8.ir.code.BasicBlock computeNextBlock(com.android.tools.r8.ir.code.BasicBlock):704:709 -> a
    430:435:com.android.tools.r8.ir.conversion.DexBuilder$Info getTargetInfo(com.android.tools.r8.ir.code.BasicBlock):697 -> a
    436:439:com.android.tools.r8.ir.conversion.DexBuilder$Info getTargetInfo(com.android.tools.r8.ir.code.BasicBlock):697:700 -> a
    440:514:java.util.List computeTryItems(com.android.tools.r8.com.google.common.collect.BiMap):751:825 -> a
    1:1:void needsIfRewriting(com.android.tools.r8.ir.code.BasicBlock):510:510 -> b
    1:1:void access$300(com.android.tools.r8.ir.conversion.DexBuilder,com.android.tools.r8.ir.code.BasicBlock):83 -> b
    2:2:int argumentOrAllocateRegister(com.android.tools.r8.ir.code.Value,int):526:526 -> b
    3:3:void addNothing(com.android.tools.r8.ir.code.Instruction):579:579 -> b
    4:11:int trimEnd(com.android.tools.r8.ir.code.BasicBlock):831:838 -> b
    12:12:com.android.tools.r8.utils.InternalOptions getOptions():877:877 -> b
    1:2:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):667:668 -> c
    3:3:int instructionNumberToIndex(int):662:662 -> c
    3:3:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):668 -> c
    4:4:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):668:668 -> c
    5:5:com.android.tools.r8.ir.regalloc.RegisterAllocator getRegisterAllocator():881:881 -> c
    1:1:boolean isBuildingForComparison():156:156 -> d
com.android.tools.r8.ir.conversion.DexBuilder$FallThroughInfo -> com.android.tools.r8.ir.conversion.A:
    1:1:void <init>(com.android.tools.r8.ir.code.Instruction):1050:1050 -> <init>
    void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List) -> a
    int computeSize(com.android.tools.r8.ir.conversion.DexBuilder) -> a
    1:1:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1079:1079 -> a
    int getSize() -> d
    int maxSize() -> e
    int minSize() -> f
com.android.tools.r8.ir.conversion.DexBuilder$FillArrayDataInfo -> com.android.tools.r8.ir.conversion.B:
    com.android.tools.r8.code.FillArrayData dex -> b
    com.android.tools.r8.ir.code.NewArrayFilledData ir -> a
    1:3:void <init>(com.android.tools.r8.ir.code.NewArrayFilledData,com.android.tools.r8.code.FillArrayData):1525:1527 -> <init>
com.android.tools.r8.ir.conversion.DexBuilder$FixedSizeInfo -> com.android.tools.r8.ir.conversion.C:
    com.android.tools.r8.code.Instruction instruction -> e
    1:2:void <init>(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction):957:958 -> <init>
    1:2:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):978:979 -> a
    3:3:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):984:984 -> a
    4:5:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):989:990 -> a
    1:1:int getSize():963:963 -> d
    1:1:int maxSize():973:973 -> e
    1:1:int minSize():968:968 -> f
com.android.tools.r8.ir.conversion.DexBuilder$GotoInfo -> com.android.tools.r8.ir.conversion.D:
    boolean $assertionsDisabled -> f
    int size -> e
    1:1:void <clinit>():1083:1083 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Goto):1088:1088 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.Goto):1085:1085 -> <init>
    1:1:com.android.tools.r8.ir.code.Goto getJump():1092:1092 -> a
    1:1:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1156 -> a
    2:46:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1157:1201 -> a
    47:51:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1190:1194 -> a
    52:71:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1185:1204 -> a
    72:72:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1115:1115 -> a
    73:73:com.android.tools.r8.ir.code.Goto getJump():1092:1092 -> a
    73:73:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1116 -> a
    74:108:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1117:1151 -> a
    109:109:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1210:1210 -> a
    1:2:int getSize():1097:1098 -> d
    1:1:int maxSize():1109:1109 -> e
    1:1:int minSize():1103:1103 -> f
com.android.tools.r8.ir.conversion.DexBuilder$IfInfo -> com.android.tools.r8.ir.conversion.E:
    boolean $assertionsDisabled -> f
    int size -> e
    1:1:void <clinit>():1214:1214 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.If):1219:1219 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.If):1216:1216 -> <init>
    1:1:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    1:1:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    1:1:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1260 -> a
    2:2:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    2:2:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1260 -> a
    3:13:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1261:1271 -> a
    14:14:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    14:14:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    14:14:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1239 -> a
    14:14:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1271 -> a
    15:15:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    15:15:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1239 -> a
    15:15:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1271 -> a
    16:17:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1240:1241 -> a
    16:17:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1271 -> a
    18:25:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1271:1278 -> a
    26:26:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    26:26:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    26:26:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1279 -> a
    27:27:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    27:27:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1279 -> a
    28:45:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1279:1296 -> a
    46:46:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1293:1293 -> a
    47:47:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1290:1290 -> a
    48:48:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1287:1287 -> a
    49:49:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1284:1284 -> a
    50:69:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1281:1300 -> a
    70:70:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    70:70:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    70:70:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1301 -> a
    71:71:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    71:71:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1301 -> a
    72:89:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1301:1318 -> a
    90:90:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1315:1315 -> a
    91:91:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1312:1312 -> a
    92:92:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1309:1309 -> a
    93:93:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1306:1306 -> a
    94:94:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1303:1303 -> a
    95:95:int getOffset():1214:1214 -> a
    95:95:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1322 -> a
    96:97:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1322:1323 -> a
    98:98:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    98:98:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    98:98:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1245 -> a
    98:98:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    99:99:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    99:99:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1245 -> a
    99:99:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    100:100:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1245:1245 -> a
    100:100:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    101:101:int getMaxOffset():1214:1214 -> a
    101:101:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1246 -> a
    101:101:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    102:102:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1247:1247 -> a
    102:102:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    103:103:int getOffset():1214:1214 -> a
    103:103:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1249 -> a
    103:103:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    104:104:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1249:1249 -> a
    104:104:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    105:105:int getOffset():1214:1214 -> a
    105:105:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1254 -> a
    105:105:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    106:106:int getOffset():1214:1214 -> a
    106:106:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1255 -> a
    106:106:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1328 -> a
    107:107:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    107:107:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    107:107:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1329 -> a
    108:108:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    108:108:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1329 -> a
    109:109:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1329:1329 -> a
    110:110:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    110:110:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    110:110:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1239 -> a
    110:110:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1331 -> a
    111:111:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    111:111:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1239 -> a
    111:111:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1331 -> a
    112:113:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1240:1241 -> a
    112:113:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1331 -> a
    114:114:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1331:1331 -> a
    115:115:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    116:116:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    116:116:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    116:116:int getRegister(int,com.android.tools.r8.ir.conversion.DexBuilder):1223 -> a
    117:117:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    117:117:int getRegister(int,com.android.tools.r8.ir.conversion.DexBuilder):1223 -> a
    118:118:int getRegister(int,com.android.tools.r8.ir.conversion.DexBuilder):1224:1224 -> a
    119:119:void setMaxOffset(int):1214:1214 -> a
    120:123:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1352:1355 -> a
    124:124:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    124:124:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    124:124:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1356 -> a
    125:125:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    125:125:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1356 -> a
    126:126:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1356:1356 -> a
    127:127:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> a
    127:127:com.android.tools.r8.ir.code.If getBranch():1235 -> a
    127:127:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1356 -> a
    128:128:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> a
    128:128:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1356 -> a
    129:130:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1356:1357 -> a
    1:1:int getMaxOffset():1214:1214 -> b
    2:2:com.android.tools.r8.ir.code.Instruction getIR():1214:1214 -> b
    2:2:com.android.tools.r8.ir.code.If getBranch():1235 -> b
    2:2:int[] getRegisters(com.android.tools.r8.ir.conversion.DexBuilder):1228 -> b
    3:3:com.android.tools.r8.ir.code.If getBranch():1235:1235 -> b
    3:3:int[] getRegisters(com.android.tools.r8.ir.conversion.DexBuilder):1228 -> b
    4:7:int[] getRegisters(com.android.tools.r8.ir.conversion.DexBuilder):1228:1231 -> b
    8:8:void setMinOffset(int):1214:1214 -> b
    1:1:int getOffset():1214:1214 -> c
    2:2:void setOffset(int):1214:1214 -> c
    1:1:int getSize():1347:1347 -> d
    int maxSize() -> e
    int minSize() -> f
com.android.tools.r8.ir.conversion.DexBuilder$Info -> com.android.tools.r8.ir.conversion.F:
    com.android.tools.r8.ir.code.Instruction ir -> a
    int offset -> b
    int maxOffset -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():885:885 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Instruction):894:894 -> <init>
    2:9:void <init>(com.android.tools.r8.ir.code.Instruction):889:896 -> <init>
    void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List) -> a
    int computeSize(com.android.tools.r8.ir.conversion.DexBuilder) -> a
    boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder) -> a
    1:2:void setMaxOffset(int):941:942 -> a
    3:3:com.android.tools.r8.ir.code.Instruction getIR():946:946 -> a
    1:1:void setMinOffset(int):931:931 -> b
    2:3:int getMaxOffset():936:937 -> b
    1:2:int getOffset():916:917 -> c
    3:4:void setOffset(int):921:922 -> c
    int getSize() -> d
    int maxSize() -> e
    int minSize() -> f
com.android.tools.r8.ir.conversion.DexBuilder$MoveInfo -> com.android.tools.r8.ir.conversion.G:
    boolean $assertionsDisabled -> f
    int size -> e
    1:1:void <clinit>():1361:1361 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Move):1366:1366 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.Move):1363:1363 -> <init>
    1:1:com.android.tools.r8.ir.code.Instruction getIR():1361:1361 -> a
    1:1:com.android.tools.r8.ir.code.Move getMove():1370 -> a
    1:1:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1409 -> a
    2:2:com.android.tools.r8.ir.code.Move getMove():1370:1370 -> a
    2:2:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1409 -> a
    3:46:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1410:1453 -> a
    47:54:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1431:1438 -> a
    55:63:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1417:1425 -> a
    64:64:int getOffset():1361:1361 -> a
    64:64:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1455 -> a
    65:66:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1455:1456 -> a
    67:67:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1427:1427 -> a
    68:68:com.android.tools.r8.ir.code.Instruction getIR():1361:1361 -> a
    69:69:void setMaxOffset(int):1361:1361 -> a
    70:75:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1383:1388 -> a
    76:87:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1393:1404 -> a
    1:1:com.android.tools.r8.ir.code.Instruction getIR():1361:1361 -> b
    1:1:com.android.tools.r8.ir.code.Move getMove():1370 -> b
    1:1:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1378 -> b
    2:2:com.android.tools.r8.ir.code.Move getMove():1370:1370 -> b
    2:2:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1378 -> b
    3:3:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1378:1378 -> b
    4:4:com.android.tools.r8.ir.code.Instruction getIR():1361:1361 -> b
    4:4:com.android.tools.r8.ir.code.Move getMove():1370 -> b
    4:4:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1378 -> b
    5:5:com.android.tools.r8.ir.code.Move getMove():1370:1370 -> b
    5:5:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1378 -> b
    6:6:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1378:1378 -> b
    7:7:int getMaxOffset():1361:1361 -> b
    8:8:void setMinOffset(int):1361:1361 -> b
    1:1:int getOffset():1361:1361 -> c
    2:2:void setOffset(int):1361:1361 -> c
    3:3:com.android.tools.r8.ir.code.Instruction getIR():1361:1361 -> c
    3:3:com.android.tools.r8.ir.code.Move getMove():1370 -> c
    3:3:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1374 -> c
    4:4:com.android.tools.r8.ir.code.Move getMove():1370:1370 -> c
    4:4:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1374 -> c
    5:5:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1374:1374 -> c
    6:6:com.android.tools.r8.ir.code.Instruction getIR():1361:1361 -> c
    6:6:com.android.tools.r8.ir.code.Move getMove():1370 -> c
    6:6:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1374 -> c
    7:7:com.android.tools.r8.ir.code.Move getMove():1370:1370 -> c
    7:7:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1374 -> c
    8:8:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1374:1374 -> c
    1:2:int getSize():1473:1474 -> d
    1:1:int maxSize():1467:1467 -> e
    1:1:int minSize():1461:1461 -> f
com.android.tools.r8.ir.conversion.DexBuilder$MultiFixedSizeInfo -> com.android.tools.r8.ir.conversion.H:
    int size -> f
    com.android.tools.r8.code.Instruction[] instructions -> e
    1:7:void <init>(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction[]):1001:1007 -> <init>
    1:1:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1012:1012 -> a
    2:6:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1017:1021 -> a
    7:8:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1042:1043 -> a
    1:1:int getSize():1037:1037 -> d
    1:1:int maxSize():1032:1032 -> e
    1:1:int minSize():1027:1027 -> f
com.android.tools.r8.ir.conversion.DexBuilder$SwitchPayloadInfo -> com.android.tools.r8.ir.conversion.I:
    com.android.tools.r8.ir.code.IntSwitch ir -> a
    com.android.tools.r8.code.Format31t dex -> b
    1:3:void <init>(com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.code.Format31t):1514:1516 -> <init>
com.android.tools.r8.ir.conversion.DexBuilder$TryItem -> com.android.tools.r8.ir.conversion.J:
    com.android.tools.r8.ir.code.CatchHandlers handlers -> a
    int start -> b
    int end -> c
    1:4:void <init>(com.android.tools.r8.ir.code.CatchHandlers,int,int):1497:1500 -> <init>
    1:1:int compareTo(com.android.tools.r8.ir.conversion.DexBuilder$TryItem):1505:1505 -> a
    1:1:int compareTo(java.lang.Object):1491:1491 -> compareTo
    2:2:int compareTo(com.android.tools.r8.ir.conversion.DexBuilder$TryItem):1505:1505 -> compareTo
    2:2:int compareTo(java.lang.Object):1491 -> compareTo
com.android.tools.r8.ir.conversion.DexSourceCode -> com.android.tools.r8.ir.conversion.L:
    boolean $assertionsDisabled -> m
    com.android.tools.r8.ir.code.Position currentPosition -> i
    com.android.tools.r8.graph.DexMethod originalMethod -> l
    com.android.tools.r8.ir.conversion.ArrayFilledDataPayloadResolver arrayFilledDataPayloadResolver -> e
    com.android.tools.r8.ir.code.CanonicalPositions canonicalPositions -> j
    com.android.tools.r8.graph.DexCode code -> a
    com.android.tools.r8.graph.DexCode$Try currentTryRange -> f
    com.android.tools.r8.ir.code.CatchHandlers currentCatchHandlers -> g
    java.util.Map offsetToInstructionIndex -> c
    com.android.tools.r8.code.Instruction currentDexInstruction -> h
    com.android.tools.r8.graph.DexEncodedMethod method -> b
    com.android.tools.r8.ir.conversion.SwitchPayloadResolver switchPayloadResolver -> d
    java.util.List debugEntries -> k
    1:1:void <clinit>():59:59 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):83:83 -> <init>
    2:31:void <init>(com.android.tools.r8.graph.DexCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):65:94 -> <init>
    void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean) -> a
    void doNothingWriteConsumer(java.lang.Integer,com.android.tools.r8.graph.DexType) -> a
    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,int) -> a
    boolean verifyLocalInScope(com.android.tools.r8.graph.DebugLocalInfo) -> a
    1:1:int instructionCount():105:105 -> a
    2:6:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):141:145 -> a
    7:34:void buildArgumentsWithUnusedArgumentStubs(com.android.tools.r8.ir.conversion.IRBuilder,int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):161:188 -> a
    35:46:void buildArgumentsWithUnusedArgumentStubs(com.android.tools.r8.ir.conversion.IRBuilder,int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):187:198 -> a
    47:59:void buildArgumentsWithUnusedArgumentStubs(com.android.tools.r8.ir.conversion.IRBuilder,int,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):196:208 -> a
    60:60:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):225:225 -> a
    61:61:int instructionOffset(int):337:337 -> a
    61:61:void updateCurrentCatchHandlers(int,com.android.tools.r8.graph.DexItemFactory):270 -> a
    61:61:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):225 -> a
    62:70:void updateCurrentCatchHandlers(int,com.android.tools.r8.graph.DexItemFactory):270:278 -> a
    62:70:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):225 -> a
    71:71:void updateDebugPosition(int,com.android.tools.r8.ir.conversion.IRBuilder):296:296 -> a
    71:71:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):226 -> a
    72:72:int instructionOffset(int):337:337 -> a
    72:72:void updateDebugPosition(int,com.android.tools.r8.ir.conversion.IRBuilder):299 -> a
    72:72:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):226 -> a
    73:79:void updateDebugPosition(int,com.android.tools.r8.ir.conversion.IRBuilder):300:306 -> a
    73:79:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):226 -> a
    80:81:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):227:228 -> a
    82:85:int getMoveExceptionRegister(int):238:241 -> a
    86:87:com.android.tools.r8.ir.code.Position getCanonicalPositionAppendCaller(com.android.tools.r8.graph.DexDebugEntry):313:314 -> a
    88:96:com.android.tools.r8.ir.code.Position getCanonicalPositionAppendCaller(com.android.tools.r8.graph.DexDebugEntry):313:321 -> a
    97:97:com.android.tools.r8.ir.code.Position getCanonicalPositionAppendCaller(com.android.tools.r8.graph.DexDebugEntry):316:316 -> a
    98:99:void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder):343:344 -> a
    100:100:void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder):343:343 -> a
    101:104:void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder):350:353 -> a
    105:105:void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder):350:350 -> a
    106:106:boolean isMoveResult(com.android.tools.r8.code.Instruction):376:376 -> a
    107:139:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):383:415 -> a
    140:140:java.util.Set getUniqueTryHandlerOffsets(com.android.tools.r8.graph.DexCode$Try,com.android.tools.r8.graph.DexItemFactory):490:490 -> a
    140:140:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):415 -> a
    141:146:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):415:420 -> a
    147:147:boolean isInvoke(com.android.tools.r8.code.Instruction):357:357 -> a
    147:147:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):420 -> a
    148:168:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):420:440 -> a
    169:178:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexCode$Try):462:471 -> a
    179:180:void lambda$getCurrentCatchHandlers$0(java.util.List,java.util.List,com.android.tools.r8.graph.DexType,java.lang.Integer):468:469 -> a
    181:189:void forEachTryRange(com.android.tools.r8.graph.DexCode$Try,com.android.tools.r8.graph.DexItemFactory,java.util.function.BiConsumer):476:484 -> a
    190:191:java.util.List getTryHandlerOffsets(com.android.tools.r8.graph.DexCode$Try,com.android.tools.r8.graph.DexItemFactory):494:495 -> a
    192:192:void lambda$getTryHandlerOffsets$1(java.util.List,com.android.tools.r8.graph.DexType,java.lang.Integer):495:495 -> a
    void buildPostlude(com.android.tools.r8.ir.conversion.IRBuilder) -> b
    1:8:void setUp():126:133 -> b
    9:9:int instructionOffset(int):337:337 -> b
    com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int) -> c
    1:1:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):233:233 -> c
    2:2:boolean verifyCurrentInstructionCanThrow():261:261 -> c
    1:2:void clear():326:327 -> clear
    1:4:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):248:251 -> d
    5:5:com.android.tools.r8.ir.code.Position getCurrentPosition():256:256 -> d
    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int) -> e
    1:1:boolean verifyRegister(int):100:100 -> f
    1:1:int instructionIndex(int):332:332 -> g
    1:3:com.android.tools.r8.graph.DexDebugEntry getDebugEntryAtOffset(int):284:286 -> h
    1:1:com.android.tools.r8.graph.DexCode$Try getTryForOffset(int):453:453 -> i
    2:2:boolean inTryRange(com.android.tools.r8.graph.DexCode$Try,int):448:448 -> i
    2:2:com.android.tools.r8.graph.DexCode$Try getTryForOffset(int):454 -> i
com.android.tools.r8.ir.conversion.FieldOptimizationFeedback -> com.android.tools.r8.ir.conversion.M:
    void markFieldAsPropagated(com.android.tools.r8.graph.DexEncodedField) -> a
    void markFieldBitsRead(com.android.tools.r8.graph.DexEncodedField,int) -> a
    void markFieldHasDynamicLowerBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement) -> a
    void markFieldHasDynamicUpperBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.TypeLatticeElement) -> a
    void recordFieldHasAbstractValue(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.value.AbstractValue) -> a
    void markFieldCannotBeKept(com.android.tools.r8.graph.DexEncodedField) -> b
com.android.tools.r8.ir.conversion.IRBuilder -> com.android.tools.r8.ir.conversion.N:
    com.android.tools.r8.ir.conversion.SourceCode source -> v
    java.util.Queue ssaWorklist -> f
    int currentInstructionOffset -> j
    boolean $assertionsDisabled -> J
    java.util.List argumentValues -> t
    com.android.tools.r8.ir.code.BasicBlock currentBlock -> i
    com.android.tools.r8.ir.code.Value receiverValue -> s
    boolean throwingInstructionInCurrentBlock -> w
    int nextBlockNumber -> A
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement FLOAT -> F
    com.android.tools.r8.graph.DexEncodedMethod method -> l
    java.util.Set processedSubroutineInstructions -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap offsets -> b
    boolean[] processedInstructions -> d
    java.util.LinkedList blocks -> g
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement DOUBLE -> H
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap targets -> a
    boolean hasImpreciseValues -> C
    com.android.tools.r8.ir.code.BasicBlock entryBlock -> h
    com.android.tools.r8.origin.Origin origin -> o
    java.util.Queue traceBlocksWorklist -> c
    com.android.tools.r8.ir.code.Value previousLocalValue -> x
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap uninitializedDebugLocalValues -> z
    java.util.List pendingArgumentInstructions -> u
    com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription prototypeChanges -> p
    com.android.tools.r8.ir.code.ValueNumberGenerator valueNumberGenerator -> k
    java.util.List debugLocalEnds -> y
    com.android.tools.r8.graph.DexEncodedMethod context -> m
    com.android.tools.r8.graph.AppView appView -> n
    java.util.List impreciseInstructions -> B
    com.android.tools.r8.ir.code.IRMetadata metadata -> D
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement INT -> E
    java.util.ListIterator removedArgumentsIterator -> q
    int argumentCount -> r
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement NULL -> I
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement LONG -> G
    1:7:void <clinit>():140:146 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.SourceCode,com.android.tools.r8.origin.Origin,com.android.tools.r8.ir.code.ValueNumberGenerator):436:436 -> <init>
    2:95:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.SourceCode,com.android.tools.r8.origin.Origin,com.android.tools.r8.ir.code.ValueNumberGenerator):366:459 -> <init>
    96:104:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.SourceCode,com.android.tools.r8.origin.Origin,com.android.tools.r8.ir.code.ValueNumberGenerator):454:462 -> <init>
    1:4:boolean verifyMethodSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense):466:469 -> a
    5:5:boolean verifyMethodSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense):468:468 -> a
    6:7:void addToWorklist(com.android.tools.r8.ir.code.BasicBlock,int):496:497 -> a
    8:26:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):513:531 -> a
    27:29:void markIndexProcessed(int):2373:2375 -> a
    27:29:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):536 -> a
    30:31:void ensureSubroutineProcessedInstructions():2383:2384 -> a
    30:31:void markIndexProcessed(int):2378 -> a
    30:31:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):536 -> a
    32:32:void markIndexProcessed(int):2379:2379 -> a
    32:32:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):536 -> a
    33:43:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):537:547 -> a
    44:44:void ensureNormalSuccessorBlock(int,int):2404:2404 -> a
    44:44:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):548 -> a
    45:47:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):554:556 -> a
    48:48:void setCurrentBlock(com.android.tools.r8.ir.code.BasicBlock):502:502 -> a
    48:48:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):556 -> a
    49:54:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):557:562 -> a
    55:60:void processWorklist():753:758 -> a
    55:60:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):563 -> a
    61:61:void setCurrentBlock(com.android.tools.r8.ir.code.BasicBlock):502:502 -> a
    61:61:void processWorklist():758 -> a
    61:61:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):563 -> a
    62:66:void processWorklist():759:763 -> a
    62:66:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):563 -> a
    67:91:void processMoveExceptionItem(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):804:828 -> a
    67:91:void processWorklist():763 -> a
    67:91:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):563 -> a
    92:97:void processMoveExceptionItem(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):827:832 -> a
    92:97:void processWorklist():763 -> a
    92:97:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):563 -> a
    98:105:void processWorklist():764:771 -> a
    98:105:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):563 -> a
    106:116:void processWorklist():770:780 -> a
    106:116:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):563 -> a
    117:117:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> a
    117:117:void processWorklist():780 -> a
    117:117:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):563 -> a
    118:127:void processWorklist():784:793 -> a
    118:127:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):563 -> a
    128:131:void closeCurrentBlockWithFallThrough(com.android.tools.r8.ir.code.BasicBlock):2449:2452 -> a
    128:131:void processWorklist():793 -> a
    128:131:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):563 -> a
    132:133:void processWorklist():796:797 -> a
    132:133:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):563 -> a
    134:134:void processWorklist():753:753 -> a
    134:134:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):563 -> a
    135:140:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):566:571 -> a
    141:142:boolean verifyFilledPredecessors():692:693 -> a
    141:142:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):571 -> a
    143:148:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):699:704 -> a
    143:148:boolean verifyFilledPredecessors():693 -> a
    143:148:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):571 -> a
    149:149:int com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.predecessorCount():297:297 -> a
    149:149:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):704 -> a
    149:149:boolean verifyFilledPredecessors():693 -> a
    149:149:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):571 -> a
    150:157:int nonSplitPredecessorCount(com.android.tools.r8.ir.code.BasicBlock):721:728 -> a
    150:157:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):704 -> a
    150:157:boolean verifyFilledPredecessors():693 -> a
    150:157:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):571 -> a
    158:161:boolean trivialGotoBlockPotentiallyWithMoveException(com.android.tools.r8.ir.code.BasicBlock):744:747 -> a
    158:161:int nonSplitPredecessorCount(com.android.tools.r8.ir.code.BasicBlock):728 -> a
    158:161:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):704 -> a
    158:161:boolean verifyFilledPredecessors():693 -> a
    158:161:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):571 -> a
    162:162:boolean trivialGotoBlockPotentiallyWithMoveException(com.android.tools.r8.ir.code.BasicBlock):745:745 -> a
    162:162:int nonSplitPredecessorCount(com.android.tools.r8.ir.code.BasicBlock):728 -> a
    162:162:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):704 -> a
    162:162:boolean verifyFilledPredecessors():693 -> a
    162:162:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):571 -> a
    163:170:int nonSplitPredecessorCount(com.android.tools.r8.ir.code.BasicBlock):732:739 -> a
    163:170:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):704 -> a
    163:170:boolean verifyFilledPredecessors():693 -> a
    163:170:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):571 -> a
    171:177:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):704:710 -> a
    171:177:boolean verifyFilledPredecessors():693 -> a
    171:177:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):571 -> a
    178:178:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):707:707 -> a
    178:178:boolean verifyFilledPredecessors():693 -> a
    178:178:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):571 -> a
    179:185:void insertDebugPositions():661:667 -> a
    179:185:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):574 -> a
    186:186:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.next():29:29 -> a
    186:186:void insertDebugPositions():668 -> a
    186:186:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):574 -> a
    187:199:void insertDebugPositions():669:681 -> a
    187:199:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):574 -> a
    200:200:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.previous():29:29 -> a
    200:200:void insertDebugPositions():682 -> a
    200:200:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):574 -> a
    201:201:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):29:29 -> a
    201:201:void insertDebugPositions():683 -> a
    201:201:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):574 -> a
    202:202:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.next():29:29 -> a
    202:202:void insertDebugPositions():684 -> a
    202:202:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):574 -> a
    203:204:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):577:578 -> a
    205:205:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> a
    205:205:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):578 -> a
    206:208:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):579:581 -> a
    209:209:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.previous():29:29 -> a
    209:209:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):581 -> a
    210:215:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):582:587 -> a
    216:216:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):29:29 -> a
    216:216:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):588 -> a
    217:218:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):595:596 -> a
    219:249:void joinPredecessorsWithIdenticalPhis():2537:2567 -> a
    219:249:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):601 -> a
    250:250:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> a
    250:250:void joinPredecessorsWithIdenticalPhis():2567 -> a
    250:250:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):601 -> a
    251:251:void joinPredecessorsWithIdenticalPhis():2567:2567 -> a
    251:251:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):601 -> a
    252:266:void joinPredecessorsWithIdenticalPhis():2566:2580 -> a
    252:266:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):601 -> a
    267:278:void com.android.tools.r8.ir.code.BasicBlock.removePredecessorsByIndex(java.util.List):506:517 -> a
    267:278:void joinPredecessorsWithIdenticalPhis():2584 -> a
    267:278:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):601 -> a
    279:279:void joinPredecessorsWithIdenticalPhis():2585:2585 -> a
    279:279:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):601 -> a
    280:280:void joinPredecessorsWithIdenticalPhis():2543:2543 -> a
    280:280:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):601 -> a
    281:281:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    281:281:void joinPredecessorsWithIdenticalPhis():2543 -> a
    281:281:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):601 -> a
    282:326:void joinPredecessorsWithIdenticalPhis():2543:2587 -> a
    282:326:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):601 -> a
    327:334:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):604:611 -> a
    335:335:boolean com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(com.android.tools.r8.ir.conversion.IRBuilder):1122:1122 -> a
    335:335:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):614 -> a
    336:344:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):615:623 -> a
    345:345:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    345:345:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):623 -> a
    346:346:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):623:623 -> a
    347:364:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):620:637 -> a
    365:365:boolean com.android.tools.r8.utils.InternalOptions.isStringSwitchConversionEnabled():1142:1142 -> a
    365:365:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):637 -> a
    366:366:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):638:638 -> a
    367:378:java.util.List com.android.tools.r8.ir.conversion.StringSwitchConverter.getRewritingCandidates(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):124:135 -> a
    367:378:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):107 -> a
    367:378:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):638 -> a
    379:379:boolean com.android.tools.r8.ir.conversion.StringSwitchConverter$Utils.isComparisonOfStringHashValue(com.android.tools.r8.ir.code.JumpInstruction,com.android.tools.r8.graph.DexItemFactory):793:793 -> a
    379:379:java.util.List com.android.tools.r8.ir.conversion.StringSwitchConverter.getRewritingCandidates(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):135 -> a
    379:379:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):107 -> a
    379:379:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):638 -> a
    380:388:java.util.List com.android.tools.r8.ir.conversion.StringSwitchConverter.getRewritingCandidates(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):144:152 -> a
    380:388:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):107 -> a
    380:388:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):638 -> a
    389:389:boolean com.android.tools.r8.ir.conversion.StringSwitchConverter$Utils.isComparisonOfStringHashValue(com.android.tools.r8.ir.code.JumpInstruction,com.android.tools.r8.graph.DexItemFactory):793:793 -> a
    389:389:java.util.List com.android.tools.r8.ir.conversion.StringSwitchConverter.getRewritingCandidates(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):152 -> a
    389:389:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):107 -> a
    389:389:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):638 -> a
    390:394:java.util.List com.android.tools.r8.ir.conversion.StringSwitchConverter.getRewritingCandidates(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):165:169 -> a
    390:394:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):107 -> a
    390:394:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):638 -> a
    395:395:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):110:110 -> a
    395:395:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):638 -> a
    396:396:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo$Builder com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo.builder(com.android.tools.r8.graph.DexItemFactory):268:268 -> a
    396:396:boolean com.android.tools.r8.ir.conversion.StringSwitchConverter.convertRewritingCandidateToStringSwitchInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexItemFactory):175 -> a
    396:396:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):111 -> a
    396:396:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):638 -> a
    397:399:boolean com.android.tools.r8.ir.conversion.StringSwitchConverter.convertRewritingCandidateToStringSwitchInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexItemFactory):175:177 -> a
    397:399:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):111 -> a
    397:399:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):638 -> a
    400:401:void com.android.tools.r8.ir.conversion.StringSwitchConverter.convertToStringSwitchInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):116:117 -> a
    400:401:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):638 -> a
    402:406:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):641:645 -> a
    407:407:void constrainType(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ValueTypeConstraint):650:650 -> a
    408:408:void resolveAndBuildSwitch(int,int,int):837:837 -> a
    409:409:void add(com.android.tools.r8.ir.code.Instruction):851:851 -> a
    410:410:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> a
    410:410:void add(com.android.tools.r8.ir.code.Instruction):852 -> a
    411:411:void addNonThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):884:884 -> a
    412:412:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2190:2190 -> a
    412:412:void addNonThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):886 -> a
    413:416:void addNonThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):887:890 -> a
    417:417:void addBooleanNonThisArgument(int):895:895 -> a
    418:418:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2190:2190 -> a
    418:418:void addBooleanNonThisArgument(int):897 -> a
    419:422:void addBooleanNonThisArgument(int):898:901 -> a
    423:424:void addNonThisArgument(com.android.tools.r8.ir.code.Argument):906:907 -> a
    425:425:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> a
    425:425:void addNonThisArgument(com.android.tools.r8.ir.code.Argument):909 -> a
    426:426:void addNonThisArgument(com.android.tools.r8.ir.code.Argument):910:910 -> a
    427:430:void handleConstantOrUnusedArgument(int,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo):919:922 -> a
    431:431:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2190:2190 -> a
    431:431:void handleConstantOrUnusedArgument(int,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo):924 -> a
    432:435:void handleConstantOrUnusedArgument(int,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo):925:928 -> a
    436:440:void addDebugLocalEnd(int,com.android.tools.r8.graph.DebugLocalInfo):966:970 -> a
    441:441:boolean com.android.tools.r8.ir.code.Value.isUninitializedLocal():614:614 -> a
    441:441:boolean isValidFor(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DebugLocalInfo):942 -> a
    441:441:void addDebugLocalEnd(int,com.android.tools.r8.graph.DebugLocalInfo):971 -> a
    442:442:boolean isValidFor(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DebugLocalInfo):942:942 -> a
    442:442:void addDebugLocalEnd(int,com.android.tools.r8.graph.DebugLocalInfo):971 -> a
    443:443:void addDebugLocalEnd(int,com.android.tools.r8.graph.DebugLocalInfo):972:972 -> a
    444:450:void addDebugPosition(com.android.tools.r8.ir.code.Position):977:983 -> a
    451:451:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> a
    451:451:void addDebugPosition(com.android.tools.r8.ir.code.Position):983 -> a
    452:455:void addDebugPosition(com.android.tools.r8.ir.code.Position):985:988 -> a
    456:456:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> a
    456:456:void addDebugPosition(com.android.tools.r8.ir.code.Position):988 -> a
    457:458:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1032:1033 -> a
    459:479:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):151:171 -> a
    459:479:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1034 -> a
    480:480:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):166:166 -> a
    480:480:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1034 -> a
    481:485:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):160:164 -> a
    481:485:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1034 -> a
    486:486:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):162:162 -> a
    486:486:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1034 -> a
    487:487:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):158:158 -> a
    487:487:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1034 -> a
    488:501:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):156:169 -> a
    488:501:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1034 -> a
    502:505:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1035:1038 -> a
    506:509:void addImpreciseInstruction(com.android.tools.r8.ir.code.ImpreciseMemberTypeInstruction):654:657 -> a
    506:509:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1039 -> a
    510:510:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1041:1041 -> a
    511:515:void addArrayLength(int,int):1045:1049 -> a
    516:522:void addCheckCast(int,com.android.tools.r8.graph.DexType):1064:1070 -> a
    523:526:void addConst(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,int,long):1083:1086 -> a
    527:535:void addConstMethodHandle(int,com.android.tools.r8.graph.DexMethodHandle):1119:1127 -> a
    536:540:void addConstMethodHandle(int,com.android.tools.r8.graph.DexMethodHandle):1126:1130 -> a
    541:541:void addConstMethodHandle(int,com.android.tools.r8.graph.DexMethodHandle):1120:1120 -> a
    542:550:void addConstMethodType(int,com.android.tools.r8.graph.DexProto):1134:1142 -> a
    551:555:void addConstMethodType(int,com.android.tools.r8.graph.DexProto):1141:1145 -> a
    556:556:void addConstMethodType(int,com.android.tools.r8.graph.DexProto):1135:1135 -> a
    557:558:void addConstString(int,com.android.tools.r8.graph.DexString):1155:1156 -> a
    559:559:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1149:1149 -> a
    559:559:void addConstString(int,com.android.tools.r8.graph.DexString):1157 -> a
    560:560:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    560:560:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1149 -> a
    560:560:void addConstString(int,com.android.tools.r8.graph.DexString):1157 -> a
    561:562:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1150:1151 -> a
    561:562:void addConstString(int,com.android.tools.r8.graph.DexString):1157 -> a
    563:563:void addConstString(int,com.android.tools.r8.graph.DexString):1158:1158 -> a
    564:566:void addDexItemBasedConstString(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):1163:1165 -> a
    567:567:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1149:1149 -> a
    567:567:void addDexItemBasedConstString(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):1166 -> a
    568:568:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    568:568:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1149 -> a
    568:568:void addDexItemBasedConstString(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):1166 -> a
    569:570:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1150:1151 -> a
    569:570:void addDexItemBasedConstString(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):1166 -> a
    571:572:void addDexItemBasedConstString(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo):1167:1168 -> a
    573:575:com.android.tools.r8.ir.code.Monitor addMonitor(com.android.tools.r8.ir.code.Monitor$Type,int):1195:1197 -> a
    576:577:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1206:1207 -> a
    578:578:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2190:2190 -> a
    578:578:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1209 -> a
    579:581:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1210:1212 -> a
    582:582:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> a
    582:582:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1212 -> a
    583:583:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1216:1216 -> a
    584:590:void addIf(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueTypeConstraint,int,int,int,int):1313:1319 -> a
    591:591:void addIfZero(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,int,int,int):1327:1327 -> a
    592:595:void addIfZero(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueTypeConstraint,int,int,int):1340:1343 -> a
    592:595:void addIfZero(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,int,int,int):1325 -> a
    596:599:void addIfZero(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueTypeConstraint,int,int,int):1340:1343 -> a
    600:604:void addInstanceGet(int,int,com.android.tools.r8.graph.DexField):1348:1352 -> a
    605:610:void addInstanceGet(int,int,com.android.tools.r8.graph.DexField):1350:1355 -> a
    611:611:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> a
    611:611:void addInstanceGet(int,int,com.android.tools.r8.graph.DexField):1356 -> a
    612:615:void addInstanceOf(int,int,com.android.tools.r8.graph.DexType):1360:1363 -> a
    616:616:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> a
    616:616:void addInstanceOf(int,int,com.android.tools.r8.graph.DexType):1364 -> a
    617:626:void addInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,java.util.List,boolean):1376:1385 -> a
    627:647:void addInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,java.util.List,boolean):1379:1399 -> a
    648:648:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    648:648:void addInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,java.util.List,boolean):1399 -> a
    649:659:void addInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,java.util.List,boolean):1400:1410 -> a
    660:664:void addInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,java.util.List,java.util.List,boolean):1420:1424 -> a
    665:668:void addInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,java.util.List,java.util.List,boolean):1423:1426 -> a
    669:686:void addInvokeCustomRange(com.android.tools.r8.graph.DexCallSite,int,int):1453:1470 -> a
    687:691:void addInvokeCustom(com.android.tools.r8.graph.DexCallSite,java.util.List,java.util.List):1475:1479 -> a
    692:695:void addInvokeCustom(com.android.tools.r8.graph.DexCallSite,java.util.List,java.util.List):1478:1481 -> a
    696:719:void addInvokeRegisters(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,int,int[]):1492:1515 -> a
    720:736:void addInvokeNewArray(com.android.tools.r8.graph.DexType,int,int[]):1519:1535 -> a
    737:761:void addInvokeRange(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,int,int):1556:1580 -> a
    762:776:void addInvokeRangeNewArray(com.android.tools.r8.graph.DexType,int,int):1584:1598 -> a
    777:777:boolean lambda$addMoveException$1(com.android.tools.r8.ir.code.BasicBlock):1611:1611 -> a
    778:781:void addNewArrayFilledData(int,int,long,short[]):1683:1686 -> a
    782:782:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> a
    782:782:void addNewArrayFilledData(int,int,long,short[]):1687 -> a
    783:783:void addReturn():1712:1712 -> a
    784:786:void addReturn(com.android.tools.r8.ir.code.Return):1717:1719 -> a
    784:786:void addReturn():1712 -> a
    787:790:void addStaticGet(int,com.android.tools.r8.graph.DexField):1723:1726 -> a
    791:796:void addStaticGet(int,com.android.tools.r8.graph.DexField):1724:1729 -> a
    797:797:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> a
    797:797:void addStaticGet(int,com.android.tools.r8.graph.DexField):1730 -> a
    798:841:void addSwitch(int,int[],int,int[]):1762:1805 -> a
    842:842:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray(int[]):167:167 -> a
    842:842:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray():155 -> a
    842:842:void addSwitch(int,int[],int,int[]):1810 -> a
    843:843:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray(int[]):167:167 -> a
    843:843:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray():155 -> a
    843:843:void addSwitch(int,int[],int,int[]):1811 -> a
    844:848:com.android.tools.r8.ir.code.IntSwitch createSwitch(com.android.tools.r8.ir.code.Value,int[],int,int[]):1818:1822 -> a
    844:848:void addSwitch(int,int[],int,int[]):1812 -> a
    849:849:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2422:2422 -> a
    849:849:com.android.tools.r8.ir.code.IntSwitch createSwitch(com.android.tools.r8.ir.code.Value,int[],int,int[]):1824 -> a
    849:849:void addSwitch(int,int[],int,int[]):1812 -> a
    850:873:com.android.tools.r8.ir.code.IntSwitch createSwitch(com.android.tools.r8.ir.code.Value,int[],int,int[]):1825:1848 -> a
    850:873:void addSwitch(int,int[],int,int[]):1812 -> a
    874:874:void addSwitch(int,int[],int,int[]):1813:1813 -> a
    875:876:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2018:2019 -> a
    877:896:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2034:2053 -> a
    877:896:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2022 -> a
    897:897:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2099:2099 -> a
    897:897:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2058 -> a
    897:897:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2022 -> a
    898:898:boolean com.android.tools.r8.ir.code.ValueTypeConstraint.isPrecise():36:36 -> a
    898:898:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2099 -> a
    898:898:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2058 -> a
    898:898:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2022 -> a
    899:899:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2099:2099 -> a
    899:899:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2058 -> a
    899:899:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2022 -> a
    900:900:boolean com.android.tools.r8.ir.code.ValueTypeConstraint.isPrecise():36:36 -> a
    900:900:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2099 -> a
    900:900:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2058 -> a
    900:900:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2022 -> a
    901:901:boolean com.android.tools.r8.ir.code.ValueTypeConstraint.isObject():24:24 -> a
    901:901:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2101 -> a
    901:901:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2058 -> a
    901:901:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2022 -> a
    902:902:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2102:2102 -> a
    902:902:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2058 -> a
    902:902:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2022 -> a
    903:913:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueTypeConstraint.toPrimitiveTypeLattice():161:171 -> a
    903:913:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2103 -> a
    903:913:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2058 -> a
    903:913:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2022 -> a
    914:914:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueTypeConstraint.toPrimitiveTypeLattice():167:167 -> a
    914:914:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2103 -> a
    914:914:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2058 -> a
    914:914:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2022 -> a
    915:915:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueTypeConstraint.toPrimitiveTypeLattice():165:165 -> a
    915:915:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2103 -> a
    915:915:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2058 -> a
    915:915:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2022 -> a
    916:916:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueTypeConstraint.toPrimitiveTypeLattice():163:163 -> a
    916:916:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2103 -> a
    916:916:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2058 -> a
    916:916:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2022 -> a
    917:935:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2104:2122 -> a
    917:935:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2058 -> a
    917:935:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2022 -> a
    936:936:boolean com.android.tools.r8.ir.code.ValueTypeConstraint.isObject():24:24 -> a
    936:936:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2101 -> a
    936:936:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2058 -> a
    936:936:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2022 -> a
    937:939:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,com.android.tools.r8.ir.code.BasicBlock):2090:2092 -> a
    937:939:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2060 -> a
    937:939:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2022 -> a
    940:964:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2061:2085 -> a
    940:964:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):2022 -> a
    965:965:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> a
    965:965:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):993 -> a
    966:966:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> a
    966:966:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):994 -> a
    967:967:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):995:995 -> a
    968:968:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> a
    968:968:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):995 -> a
    969:970:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):996:997 -> a
    971:971:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> a
    971:971:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):998 -> a
    972:972:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> a
    972:972:void addCmp(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Cmp$Bias,int,int,int):1074 -> a
    973:973:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> a
    973:973:void addCmp(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Cmp$Bias,int,int,int):1075 -> a
    974:977:void addCmp(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Cmp$Bias,int,int,int):1076:1079 -> a
    978:978:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> a
    978:978:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):1974 -> a
    979:979:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):1975:1975 -> a
    980:980:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> a
    980:980:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):1975 -> a
    981:982:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):1976:1977 -> a
    983:983:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> a
    983:983:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):1978 -> a
    984:984:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> a
    984:984:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1650 -> a
    985:985:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1651:1651 -> a
    986:986:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> a
    986:986:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1651 -> a
    987:988:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1652:1653 -> a
    989:989:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> a
    989:989:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1654 -> a
    990:993:com.android.tools.r8.ir.code.Value readIntLiteral(long):2147:2150 -> a
    994:996:com.android.tools.r8.ir.code.Value writeRegister(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo,com.android.tools.r8.graph.DebugLocalInfo):2157:2159 -> a
    997:997:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):2186:2186 -> a
    997:997:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):1984 -> a
    998:1002:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):1985:1989 -> a
    1003:1003:boolean com.android.tools.r8.ir.code.Value.isUninitializedLocal():614:614 -> a
    1003:1003:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):1989 -> a
    1004:1014:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):1990:2000 -> a
    1015:1019:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):1998:2002 -> a
    1020:1020:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):2186:2186 -> a
    1020:1020:com.android.tools.r8.ir.code.Value writeRegister(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2164 -> a
    1021:1021:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2190:2190 -> a
    1021:1021:com.android.tools.r8.ir.code.Value writeRegister(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2165 -> a
    1022:1023:com.android.tools.r8.ir.code.Value writeRegister(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2177:2178 -> a
    1024:1024:void addInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Position):2260:2260 -> a
    1025:1027:boolean verifyOutValueType(com.android.tools.r8.ir.code.Instruction):2292:2294 -> a
    1025:1027:void addInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Position):2260 -> a
    1028:1034:boolean verifyOutValueType(com.android.tools.r8.ir.code.Instruction):2292:2298 -> a
    1028:1034:void addInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Position):2260 -> a
    1035:1035:boolean verifyOutValueType(com.android.tools.r8.ir.code.Instruction):2295:2295 -> a
    1035:1035:void addInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Position):2260 -> a
    1036:1061:void addInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Position):2261:2286 -> a
    1062:1066:void lambda$addInstruction$3(java.util.List,java.util.Set,com.android.tools.r8.graph.DexType,java.lang.Integer):2275:2279 -> a
    1067:1073:void lambda$addInstruction$3(java.util.List,java.util.Set,com.android.tools.r8.graph.DexType,java.lang.Integer):2277:2283 -> a
    1074:1074:boolean isOffsetProcessed(int):2361:2361 -> a
    1074:1074:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlock(int):2354 -> a
    1074:1074:void ensureSuccessorBlock(int,int,boolean):2390 -> a
    1075:1077:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlock(int):2355:2357 -> a
    1075:1077:void ensureSuccessorBlock(int,int,boolean):2390 -> a
    1078:1081:int getBlockStartOffset(int):2345:2348 -> a
    1078:1081:void ensureSuccessorBlock(int,int,boolean):2391 -> a
    1082:1082:void ensureSuccessorBlock(int,int,boolean):2392:2392 -> a
    1083:1083:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addNormalSuccessor(int):280:280 -> a
    1083:1083:void ensureSuccessorBlock(int,int,boolean):2394 -> a
    1084:1084:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addNormalPredecessor(int):276:276 -> a
    1084:1084:void ensureSuccessorBlock(int,int,boolean):2395 -> a
    1085:1085:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addExceptionalSuccessor(int):293:293 -> a
    1085:1085:void ensureSuccessorBlock(int,int,boolean):2397 -> a
    1086:1086:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addExceptionalPredecessor(int):289:289 -> a
    1086:1086:void ensureSuccessorBlock(int,int,boolean):2398 -> a
    1087:1087:void ensureSuccessorBlock(int,int,boolean):2400:2400 -> a
    1088:1088:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2422:2422 -> a
    1088:1088:void addNonTrivialIf(com.android.tools.r8.ir.code.If,int,int):1284 -> a
    1089:1089:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2422:2422 -> a
    1089:1089:void addNonTrivialIf(com.android.tools.r8.ir.code.If,int,int):1285 -> a
    1090:1095:void addNonTrivialIf(com.android.tools.r8.ir.code.If,int,int):1286:1291 -> a
    1096:1099:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2439:2442 -> a
    1100:1100:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2441:2441 -> a
    1101:1103:void generateSplitEdgeBlocks():2456:2458 -> a
    1101:1103:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2443 -> a
    1104:1104:int getOffset(com.android.tools.r8.ir.code.BasicBlock):2426:2426 -> a
    1104:1104:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo getBlockInfo(com.android.tools.r8.ir.code.BasicBlock):2418 -> a
    1104:1104:void generateSplitEdgeBlocks():2458 -> a
    1104:1104:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2443 -> a
    1105:1105:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo getBlockInfo(int):2414:2414 -> a
    1105:1105:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo getBlockInfo(com.android.tools.r8.ir.code.BasicBlock):2418 -> a
    1105:1105:void generateSplitEdgeBlocks():2458 -> a
    1105:1105:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2443 -> a
    1106:1106:void generateSplitEdgeBlocks():2459:2459 -> a
    1106:1106:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2443 -> a
    1107:1108:boolean com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.hasMoreThanASingleNormalExit():308:309 -> a
    1107:1108:void generateSplitEdgeBlocks():2460 -> a
    1107:1108:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2443 -> a
    1109:1109:void generateSplitEdgeBlocks():2463:2463 -> a
    1109:1109:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2443 -> a
    1110:1110:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo getBlockInfo(int):2414:2414 -> a
    1110:1110:void generateSplitEdgeBlocks():2464 -> a
    1110:1110:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2443 -> a
    1111:1111:int com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.predecessorCount():297:297 -> a
    1111:1111:void generateSplitEdgeBlocks():2465 -> a
    1111:1111:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2443 -> a
    1112:1122:void generateSplitEdgeBlocks():2468:2478 -> a
    1112:1122:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2443 -> a
    1123:1131:void generateSplitEdgeBlocks():2475:2483 -> a
    1123:1131:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2443 -> a
    1132:1137:com.android.tools.r8.ir.code.BasicBlock createSplitEdgeBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):2499:2504 -> a
    1132:1137:void generateSplitEdgeBlocks():2483 -> a
    1132:1137:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2443 -> a
    1138:1148:void generateSplitEdgeBlocks():2484:2494 -> a
    1138:1148:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2443 -> a
    1149:1151:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.allSuccessors():301:303 -> a
    1149:1151:void generateSplitEdgeBlocks():2494 -> a
    1149:1151:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2443 -> a
    1152:1152:void generateSplitEdgeBlocks():2494:2494 -> a
    1152:1152:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2443 -> a
    1153:1153:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> a
    1153:1153:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2444 -> a
    1154:1154:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2445:2445 -> a
    1155:1155:boolean isIntegerType(com.android.tools.r8.ir.code.NumericType):2593:2593 -> a
    1:20:com.android.tools.r8.ir.code.ValueTypeConstraint com.android.tools.r8.ir.code.ValueTypeConstraint.fromMemberType(com.android.tools.r8.ir.code.MemberType):63:82 -> b
    1:20:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1053 -> b
    21:21:com.android.tools.r8.ir.code.ValueTypeConstraint com.android.tools.r8.ir.code.ValueTypeConstraint.fromMemberType(com.android.tools.r8.ir.code.MemberType):78:78 -> b
    21:21:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1053 -> b
    22:26:com.android.tools.r8.ir.code.ValueTypeConstraint com.android.tools.r8.ir.code.ValueTypeConstraint.fromMemberType(com.android.tools.r8.ir.code.MemberType):72:76 -> b
    22:26:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1053 -> b
    27:27:com.android.tools.r8.ir.code.ValueTypeConstraint com.android.tools.r8.ir.code.ValueTypeConstraint.fromMemberType(com.android.tools.r8.ir.code.MemberType):74:74 -> b
    27:27:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1053 -> b
    28:28:com.android.tools.r8.ir.code.ValueTypeConstraint com.android.tools.r8.ir.code.ValueTypeConstraint.fromMemberType(com.android.tools.r8.ir.code.MemberType):70:70 -> b
    28:28:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1053 -> b
    29:41:com.android.tools.r8.ir.code.ValueTypeConstraint com.android.tools.r8.ir.code.ValueTypeConstraint.fromMemberType(com.android.tools.r8.ir.code.MemberType):68:80 -> b
    29:41:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1053 -> b
    42:46:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1053:1057 -> b
    47:50:void addImpreciseInstruction(com.android.tools.r8.ir.code.ImpreciseMemberTypeInstruction):654:657 -> b
    47:50:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1058 -> b
    51:51:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1060:1060 -> b
    52:52:void addConstantOrUnusedArgument(int):914:914 -> b
    53:66:void addDebugLocalStart(int,com.android.tools.r8.graph.DebugLocalInfo):946:959 -> b
    67:69:void addDebugLocalStart(int,com.android.tools.r8.graph.DebugLocalInfo):958:960 -> b
    70:70:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> b
    70:70:void addDebugLocalStart(int,com.android.tools.r8.graph.DebugLocalInfo):961 -> b
    71:71:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1002:1002 -> b
    72:72:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> b
    72:72:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1003 -> b
    73:74:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1004:1005 -> b
    75:75:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> b
    75:75:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1005 -> b
    76:77:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1006:1007 -> b
    78:78:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> b
    78:78:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1008 -> b
    79:84:void addConstClass(int,com.android.tools.r8.graph.DexType):1110:1115 -> b
    85:85:void addTrivialIf(int,int):1270:1270 -> b
    86:86:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2422:2422 -> b
    86:86:void addTrivialIf(int,int):1274 -> b
    87:90:void addTrivialIf(int,int):1277:1280 -> b
    91:94:void addInstancePut(int,int,com.android.tools.r8.graph.DexField):1368:1371 -> b
    95:95:void addMultiNewArray(com.android.tools.r8.graph.DexType,int,int[]):1539:1539 -> b
    96:96:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> b
    96:96:void addMultiNewArray(com.android.tools.r8.graph.DexType,int,int[]):1539 -> b
    97:103:void addMultiNewArray(com.android.tools.r8.graph.DexType,int,int[]):1539:1545 -> b
    104:110:void addNewArrayEmpty(int,int,com.android.tools.r8.graph.DexType):1672:1678 -> b
    111:111:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> b
    111:111:void addNewArrayEmpty(int,int,com.android.tools.r8.graph.DexType):1679 -> b
    112:115:void addStaticPut(int,com.android.tools.r8.graph.DexField):1734:1737 -> b
    116:116:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> b
    116:116:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1658 -> b
    117:117:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1659:1659 -> b
    118:118:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> b
    118:118:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1659 -> b
    119:122:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1661:1664 -> b
    123:126:com.android.tools.r8.ir.code.Value readLiteral(com.android.tools.r8.ir.code.ValueTypeConstraint,long):2131:2134 -> b
    123:126:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1664 -> b
    127:130:com.android.tools.r8.ir.code.Value readLongLiteral(long):2140:2143 -> b
    127:130:com.android.tools.r8.ir.code.Value readLiteral(com.android.tools.r8.ir.code.ValueTypeConstraint,long):2135 -> b
    127:130:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1664 -> b
    131:133:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1665:1667 -> b
    134:134:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> b
    134:134:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1668 -> b
    135:135:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> b
    136:137:void closeCurrentBlockGuaranteedNotToNeedEdgeSplitting():2430:2431 -> b
    138:138:void setCurrentBlock(com.android.tools.r8.ir.code.BasicBlock):502:502 -> b
    138:138:void closeCurrentBlockGuaranteedNotToNeedEdgeSplitting():2432 -> b
    139:141:void closeCurrentBlockGuaranteedNotToNeedEdgeSplitting():2433:2435 -> b
    142:142:boolean isNonLongIntegerType(com.android.tools.r8.ir.code.NumericType):2597:2597 -> b
    1:3:void flushArgumentInstructions():933:935 -> c
    4:4:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1012:1012 -> c
    5:5:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> c
    5:5:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1013 -> c
    6:6:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> c
    6:6:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1014 -> c
    7:7:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1015:1015 -> c
    8:8:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> c
    8:8:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1015 -> c
    9:10:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1016:1017 -> c
    11:11:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> c
    11:11:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):1018 -> c
    12:12:void checkInvokeArgumentRegisters(int,int):1603:1603 -> c
    13:13:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> c
    13:13:void checkInvokeArgumentRegisters(int,int):1603 -> c
    14:14:void checkInvokeArgumentRegisters(int,int):1603:1603 -> c
    15:18:void addNewInstance(int,com.android.tools.r8.graph.DexType):1692:1695 -> c
    19:19:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> c
    19:19:void addNewInstance(int,com.android.tools.r8.graph.DexType):1696 -> c
    20:22:com.android.tools.r8.ir.code.Value readRegisterForDebugLocal(int,com.android.tools.r8.graph.DebugLocalInfo):2007:2009 -> c
    23:40:void attachLocalValues(com.android.tools.r8.ir.code.Instruction):2303:2320 -> c
    41:41:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2422:2422 -> c
    41:41:void addGoto(int):1262 -> c
    42:45:void addGoto(int):1263:1266 -> c
    1:2:java.util.List getArgumentValues():486:487 -> d
    3:3:boolean lambda$build$0(com.android.tools.r8.ir.code.Instruction):580:580 -> d
    4:4:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1022:1022 -> d
    5:5:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> d
    5:5:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1023 -> d
    6:7:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1024:1025 -> d
    8:8:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> d
    8:8:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1025 -> d
    9:10:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1026:1027 -> d
    11:11:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> d
    11:11:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1028 -> d
    12:17:void addMoveException(int):1610:1615 -> d
    18:23:boolean verifyValueIsMoveException(com.android.tools.r8.ir.code.Value):1619:1624 -> d
    18:23:void addMoveException(int):1615 -> d
    24:24:void ensureExceptionalSuccessorBlock(int,int):2408:2408 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getCFG():482:482 -> e
    2:2:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1172:1172 -> e
    3:3:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> e
    3:3:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1173 -> e
    4:4:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> e
    4:4:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1174 -> e
    5:5:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1176:1176 -> e
    6:6:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> e
    6:6:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1175 -> e
    7:9:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1177:1179 -> e
    10:18:void addMoveResult(int):1630:1638 -> e
    19:28:void addMoveResult(int):1637:1646 -> e
    29:29:void ensureNormalSuccessorBlock(int,int):2404:2404 -> e
    1:1:com.android.tools.r8.graph.DexEncodedMethod getMethod():474:474 -> f
    2:2:void resolveAndBuildNewArrayFilledData(int,int):842:842 -> f
    3:3:void addNullConst(int):1106:1106 -> f
    4:5:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1183:1184 -> f
    6:6:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> f
    6:6:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1185 -> f
    7:9:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1186:1188 -> f
    10:10:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> f
    10:10:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1187 -> f
    11:13:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1189:1191 -> f
    1:1:com.android.tools.r8.ir.code.Value getReceiverValue():491:491 -> g
    2:9:void addReturn(int):1700:1707 -> g
    10:12:void addReturn(com.android.tools.r8.ir.code.Return):1717:1719 -> g
    10:12:void addReturn(int):1707 -> g
    13:13:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> g
    13:13:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1220 -> g
    14:14:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> g
    14:14:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1221 -> g
    15:15:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1222:1222 -> g
    16:16:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> g
    16:16:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1222 -> g
    17:18:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1223:1224 -> g
    19:19:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> g
    19:19:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1225 -> g
    1:6:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo getRemovedArgumentInfo():856:861 -> h
    7:10:void addThisArgument(int):866:869 -> h
    11:12:void addThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):874:875 -> h
    11:12:void addThisArgument(int):870 -> h
    13:13:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2190:2190 -> h
    13:13:void addThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):876 -> h
    13:13:void addThisArgument(int):870 -> h
    14:15:void addThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):877:878 -> h
    14:15:void addThisArgument(int):870 -> h
    16:16:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> h
    16:16:void addThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):878 -> h
    16:16:void addThisArgument(int):870 -> h
    17:18:void addThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):879:880 -> h
    17:18:void addThisArgument(int):870 -> h
    19:19:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1229:1229 -> h
    20:20:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> h
    20:20:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1230 -> h
    21:22:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1231:1232 -> h
    23:23:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> h
    23:23:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1232 -> h
    24:25:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1233:1234 -> h
    26:26:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> h
    26:26:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1235 -> h
    1:1:boolean isDebugMode():478:478 -> i
    2:6:void addThrow(int):1852:1856 -> i
    7:7:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> i
    7:7:void addThrow(int):1856 -> i
    8:8:void addThrow(int):1857:1857 -> i
    9:9:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1861:1861 -> i
    10:10:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> i
    10:10:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1862 -> i
    11:11:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> i
    11:11:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1863 -> i
    12:12:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1864:1864 -> i
    13:13:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> i
    13:13:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1864 -> i
    14:15:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1865:1866 -> i
    16:16:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> i
    16:16:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1867 -> i
    1:1:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1871:1871 -> j
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> j
    2:2:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1872 -> j
    3:4:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1873:1874 -> j
    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> j
    5:5:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1874 -> j
    6:7:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1875:1876 -> j
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> j
    8:8:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1877 -> j
    9:10:void checkRegister(int):2197:2198 -> j
    11:11:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> j
    11:11:void checkRegister(int):2198 -> j
    12:12:void checkRegister(int):2198:2198 -> j
    13:13:void checkRegister(int):2195:2195 -> j
    1:1:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1239:1239 -> k
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> k
    2:2:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1240 -> k
    3:3:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> k
    3:3:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1241 -> k
    4:4:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1243:1243 -> k
    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> k
    5:5:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1242 -> k
    6:7:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1244:1245 -> k
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> k
    8:8:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1246 -> k
    9:10:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2327:2328 -> k
    11:11:boolean isOffsetProcessed(int):2361:2361 -> k
    11:11:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2331 -> k
    12:15:int getBlockStartOffset(int):2345:2348 -> k
    12:15:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2332 -> k
    16:17:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2333:2334 -> k
    18:19:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):314:315 -> k
    18:19:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2334 -> k
    20:21:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet.<init>(java.util.Collection):87:88 -> k
    20:21:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):315 -> k
    20:21:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2334 -> k
    22:27:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):315:320 -> k
    22:27:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2334 -> k
    28:29:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.replaceNormalPredecessor(int,int):284:285 -> k
    28:29:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):321 -> k
    28:29:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2334 -> k
    30:31:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):323:324 -> k
    30:31:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2334 -> k
    32:33:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet.<init>(java.util.Collection):87:88 -> k
    32:33:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):324 -> k
    32:33:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2334 -> k
    34:38:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):324:328 -> k
    34:38:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2334 -> k
    39:39:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addExceptionalPredecessor(int):289:289 -> k
    39:39:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):329 -> k
    39:39:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2334 -> k
    40:40:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):331:331 -> k
    40:40:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2334 -> k
    41:42:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):76:77 -> k
    41:42:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):331 -> k
    41:42:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2334 -> k
    43:43:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):331:331 -> k
    43:43:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2334 -> k
    44:44:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):314:314 -> k
    44:44:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2334 -> k
    45:48:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2336:2339 -> k
    1:2:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1250:1251 -> l
    3:3:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> l
    3:3:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1252 -> l
    4:6:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1253:1255 -> l
    7:7:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> l
    7:7:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1254 -> l
    8:9:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1256:1257 -> l
    10:10:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> l
    10:10:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1258 -> l
    11:11:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2422:2422 -> l
    1:1:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1750:1750 -> m
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> m
    2:2:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1751 -> m
    3:4:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1752:1753 -> m
    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> m
    5:5:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1753 -> m
    6:7:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1756:1757 -> m
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> m
    8:8:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1758 -> m
    9:10:boolean isIndexProcessed(int):2365:2366 -> m
    11:12:void ensureSubroutineProcessedInstructions():2383:2384 -> m
    11:12:boolean isIndexProcessed(int):2368 -> m
    13:13:boolean isIndexProcessed(int):2369:2369 -> m
    1:1:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1881:1881 -> n
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> n
    2:2:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1882 -> n
    3:4:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1883:1884 -> n
    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> n
    5:5:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1884 -> n
    6:7:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1885:1886 -> n
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> n
    8:8:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1887 -> n
    1:1:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1891:1891 -> o
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> o
    2:2:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1892 -> o
    3:4:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1893:1894 -> o
    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> o
    5:5:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1894 -> o
    6:7:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1895:1896 -> o
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> o
    8:8:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1897 -> o
    1:1:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1901:1901 -> p
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> p
    2:2:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1902 -> p
    3:4:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1903:1904 -> p
    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> p
    5:5:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1904 -> p
    6:7:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1905:1906 -> p
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> p
    8:8:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1907 -> p
    1:1:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1911:1911 -> q
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> q
    2:2:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1912 -> q
    3:4:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1913:1914 -> q
    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> q
    5:5:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1914 -> q
    6:7:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1915:1916 -> q
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> q
    8:8:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1917 -> q
    1:1:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> r
    1:1:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1741 -> r
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> r
    2:2:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1742 -> r
    3:3:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1743:1743 -> r
    4:4:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> r
    4:4:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1743 -> r
    5:6:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1744:1745 -> r
    7:7:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> r
    7:7:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1746 -> r
    1:1:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1921:1921 -> s
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> s
    2:2:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1922 -> s
    3:4:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1923:1924 -> s
    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> s
    5:5:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1924 -> s
    6:7:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1925:1926 -> s
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> s
    8:8:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1927 -> s
    1:1:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1931:1931 -> t
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> t
    2:2:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1932 -> t
    3:4:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1933:1934 -> t
    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> t
    5:5:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1934 -> t
    6:7:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1935:1936 -> t
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> t
    8:8:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1937 -> t
    1:7:java.lang.String toString():2606:2612 -> toString
    1:1:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1941:1941 -> u
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> u
    2:2:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1942 -> u
    3:3:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> u
    3:3:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1943 -> u
    4:4:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1944:1944 -> u
    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> u
    5:5:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1944 -> u
    6:13:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1946:1953 -> u
    14:14:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> u
    14:14:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1954 -> u
    1:1:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1958:1958 -> v
    2:2:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2127:2127 -> v
    2:2:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1959 -> v
    3:4:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1961:1962 -> v
    5:5:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> v
    5:5:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1962 -> v
    6:9:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1963:1966 -> v
    10:10:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2182:2182 -> v
    10:10:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1966 -> v
    11:13:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1967:1969 -> v
    14:14:void addInstruction(com.android.tools.r8.ir.code.Instruction):2256:2256 -> v
    14:14:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1970 -> v
com.android.tools.r8.ir.conversion.IRBuilder$1 -> com.android.tools.r8.ir.conversion.N$a:
com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo -> com.android.tools.r8.ir.conversion.N$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet exceptionalPredecessors -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet exceptionalSuccessors -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet normalPredecessors -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet normalSuccessors -> c
    com.android.tools.r8.ir.code.BasicBlock block -> a
    1:6:void <init>():268:273 -> <init>
    1:25:java.lang.String toString():337:361 -> toString
com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem -> com.android.tools.r8.ir.conversion.N$c:
    com.android.tools.r8.graph.DexType guard -> d
    int targetOffset -> f
    int sourceOffset -> e
    1:1:void <init>(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType,int,int,com.android.tools.r8.ir.conversion.IRBuilder$1):193:193 -> <init>
    2:5:void <init>(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType,int,int):200:203 -> <init>
    1:1:int access$600(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):193:193 -> a
    1:1:com.android.tools.r8.graph.DexType access$700(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):193:193 -> b
    1:1:int access$800(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):193:193 -> c
com.android.tools.r8.ir.conversion.IRBuilder$SplitBlockWorklistItem -> com.android.tools.r8.ir.conversion.N$d:
    int sourceOffset -> d
    int targetOffset -> e
    com.android.tools.r8.ir.code.Position position -> f
    1:4:void <init>(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,int,int):218:221 -> <init>
    1:1:int access$200(com.android.tools.r8.ir.conversion.IRBuilder$SplitBlockWorklistItem):207:207 -> a
    1:1:int access$300(com.android.tools.r8.ir.conversion.IRBuilder$SplitBlockWorklistItem):207:207 -> b
    1:1:com.android.tools.r8.ir.code.Position access$500(com.android.tools.r8.ir.conversion.IRBuilder$SplitBlockWorklistItem):207:207 -> c
com.android.tools.r8.ir.conversion.IRBuilder$ValueList -> com.android.tools.r8.ir.conversion.N$e:
    java.util.List values -> a
    1:3:void <init>():230:232 -> <init>
    1:3:com.android.tools.r8.ir.conversion.IRBuilder$ValueList fromPhis(java.util.List,int):238:240 -> a
    1:9:boolean equals(java.lang.Object):252:260 -> equals
    1:1:int hashCode():247:247 -> hashCode
com.android.tools.r8.ir.conversion.IRBuilder$WorklistItem -> com.android.tools.r8.ir.conversion.N$f:
    int firstInstructionIndex -> b
    boolean $assertionsDisabled -> c
    com.android.tools.r8.ir.code.BasicBlock block -> a
    1:1:void <clinit>():181:181 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.BasicBlock,int,com.android.tools.r8.ir.conversion.IRBuilder$1):181:181 -> <init>
    2:5:void <init>(com.android.tools.r8.ir.code.BasicBlock,int):186:189 -> <init>
    1:1:com.android.tools.r8.ir.code.BasicBlock access$100(com.android.tools.r8.ir.conversion.IRBuilder$WorklistItem):181:181 -> a
    1:1:int access$400(com.android.tools.r8.ir.conversion.IRBuilder$WorklistItem):181:181 -> b
com.android.tools.r8.ir.conversion.IRConverter -> com.android.tools.r8.ir.conversion.O:
    com.android.tools.r8.ir.desugar.CovariantReturnTypeAnnotationTransformer covariantReturnTypeAnnotationTransformer -> C
    java.util.List onWaveDoneActions -> Q
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.analysis.TypeChecker typeChecker -> F
    com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization classInitializerDefaultsOptimization -> d
    com.android.tools.r8.naming.IdentifierNameStringMarker identifierNameStringMarker -> A
    com.android.tools.r8.ir.optimize.MemberValuePropagation memberValuePropagation -> x
    com.android.tools.r8.ir.optimize.DynamicTypeOptimization dynamicTypeOptimization -> J
    com.android.tools.r8.ir.optimize.ServiceLoaderRewriter serviceLoaderRewriter -> H
    java.util.Collection assumers -> I
    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter interfaceMethodRewriter -> n
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner classInliner -> r
    com.android.tools.r8.shaking.LibraryMethodOverrideAnalysis libraryMethodOverrideAnalysis -> g
    com.android.tools.r8.ir.desugar.LambdaRewriter lambdaRewriter -> l
    boolean seenNeverMergePrefix -> T
    com.android.tools.r8.ir.optimize.lambda.LambdaMerger lambdaMerger -> q
    com.android.tools.r8.ir.optimize.Devirtualizer devirtualizer -> B
    com.android.tools.r8.ir.desugar.TwrCloseResourceRewriter twrCloseResourceRewriter -> o
    com.android.tools.r8.ir.optimize.AssertionsRewriter assertionsRewriter -> K
    com.android.tools.r8.ir.optimize.info.OptimizationFeedback simpleOptimizationFeedback -> O
    com.android.tools.r8.utils.Timing timing -> b
    com.android.tools.r8.ir.conversion.LensCodeRewriter lensCodeRewriter -> y
    com.android.tools.r8.ir.optimize.string.StringOptimizer stringOptimizer -> i
    com.android.tools.r8.graph.DexString highestSortingString -> P
    java.util.List neverMergePrefixes -> R
    com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization uninstantiatedTypeOptimization -> E
    com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed delayedOptimizationFeedback -> N
    boolean $assertionsDisabled -> U
    com.android.tools.r8.utils.CfgPrinter printer -> u
    com.android.tools.r8.ir.optimize.ConstantCanonicalizer constantCanonicalizer -> w
    com.android.tools.r8.ir.optimize.Outliner outliner -> c
    com.android.tools.r8.ir.desugar.StringConcatRewriter stringConcatRewriter -> h
    boolean seenNotNeverMergePrefix -> S
    com.android.tools.r8.ir.optimize.Inliner inliner -> z
    com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer stringBuilderOptimizer -> j
    com.android.tools.r8.ir.optimize.CodeRewriter codeRewriter -> v
    com.android.tools.r8.ir.optimize.library.LibraryMethodOptimizer libraryMethodOptimizer -> f
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer classStaticizer -> s
    com.android.tools.r8.ir.desugar.BackportedMethodRewriter backportedMethodRewriter -> p
    com.android.tools.r8.ir.optimize.DeadCodeRemover deadCodeRemover -> L
    com.android.tools.r8.ir.optimize.IdempotentFunctionCallCanonicalizer idempotentFunctionCallCanonicalizer -> k
    com.android.tools.r8.utils.InternalOptions options -> t
    com.android.tools.r8.ir.conversion.StringSwitchRemover stringSwitchRemover -> D
    com.android.tools.r8.ir.analysis.fieldaccess.FieldBitAccessAnalysis fieldBitAccessAnalysis -> e
    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector methodOptimizationInfoCollector -> M
    com.android.tools.r8.ir.desugar.D8NestBasedAccessDesugaring d8NestBasedAccessDesugaring -> m
    com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter desugaredLibraryAPIConverter -> G
    1:1:void <clinit>():119:119 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter,com.android.tools.r8.shaking.MainDexClasses):186:186 -> <init>
    2:187:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter,com.android.tools.r8.shaking.MainDexClasses):161:346 -> <init>
    188:188:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Timing):359:359 -> <init>
    boolean lambda$materializeInstructionBeforeLongOperationsWorkaround$17(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> a
    1:1:java.lang.String lambda$new$0(java.lang.String):207:207 -> a
    2:6:void synthesizeLambdaClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):401:405 -> a
    7:14:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):455:462 -> a
    15:16:void desugarNestBasedAccess(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):394:395 -> a
    15:16:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):464 -> a
    17:18:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):465:466 -> a
    19:20:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):428:429 -> a
    19:20:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):466 -> a
    21:22:void synthesizeTwrCloseResourceUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):437:438 -> a
    21:22:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):467 -> a
    23:23:void synthesizeJava8UtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):444:444 -> a
    23:23:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):468 -> a
    24:25:void processCovariantReturnTypeAnnotations(com.android.tools.r8.graph.DexApplication$Builder):448:449 -> a
    24:25:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):469 -> a
    26:27:void generateDesugaredLibraryAPIWrappers(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):909:910 -> a
    26:27:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):470 -> a
    28:31:com.android.tools.r8.graph.DexApplication convert(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):472:475 -> a
    32:38:void handleSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):479:485 -> a
    39:40:void clearSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):510:511 -> a
    39:40:void handleSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):486 -> a
    41:48:com.android.tools.r8.graph.DexAnnotationSet com.android.tools.r8.graph.DexAnnotationSet.getWithout(com.android.tools.r8.graph.DexType):106:113 -> a
    41:48:void clearSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):512 -> a
    41:48:void handleSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):486 -> a
    49:49:void clearSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):512:512 -> a
    49:49:void handleSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):486 -> a
    50:52:void lambda$convertMethods$3(boolean,com.android.tools.r8.graph.DexEncodedMethod):558:560 -> a
    53:81:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):566:594 -> a
    82:82:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    82:82:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):594 -> a
    83:83:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    83:83:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    83:83:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):594 -> a
    84:88:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):594:598 -> a
    89:89:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    89:89:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):598 -> a
    90:98:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):598:606 -> a
    99:102:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):601:604 -> a
    103:110:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):601:608 -> a
    111:111:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    111:111:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):608 -> a
    112:116:void updateHighestSortingStrings(com.android.tools.r8.graph.DexEncodedMethod):1528:1532 -> a
    112:116:void convertMethod(com.android.tools.r8.graph.DexEncodedMethod):609 -> a
    117:125:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):625:633 -> a
    126:127:void collectLambdaMergingCandidates(com.android.tools.r8.graph.DexApplication):889:890 -> a
    126:127:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):634 -> a
    128:129:void collectStaticizerCandidates(com.android.tools.r8.graph.DexApplication):418:419 -> a
    128:129:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):635 -> a
    130:151:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):637:658 -> a
    152:198:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):657:703 -> a
    199:199:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    199:199:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):703 -> a
    200:200:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):704:704 -> a
    201:202:void staticizeClasses(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):412:413 -> a
    201:202:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):706 -> a
    203:214:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):707:718 -> a
    215:216:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):428:429 -> a
    215:216:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):718 -> a
    217:217:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):720:720 -> a
    218:219:void synthesizeTwrCloseResourceUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):437:438 -> a
    218:219:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):721 -> a
    220:220:void synthesizeJava8UtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):444:444 -> a
    220:220:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):722 -> a
    221:223:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):723:725 -> a
    224:225:void finalizeLambdaMerging(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):900:901 -> a
    224:225:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):727 -> a
    226:226:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):729:729 -> a
    227:228:void generateDesugaredLibraryAPIWrappers(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):909:910 -> a
    227:228:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):730 -> a
    229:231:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):732:734 -> a
    232:251:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):733:752 -> a
    252:264:com.android.tools.r8.graph.DexType computeOutlineClassType():950:962 -> a
    252:264:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):752 -> a
    265:265:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    265:265:com.android.tools.r8.graph.DexType computeOutlineClassType():962 -> a
    265:265:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):752 -> a
    266:322:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):752:808 -> a
    323:330:com.android.tools.r8.graph.DexApplication optimize(java.util.concurrent.ExecutorService):802:809 -> a
    331:331:void lambda$optimize$4(com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.ir.conversion.PrimaryMethodProcessor,com.android.tools.r8.graph.DexEncodedMethod):665:665 -> a
    332:333:void lambda$optimize$5(com.android.tools.r8.ir.code.IRCode):748:749 -> a
    334:334:void addWaveDoneAction(com.android.tools.r8.utils.Action):829:829 -> a
    335:335:boolean isInWave():839:839 -> a
    335:335:void addWaveDoneAction(com.android.tools.r8.utils.Action):832 -> a
    336:336:void addWaveDoneAction(com.android.tools.r8.utils.Action):835:835 -> a
    337:337:void addWaveDoneAction(com.android.tools.r8.utils.Action):833:833 -> a
    338:338:void addWaveDoneAction(com.android.tools.r8.utils.Action):830:830 -> a
    339:339:void computeReachabilitySensitivity(com.android.tools.r8.graph.DexApplication):843:843 -> a
    340:342:void forEachSelectedOutliningMethod(java.util.function.Consumer,java.util.concurrent.ExecutorService):853:855 -> a
    343:353:void lambda$forEachSelectedOutliningMethod$9(java.util.function.Consumer,com.android.tools.r8.graph.DexEncodedMethod):858:868 -> a
    354:354:void processSynthesizedServiceLoaderMethods(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService):876:876 -> a
    355:355:void processSynthesizedServiceLoaderMethods(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService):875:875 -> a
    356:356:void clearDexMethodCompilationState():915:915 -> a
    357:357:void clearDexMethodCompilationState(com.android.tools.r8.graph.DexProgramClass):919:919 -> a
    358:367:void replaceCodeForTesting(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):932:941 -> a
    368:368:java.lang.String logCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexEncodedMethod):1020:1020 -> a
    368:368:void replaceCodeForTesting(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):941 -> a
    369:369:void replaceCodeForTesting(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):941:941 -> a
    370:370:void replaceCodeForTesting(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):940:940 -> a
    371:374:void optimizeSynthesizedClass(com.android.tools.r8.graph.DexProgramClass,java.util.concurrent.ExecutorService):969:972 -> a
    375:379:void optimizeSynthesizedClasses(java.util.Collection,java.util.concurrent.ExecutorService):978:982 -> a
    380:380:void lambda$optimizeSynthesizedLambdaClasses$10(com.android.tools.r8.ir.conversion.LambdaMethodProcessor,com.android.tools.r8.graph.DexEncodedMethod):996:996 -> a
    381:381:void lambda$processMethodsConcurrently$11(com.android.tools.r8.ir.conversion.OneTimeMethodProcessor,com.android.tools.r8.graph.DexEncodedMethod):1016:1016 -> a
    382:388:void processMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1038:1044 -> a
    389:391:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.origin.Origin):1079:1081 -> a
    392:397:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.origin.Origin):1080:1085 -> a
    398:398:java.lang.String logCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexEncodedMethod):1020:1020 -> a
    398:398:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.origin.Origin):1085 -> a
    399:399:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.origin.Origin):1085:1085 -> a
    400:412:void rewriteCodeInternal(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.origin.Origin):1084:1096 -> a
    413:416:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1104:1107 -> a
    417:422:void printC1VisualizerHeader(com.android.tools.r8.graph.DexEncodedMethod):1729:1734 -> a
    417:422:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1110 -> a
    423:429:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1111:1117 -> a
    430:430:boolean com.android.tools.r8.utils.InternalOptions.canHaveArtStringNewInitBug():1343:1343 -> a
    430:430:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1117 -> a
    431:466:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1118:1153 -> a
    467:467:void finalizeEmptyThrowingCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1482:1482 -> a
    467:467:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1154 -> a
    468:468:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    468:468:void finalizeEmptyThrowingCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1482 -> a
    468:468:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1154 -> a
    469:471:void finalizeEmptyThrowingCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1482:1484 -> a
    469:471:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1154 -> a
    472:472:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    472:472:void finalizeEmptyThrowingCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1484 -> a
    472:472:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1154 -> a
    473:476:void finalizeEmptyThrowingCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1485:1488 -> a
    473:476:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1154 -> a
    477:484:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1162:1169 -> a
    485:485:void com.android.tools.r8.naming.IdentifierNameStringMarker.decoupleIdentifierNameStringsInMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):97:97 -> a
    485:485:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1170 -> a
    486:514:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1171:1199 -> a
    515:515:void com.android.tools.r8.ir.optimize.Inliner.performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):846:846 -> a
    515:515:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1200 -> a
    516:516:void com.android.tools.r8.ir.optimize.Inliner.performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):841:841 -> a
    516:516:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1200 -> a
    517:586:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1201:1270 -> a
    587:589:void invertConditionalsForTesting(com.android.tools.r8.ir.code.IRCode):1049:1051 -> a
    587:589:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1271 -> a
    590:598:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1274:1282 -> a
    599:634:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1281:1316 -> a
    635:676:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1307:1348 -> a
    677:677:boolean com.android.tools.r8.ir.conversion.MethodProcessor.isPrimary():20:20 -> a
    677:677:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1348 -> a
    678:701:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1349:1372 -> a
    702:702:boolean com.android.tools.r8.ir.conversion.MethodProcessor.isPrimary():20:20 -> a
    702:702:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1372 -> a
    703:712:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1373:1382 -> a
    713:713:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    713:713:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1382 -> a
    714:724:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1383:1393 -> a
    725:730:boolean com.android.tools.r8.utils.InternalOptions.methodMatchesLogArgumentsFilter(com.android.tools.r8.graph.DexEncodedMethod):916:921 -> a
    725:730:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1393 -> a
    731:773:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1394:1436 -> a
    774:774:boolean com.android.tools.r8.utils.InternalOptions.canHaveNumberConversionRegisterAllocationBug():1351:1351 -> a
    774:774:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1436 -> a
    775:791:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1437:1453 -> a
    792:797:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1452:1457 -> a
    798:798:void lambda$optimize$12(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):1191:1191 -> a
    799:799:void lambda$optimize$13(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteShrinker):1195:1195 -> a
    800:800:com.android.tools.r8.ir.optimize.InliningOracle lambda$optimize$14(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor):1318:1318 -> a
    801:806:void collectOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1463:1468 -> a
    807:808:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1472:1473 -> a
    809:809:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    809:809:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1473 -> a
    810:814:void finalizeToCf(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1492:1496 -> a
    810:814:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1474 -> a
    815:815:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1476:1476 -> a
    816:819:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1501:1504 -> a
    816:819:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1477 -> a
    820:824:void updateHighestSortingStrings(com.android.tools.r8.graph.DexEncodedMethod):1528:1532 -> a
    820:824:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1505 -> a
    820:824:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1477 -> a
    825:827:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1506:1508 -> a
    825:827:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1477 -> a
    828:828:java.lang.String logCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexEncodedMethod):1020:1020 -> a
    828:828:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1508 -> a
    828:828:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1477 -> a
    829:829:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1508:1508 -> a
    829:829:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1477 -> a
    830:834:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1507:1511 -> a
    830:834:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1477 -> a
    835:840:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1540:1545 -> a
    841:841:boolean com.android.tools.r8.utils.InternalOptions.canHaveExceptionTargetingLoopHeaderBug():1376:1376 -> a
    841:841:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1545 -> a
    842:842:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1546:1546 -> a
    843:855:void com.android.tools.r8.ir.optimize.CodeRewriter.workaroundExceptionTargetingLoopHeaderBug(com.android.tools.r8.ir.code.IRCode):3707:3719 -> a
    843:855:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1546 -> a
    856:856:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> a
    856:856:void com.android.tools.r8.ir.optimize.CodeRewriter.workaroundExceptionTargetingLoopHeaderBug(com.android.tools.r8.ir.code.IRCode):3720 -> a
    856:856:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1546 -> a
    857:858:void com.android.tools.r8.ir.optimize.CodeRewriter.workaroundExceptionTargetingLoopHeaderBug(com.android.tools.r8.ir.code.IRCode):3720:3721 -> a
    857:858:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1546 -> a
    859:859:void com.android.tools.r8.ir.optimize.CodeRewriter.workaroundExceptionTargetingLoopHeaderBug(com.android.tools.r8.ir.code.IRCode):3707:3707 -> a
    859:859:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1546 -> a
    860:869:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1548:1557 -> a
    870:870:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1556:1556 -> a
    871:872:com.android.tools.r8.graph.DexMethod lambda$materializeInstructionBeforeLongOperationsWorkaround$16(com.android.tools.r8.graph.DexItemFactory):1622:1623 -> a
    873:873:com.android.tools.r8.graph.DexMethod lambda$materializeInstructionBeforeLongOperationsWorkaround$16(com.android.tools.r8.graph.DexItemFactory):1621:1621 -> a
    874:874:boolean isNotPseudoInstruction(com.android.tools.r8.ir.code.Instruction):1669:1669 -> a
    875:875:java.lang.String printMethod(com.android.tools.r8.ir.code.IRCode,java.lang.String,java.lang.String):1745:1745 -> a
    876:876:void com.android.tools.r8.utils.CfgPrinter.resetUnusedValue():24:24 -> a
    876:876:java.lang.String printMethod(com.android.tools.r8.ir.code.IRCode,java.lang.String,java.lang.String):1746 -> a
    877:894:java.lang.String printMethod(com.android.tools.r8.ir.code.IRCode,java.lang.String,java.lang.String):1747:1764 -> a
    1:7:boolean enableTryWithResourcesDesugaring():376:382 -> b
    8:13:void updateMainDexListWithSynthesizedClassMap(com.android.tools.r8.graph.DexApplication$Builder):491:496 -> b
    14:25:void updateMainDexListWithSynthesizedClassMap(com.android.tools.r8.graph.DexApplication$Builder):494:505 -> b
    26:35:void convertMethods(com.android.tools.r8.graph.DexProgramClass):547:556 -> b
    36:38:void lambda$optimize$6(com.android.tools.r8.ir.code.IRCode):757:759 -> b
    39:42:void forEachSynthesizedServiceLoaderMethod(com.android.tools.r8.graph.DexEncodedMethod):882:885 -> b
    43:50:void optimizeSynthesizedLambdaClasses(java.util.Collection,java.util.concurrent.ExecutorService):988:995 -> b
    51:58:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1058:1065 -> b
    59:59:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):1063:1063 -> b
    60:65:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1517:1522 -> b
    66:70:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):1520:1524 -> b
    71:75:boolean lambda$workaroundForwardingInitializerBug$15(com.android.tools.r8.ir.code.Instruction):1585:1589 -> b
    76:77:void printPhase(java.lang.String):1739:1740 -> b
    1:1:boolean enableTwrCloseResourceDesugaring():372:372 -> c
    2:21:void updateSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):518:537 -> c
    22:28:void updateSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):536:542 -> c
    29:42:com.android.tools.r8.graph.DexAnnotationSet com.android.tools.r8.graph.DexAnnotationSet.getWithAddedOrReplaced(com.android.tools.r8.graph.DexAnnotation):129:142 -> c
    29:42:void updateSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):542 -> c
    43:43:void updateSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):542:542 -> c
    44:45:void lambda$computeReachabilitySensitivity$8(com.android.tools.r8.graph.DexProgramClass):844:845 -> c
    46:46:void lambda$computeReachabilitySensitivity$7(com.android.tools.r8.graph.DexEncodedMethod):845:845 -> c
    47:48:void processMethodsConcurrently(java.util.Collection,java.util.concurrent.ExecutorService):1014:1015 -> c
    49:49:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1614:1614 -> c
    50:50:boolean com.android.tools.r8.utils.InternalOptions.canHaveDex2OatLinkedListBug():1327:1327 -> c
    50:50:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1614 -> c
    51:62:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1617:1628 -> c
    63:65:boolean isLongMul(com.android.tools.r8.ir.code.Instruction):1674:1676 -> c
    63:65:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1629 -> c
    66:66:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1632:1632 -> c
    67:68:boolean isLongAddOrSub(com.android.tools.r8.ir.code.Instruction):1681:1682 -> c
    67:68:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1633 -> c
    69:70:boolean isFallthoughTarget(com.android.tools.r8.ir.code.BasicBlock):1686:1687 -> c
    69:70:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1636 -> c
    71:72:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1639:1640 -> c
    73:77:boolean isAliasOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):1660:1664 -> c
    73:77:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1641 -> c
    78:83:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1642:1647 -> c
    84:95:void ensureThrowingInstructionBefore(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction):1696:1707 -> c
    84:95:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1648 -> c
    1:4:java.util.Set getDesugaredCallSites():350:353 -> d
    5:5:com.android.tools.r8.graph.DexType lambda$updateMainDexListWithSynthesizedClassMap$1(com.android.tools.r8.graph.DexProgramClass):495:495 -> d
    6:9:void waveStart(java.util.Collection,java.util.concurrent.ExecutorService):814:817 -> d
    10:15:void optimizeSynthesizedMethod(com.android.tools.r8.graph.DexEncodedMethod):1002:1007 -> d
    16:16:void optimizeSynthesizedMethod(com.android.tools.r8.graph.DexEncodedMethod):1004:1004 -> d
    17:17:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1563:1563 -> d
    18:18:boolean com.android.tools.r8.utils.InternalOptions.canHaveForwardingInitInliningBug():1364:1364 -> d
    18:18:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1563 -> d
    19:35:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1567:1583 -> d
    36:39:void ensureInstructionBefore(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1713:1716 -> d
    36:39:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1594 -> d
    40:40:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> d
    40:40:void ensureInstructionBefore(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1716 -> d
    40:40:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1594 -> d
    41:49:void ensureInstructionBefore(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1717:1725 -> d
    41:49:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1594 -> d
    1:1:com.android.tools.r8.graph.DexType lambda$updateSynthesizedClassMapping$2(com.android.tools.r8.graph.DexProgramClass):534:534 -> e
    2:2:java.util.List getOptimizationsForPostIRProcessing():1030:1030 -> e
    1:1:boolean isInWave():839:839 -> f
    1:5:com.android.tools.r8.graph.DexApplication optimize():616:620 -> g
    1:2:boolean removeLambdaDeserializationMethods():386:387 -> h
    1:3:void waveDone():823:825 -> i
com.android.tools.r8.ir.conversion.LambdaMethodProcessor -> com.android.tools.r8.ir.conversion.P:
    java.util.Deque waves -> a
    java.util.Collection wave -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():22:22 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView,java.util.Set,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):32:35 -> <init>
    1:2:java.util.Deque createWaves(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph):44:45 -> a
    3:3:boolean com.android.tools.r8.ir.conversion.CallGraph.isEmpty():181:181 -> a
    3:3:java.util.Deque createWaves(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph):46 -> a
    4:4:java.util.Deque createWaves(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph):47:47 -> a
    5:5:boolean isProcessedConcurrently(com.android.tools.r8.graph.DexEncodedMethod):54:54 -> a
    6:10:void forEachMethod(com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.utils.Action,java.util.concurrent.ExecutorService):62:66 -> a
    1:1:com.android.tools.r8.ir.conversion.MethodProcessor$Phase getPhase():40:40 -> b
com.android.tools.r8.ir.conversion.LensCodeRewriter -> com.android.tools.r8.ir.conversion.S:
    java.util.Map protoFixupCache -> b
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():75:75 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):81:81 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView):79:82 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.ir.conversion.LensCodeRewriter):75:75 -> a
    2:2:com.android.tools.r8.ir.code.Value access$100(com.android.tools.r8.ir.conversion.LensCodeRewriter,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):75:75 -> a
    3:7:com.android.tools.r8.ir.code.Value makeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):86:90 -> a
    8:18:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):97:107 -> a
    19:39:boolean unlinkDeadCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):475:495 -> a
    19:39:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):109 -> a
    40:94:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):112:166 -> a
    95:128:void checkInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeDirect):430:463 -> a
    95:128:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):166 -> a
    129:129:void checkInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeDirect):454:454 -> a
    129:129:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):166 -> a
    130:130:void checkInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeDirect):453:453 -> a
    130:130:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):166 -> a
    131:138:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):168:175 -> a
    139:142:com.android.tools.r8.graph.DexMethod rebindVirtualInvokeToMostSpecific(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):612:615 -> a
    139:142:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):174 -> a
    143:143:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    143:143:com.android.tools.r8.graph.DexMethod rebindVirtualInvokeToMostSpecific(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):615 -> a
    143:143:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):174 -> a
    144:164:com.android.tools.r8.graph.DexMethod rebindVirtualInvokeToMostSpecific(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):617:637 -> a
    144:164:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):174 -> a
    165:165:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    165:165:com.android.tools.r8.graph.DexMethod rebindVirtualInvokeToMostSpecific(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):637 -> a
    165:165:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):174 -> a
    166:172:com.android.tools.r8.graph.DexMethod rebindVirtualInvokeToMostSpecific(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):639:645 -> a
    166:172:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):174 -> a
    173:190:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):177:194 -> a
    191:207:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):193:209 -> a
    208:235:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):204:231 -> a
    236:236:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):230:230 -> a
    237:237:com.android.tools.r8.ir.code.Invoke com.android.tools.r8.ir.code.Invoke.create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):66:66 -> a
    237:237:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):234 -> a
    238:275:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):235:272 -> a
    276:285:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):271:280 -> a
    286:301:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):279:294 -> a
    302:318:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):293:309 -> a
    319:341:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):308:330 -> a
    342:352:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):329:339 -> a
    353:359:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):338:344 -> a
    360:366:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):343:349 -> a
    367:373:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):348:354 -> a
    374:381:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):353:360 -> a
    382:388:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):359:365 -> a
    389:421:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):364:396 -> a
    422:428:com.android.tools.r8.ir.code.Instruction lambda$rewrite$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):151:157 -> a
    429:429:com.android.tools.r8.ir.code.Invoke com.android.tools.r8.ir.code.Invoke.create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):66:66 -> a
    429:429:com.android.tools.r8.ir.code.Instruction lambda$rewrite$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):157 -> a
    430:430:boolean com.android.tools.r8.graph.DexMethodHandle.isMethodHandle():297:297 -> a
    430:430:com.android.tools.r8.graph.DexMethodHandle rewriteDexMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):538 -> a
    431:465:com.android.tools.r8.graph.DexMethodHandle rewriteDexMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):539:573 -> a
    466:466:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    466:466:com.android.tools.r8.graph.DexMethodHandle rewriteDexMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):573 -> a
    467:478:com.android.tools.r8.graph.DexMethodHandle rewriteDexMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):574:585 -> a
    479:479:com.android.tools.r8.ir.code.Instruction lambda$rewrite$1(com.android.tools.r8.ir.code.CheckCast,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):339:339 -> a
    480:480:com.android.tools.r8.ir.code.Instruction lambda$rewrite$2(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):344:344 -> a
    481:481:com.android.tools.r8.ir.code.Instruction lambda$rewrite$3(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):349:349 -> a
    482:482:com.android.tools.r8.ir.code.Instruction lambda$rewrite$4(com.android.tools.r8.ir.code.InvokeMultiNewArray,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):355:355 -> a
    483:483:com.android.tools.r8.ir.code.Instruction lambda$rewrite$5(com.android.tools.r8.ir.code.InvokeNewArray,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):360:360 -> a
    484:484:com.android.tools.r8.ir.code.Instruction lambda$rewrite$7(com.android.tools.r8.ir.code.NewArrayEmpty,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):371:371 -> a
    485:488:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):400:403 -> a
    489:498:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):402:411 -> a
    499:503:java.util.List rewriteBootstrapArgs(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):502:506 -> a
    499:503:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):411 -> a
    504:506:com.android.tools.r8.graph.DexValue$DexValueMethodHandle rewriteDexValueMethodHandle(com.android.tools.r8.graph.DexValue$DexValueMethodHandle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):531:533 -> a
    504:506:java.util.List rewriteBootstrapArgs(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):506 -> a
    504:506:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):411 -> a
    507:523:java.util.List rewriteBootstrapArgs(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse) -> a
    507:523:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):411 -> a
    524:527:com.android.tools.r8.graph.DexCallSite rewriteCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexEncodedMethod):412:415 -> a
    528:533:com.android.tools.r8.graph.DexValue$DexValueMethodType rewriteDexMethodType(com.android.tools.r8.graph.DexValue$DexValueMethodType):592:597 -> a
    534:535:boolean canInvokeTargetWithInvokeVirtual(com.android.tools.r8.graph.DexEncodedMethod):649:650 -> a
    536:542:boolean hasAccessToInvokeTargetFromContext(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):654:660 -> a
    543:543:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    543:543:boolean hasAccessToInvokeTargetFromContext(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):660 -> a
    544:544:boolean com.android.tools.r8.graph.DexType.isSamePackage(com.android.tools.r8.graph.DexType):98:98 -> a
    544:544:boolean hasAccessToInvokeTargetFromContext(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):665 -> a
    545:548:boolean hasAccessToInvokeTargetFromContext(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):668:671 -> a
    1:1:com.android.tools.r8.ir.code.Instruction lambda$rewrite$6(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):366:366 -> b
com.android.tools.r8.ir.conversion.LensCodeRewriter$InstructionReplacer -> com.android.tools.r8.ir.conversion.Q:
    com.android.tools.r8.ir.code.Instruction current -> b
    java.util.Set affectedPhis -> d
    com.android.tools.r8.ir.conversion.LensCodeRewriter this$0 -> e
    com.android.tools.r8.ir.code.IRCode code -> a
    com.android.tools.r8.ir.code.InstructionListIterator iterator -> c
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():674:674 -> <clinit>
    1:5:void <init>(com.android.tools.r8.ir.conversion.LensCodeRewriter,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):682:686 -> <init>
    1:14:void replaceInstructionIfTypeChanged(com.android.tools.r8.graph.DexType,java.util.function.BiFunction):691:704 -> a
    15:15:void replaceInstructionIfTypeChanged(com.android.tools.r8.graph.DexType,java.util.function.BiFunction):701:701 -> a
com.android.tools.r8.ir.conversion.MethodOptimizationFeedback -> com.android.tools.r8.ir.conversion.T:
    void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget) -> a
    void markTriggerClassInitBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> a
    void methodInitializesClassesOnNormalExit(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set) -> a
    void methodNeverReturnsNormally(com.android.tools.r8.graph.DexEncodedMethod) -> a
    void methodReturnsAbstractValue(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.value.AbstractValue) -> a
    void methodReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,int) -> a
    void methodReturnsObjectWithLowerBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement) -> a
    void methodReturnsObjectWithUpperBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement) -> a
    void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo) -> a
    void setInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo) -> a
    void setNonNullParamOrThrow(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> a
    void setParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo) -> a
    void markCheckNullReceiverBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> b
    void setInitializerEnablingJavaAssertions(com.android.tools.r8.graph.DexEncodedMethod) -> b
    void setNonNullParamOnNormalExits(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> b
    void methodMayNotHaveSideEffects(com.android.tools.r8.graph.DexEncodedMethod) -> c
    void markInlinedIntoSingleCallSite(com.android.tools.r8.graph.DexEncodedMethod) -> d
    void methodReturnValueOnlyDependsOnArguments(com.android.tools.r8.graph.DexEncodedMethod) -> e
    void markUseIdentifierNameString(com.android.tools.r8.graph.DexEncodedMethod) -> f
    void methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod) -> g
    void classInitializerMayBePostponed(com.android.tools.r8.graph.DexEncodedMethod) -> h
    void markMethodCannotBeKept(com.android.tools.r8.graph.DexEncodedMethod) -> i
com.android.tools.r8.ir.conversion.MethodProcessor -> com.android.tools.r8.ir.conversion.U:
    boolean isProcessedConcurrently(com.android.tools.r8.graph.DexEncodedMethod) -> a
    1:1:com.android.tools.r8.ir.conversion.CallSiteInformation com.android.tools.r8.ir.conversion.CallSiteInformation.empty():27:27 -> a
    1:1:com.android.tools.r8.ir.conversion.CallSiteInformation getCallSiteInformation():24 -> a
    com.android.tools.r8.ir.conversion.MethodProcessor$Phase getPhase() -> b
com.android.tools.r8.ir.conversion.MethodProcessor$Phase -> com.android.tools.r8.ir.conversion.U$a:
    com.android.tools.r8.ir.conversion.MethodProcessor$Phase POST -> d
    com.android.tools.r8.ir.conversion.MethodProcessor$Phase PRIMARY -> c
    com.android.tools.r8.ir.conversion.MethodProcessor$Phase LAMBDA_PROCESSING -> b
    com.android.tools.r8.ir.conversion.MethodProcessor$Phase ONE_TIME -> a
    1:4:void <clinit>():11:14 -> <clinit>
    1:1:void <init>(java.lang.String,int):10:10 -> <init>
com.android.tools.r8.ir.conversion.OneTimeMethodProcessor -> com.android.tools.r8.ir.conversion.V:
    java.util.Collection wave -> a
    1:2:void <init>(java.util.Collection):21:22 -> <init>
    1:1:com.android.tools.r8.ir.conversion.OneTimeMethodProcessor getInstance(java.util.Collection):30:30 -> a
    2:2:boolean isProcessedConcurrently(com.android.tools.r8.graph.DexEncodedMethod):40:40 -> a
    3:3:void forEachWave(com.android.tools.r8.utils.ThrowingConsumer,java.util.concurrent.ExecutorService):47:47 -> a
    1:1:com.android.tools.r8.ir.conversion.MethodProcessor$Phase getPhase():35:35 -> b
    1:1:com.android.tools.r8.ir.conversion.OneTimeMethodProcessor getInstance():26:26 -> c
com.android.tools.r8.ir.conversion.PartialCallGraphBuilder -> com.android.tools.r8.ir.conversion.W:
    java.util.Set seeds -> e
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():14:14 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.AppView,java.util.Set):18:20 -> <init>
    1:1:com.android.tools.r8.ir.conversion.CallGraph build(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):14:14 -> a
    2:2:void process(java.util.concurrent.ExecutorService):25:25 -> a
    3:4:boolean verifyAllMethodsWithCodeExists():37:38 -> a
    1:3:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):29:31 -> b
    4:4:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):30:30 -> b
com.android.tools.r8.ir.conversion.PostMethodProcessor -> com.android.tools.r8.ir.conversion.Y:
    java.util.Map methodsMap -> b
    java.util.Deque waves -> c
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Collection wave -> d
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,com.android.tools.r8.ir.conversion.CallGraph,com.android.tools.r8.ir.conversion.PostMethodProcessor$1):28:28 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,com.android.tools.r8.ir.conversion.CallGraph):38:41 -> <init>
    1:2:java.util.Deque createWaves(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph):102:103 -> a
    3:3:boolean com.android.tools.r8.ir.conversion.CallGraph.isEmpty():181:181 -> a
    3:3:java.util.Deque createWaves(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph):106 -> a
    4:7:java.util.Deque createWaves(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph):107:110 -> a
    8:8:boolean isProcessedConcurrently(com.android.tools.r8.graph.DexEncodedMethod):119:119 -> a
    9:12:void forEachWave(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):124:127 -> a
    13:14:void lambda$forEachWave$0(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod):130:131 -> a
    15:27:void forEachMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):144:156 -> a
    15:27:void lambda$forEachWave$0(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod):132 -> a
    1:1:com.android.tools.r8.ir.conversion.MethodProcessor$Phase getPhase():46:46 -> b
com.android.tools.r8.ir.conversion.PostMethodProcessor$1 -> com.android.tools.r8.ir.conversion.X:
com.android.tools.r8.ir.conversion.PostMethodProcessor$Builder -> com.android.tools.r8.ir.conversion.Y$a:
    java.util.Map methodsMap -> b
    java.util.Collection defaultCodeOptimizations -> a
    1:1:void <init>(java.util.Collection):54:54 -> <init>
    2:5:void <init>(java.util.Collection):52:55 -> <init>
    1:11:void put(java.util.Set,java.util.Collection):60:70 -> a
    12:12:java.util.Collection lambda$put$0(com.android.tools.r8.graph.DexEncodedMethod):69:69 -> a
    13:13:void put(java.util.Set):75:75 -> a
    14:18:void put(com.android.tools.r8.ir.conversion.PostOptimization):80:84 -> a
    19:26:com.android.tools.r8.ir.conversion.PostMethodProcessor build(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):90:97 -> a
com.android.tools.r8.ir.conversion.PostOptimization -> com.android.tools.r8.ir.conversion.Z:
    java.util.Set methodsToRevisit() -> a
    java.util.Collection codeOptimizationsForPostProcessing() -> b
com.android.tools.r8.ir.conversion.PrimaryMethodProcessor -> com.android.tools.r8.ir.conversion.a0:
    java.util.Deque waves -> c
    java.util.Collection wave -> d
    com.android.tools.r8.ir.conversion.CallSiteInformation callSiteInformation -> a
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ir.conversion.PostMethodProcessor$Builder postMethodProcessorBuilder -> b
    1:1:void <clinit>():32:32 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.PostMethodProcessor$Builder,com.android.tools.r8.ir.conversion.CallGraph):48:51 -> <init>
    1:1:com.android.tools.r8.ir.conversion.CallSiteInformation getCallSiteInformation():71:71 -> a
    2:27:java.util.Deque createWaves(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph,com.android.tools.r8.ir.conversion.CallSiteInformation):76:101 -> a
    28:32:void lambda$createWaves$1(java.util.Set,com.android.tools.r8.ir.conversion.CallSiteInformation,com.android.tools.r8.ir.conversion.CallGraph,java.util.Set,com.android.tools.r8.ir.conversion.CallGraph$Node):87:91 -> a
    33:33:void lambda$createWaves$0(java.util.Set,com.android.tools.r8.ir.conversion.CallGraph$Node):92:92 -> a
    34:44:void extractLeaves(java.util.Set,java.util.function.Consumer):113:123 -> a
    45:45:boolean isProcessedConcurrently(com.android.tools.r8.graph.DexEncodedMethod):128:128 -> a
    46:51:void forEachMethod(com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.ir.conversion.PrimaryMethodProcessor$WaveStartAction,com.android.tools.r8.utils.Action,java.util.concurrent.ExecutorService):143:148 -> a
    52:52:com.android.tools.r8.ir.conversion.CallGraphBuilder com.android.tools.r8.ir.conversion.CallGraph.builder(com.android.tools.r8.graph.AppView):170:170 -> a
    52:52:com.android.tools.r8.ir.conversion.PrimaryMethodProcessor create(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.PostMethodProcessor$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):60 -> a
    53:54:com.android.tools.r8.ir.conversion.PrimaryMethodProcessor create(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.PostMethodProcessor$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):60:61 -> a
    1:1:com.android.tools.r8.ir.conversion.MethodProcessor$Phase getPhase():66:66 -> b
com.android.tools.r8.ir.conversion.PrimaryMethodProcessor$WaveStartAction -> com.android.tools.r8.ir.conversion.a0$a:
    void notifyWaveStart(java.util.Collection,java.util.concurrent.ExecutorService) -> a
com.android.tools.r8.ir.conversion.SourceCode -> com.android.tools.r8.ir.conversion.b0:
    void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean) -> a
    void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean) -> a
    void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder) -> a
    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,int) -> a
    int getMoveExceptionRegister(int) -> a
    int instructionCount() -> a
    void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder) -> a
    void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder) -> a
    int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder) -> a
    boolean verifyLocalInScope(com.android.tools.r8.graph.DebugLocalInfo) -> a
    void buildPostlude(com.android.tools.r8.ir.conversion.IRBuilder) -> b
    int instructionOffset(int) -> b
    void setUp() -> b
    com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder) -> c
    com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int) -> c
    boolean verifyCurrentInstructionCanThrow() -> c
    com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int) -> d
    com.android.tools.r8.ir.code.Position getCurrentPosition() -> d
    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int) -> e
    boolean verifyRegister(int) -> f
    int instructionIndex(int) -> g
com.android.tools.r8.ir.conversion.StringSwitchConverter -> com.android.tools.r8.ir.conversion.k0:
    1:7:boolean isDefinedByStringHashCode(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):184:190 -> a
    1:7:boolean access$700(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):104 -> a
com.android.tools.r8.ir.conversion.StringSwitchConverter$1 -> com.android.tools.r8.ir.conversion.c0:
com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping -> com.android.tools.r8.ir.conversion.e0:
    com.android.tools.r8.ir.code.Phi idValue -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap mapping -> c
    com.android.tools.r8.ir.code.BasicBlock fallthroughBlock -> a
    1:1:void <init>(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.conversion.StringSwitchConverter$1):587:587 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.Phi):727:727 -> <init>
    3:6:void <init>(com.android.tools.r8.ir.code.Phi):725:728 -> <init>
    1:1:com.android.tools.r8.ir.code.BasicBlock access$000(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping):587:587 -> a
    2:2:com.android.tools.r8.ir.code.BasicBlock access$002(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):587:587 -> a
    1:1:com.android.tools.r8.ir.code.Phi access$100(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping):587:587 -> b
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap access$300(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping):587:587 -> c
com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping$Builder -> com.android.tools.r8.ir.conversion.d0:
    1:1:void <init>():589:589 -> <init>
    1:1:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping build(com.android.tools.r8.ir.code.BasicBlock):616:616 -> a
    2:2:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):628:628 -> a
    3:3:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping setFallthroughBlock(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):622:622 -> a
    3:3:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):631 -> a
    4:18:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):633:647 -> a
    19:19:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping setFallthroughBlock(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):622:622 -> a
    19:19:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):651 -> a
    20:23:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.If):655:658 -> a
    24:24:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping setFallthroughBlock(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):622:622 -> a
    24:24:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.If):658 -> a
    25:62:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.If):663:700 -> a
    63:63:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.If):687:687 -> a
    64:64:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping setFallthroughBlock(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):622:622 -> a
    64:64:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.If):687 -> a
    65:65:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.If):675:675 -> a
    66:66:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping setFallthroughBlock(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):622:622 -> a
    66:66:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.If):675 -> a
    67:81:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithSwitch(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.IntSwitch):705:719 -> a
    82:82:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithSwitch(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.IntSwitch):708:708 -> a
    83:83:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping setFallthroughBlock(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.BasicBlock):622:622 -> a
    83:83:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping extendWithSwitch(com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping,com.android.tools.r8.ir.code.IntSwitch):708 -> a
com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo -> com.android.tools.r8.ir.conversion.g0:
    java.util.Map mapping -> c
    com.android.tools.r8.ir.code.Value value -> d
    com.android.tools.r8.ir.code.BasicBlock insertionBlock -> b
    com.android.tools.r8.ir.code.BasicBlock fallthroughBlock -> a
    1:5:void <init>(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,java.util.Map,com.android.tools.r8.ir.code.Value):260:264 -> <init>
    1:29:void createAndInsertStringSwitch(com.android.tools.r8.ir.code.IRCode):273:301 -> a
    30:30:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298:298 -> a
    30:30:void createAndInsertStringSwitch(com.android.tools.r8.ir.code.IRCode):301 -> a
    31:31:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    31:31:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298 -> a
    31:31:void createAndInsertStringSwitch(com.android.tools.r8.ir.code.IRCode):301 -> a
com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo$Builder -> com.android.tools.r8.ir.conversion.f0:
    boolean $assertionsDisabled -> b
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> a
    1:1:void <clinit>():195:195 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.conversion.StringSwitchConverter$1):195:195 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.DexItemFactory):199:200 -> <init>
    1:1:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo build(com.android.tools.r8.ir.code.BasicBlock):204:204 -> a
    2:2:com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping$Builder com.android.tools.r8.ir.conversion.StringSwitchConverter$IdToTargetMapping.builder():732:732 -> a
    2:2:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo build(com.android.tools.r8.ir.code.BasicBlock):205 -> a
    3:14:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo build(com.android.tools.r8.ir.code.BasicBlock):205:216 -> a
    15:16:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.conversion.StringSwitchConverter$Utils.getStringValueFromHashValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):787:788 -> a
    15:16:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo build(com.android.tools.r8.ir.code.BasicBlock):216 -> a
    17:19:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo build(com.android.tools.r8.ir.code.BasicBlock):217:219 -> a
    20:46:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringSwitchBuilderInfo build(com.android.tools.r8.ir.code.BasicBlock):218:244 -> a
com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping -> com.android.tools.r8.ir.conversion.i0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap mapping -> c
    com.android.tools.r8.ir.code.Value stringHashValue -> b
    boolean $assertionsDisabled -> d
    com.android.tools.r8.ir.code.BasicBlock insertionBlock -> a
    1:1:void <clinit>():305:305 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.conversion.StringSwitchConverter$1):305:305 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):573:573 -> <init>
    3:7:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):571:575 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap access$200(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping):305:305 -> a
    2:2:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping$Builder builder(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Value):583:583 -> a
    1:1:com.android.tools.r8.ir.code.Value access$500(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping):305:305 -> b
com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping$Builder -> com.android.tools.r8.ir.conversion.h0:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
    com.android.tools.r8.ir.code.Phi idValue -> c
    com.android.tools.r8.ir.code.Value stringValue -> d
    com.android.tools.r8.ir.code.BasicBlock continuationBlock -> a
    1:5:void <init>(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Value):318:322 -> <init>
    1:1:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping build(com.android.tools.r8.ir.code.BasicBlock):356:356 -> a
    2:4:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):360:362 -> a
    5:35:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.If):404:434 -> a
    5:35:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):362 -> a
    36:36:boolean addMappingsForStringsWithHash(com.android.tools.r8.ir.code.BasicBlock,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):487:487 -> a
    36:36:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.If):435 -> a
    36:36:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):362 -> a
    37:45:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithIf(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.If):441:449 -> a
    37:45:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):362 -> a
    46:47:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):364:365 -> a
    48:60:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithSwitch(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.IntSwitch):454:466 -> a
    48:60:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):365 -> a
    61:61:boolean addMappingsForStringsWithHash(com.android.tools.r8.ir.code.BasicBlock,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):487:487 -> a
    61:61:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithSwitch(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.IntSwitch):467 -> a
    61:61:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):365 -> a
    62:70:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithSwitch(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.IntSwitch):474:482 -> a
    62:70:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extend(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):365 -> a
    71:115:boolean addMappingsForStringsWithHash(com.android.tools.r8.ir.code.BasicBlock,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,java.util.Set):495:539 -> a
    116:116:boolean addMappingsForStringsWithHash(com.android.tools.r8.ir.code.BasicBlock,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,java.util.Set):529:529 -> a
    117:130:boolean addMappingForString(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexString,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):547:560 -> a
    1:27:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithPredecessor(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):373:399 -> b
    28:30:com.android.tools.r8.ir.code.BasicBlock com.android.tools.r8.ir.code.BasicBlock.startOfGotoChain():1461:1463 -> b
    28:30:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithPredecessor(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):399 -> b
    31:31:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithPredecessor(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):400:400 -> b
    32:32:com.android.tools.r8.ir.code.BasicBlock com.android.tools.r8.ir.code.BasicBlock.startOfGotoChain():0:0 -> b
    32:32:com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping extendWithPredecessor(com.android.tools.r8.ir.conversion.StringSwitchConverter$StringToIdMapping,com.android.tools.r8.ir.code.BasicBlock):399 -> b
com.android.tools.r8.ir.conversion.StringSwitchConverter$Utils -> com.android.tools.r8.ir.conversion.j0:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():736:736 -> <clinit>
    1:2:com.android.tools.r8.ir.code.BasicBlock getTrueTarget(com.android.tools.r8.ir.code.If):739:740 -> a
    3:10:com.android.tools.r8.ir.code.BasicBlock fallthroughBlock(com.android.tools.r8.ir.code.JumpInstruction):744:751 -> a
    11:15:com.android.tools.r8.ir.code.Value getStringHashValueFromJump(com.android.tools.r8.ir.code.JumpInstruction,com.android.tools.r8.graph.DexItemFactory):756:760 -> a
    16:17:com.android.tools.r8.ir.code.Value getStringHashValueFromSwitch(com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.graph.DexItemFactory):779:780 -> a
    16:17:com.android.tools.r8.ir.code.Value getStringHashValueFromJump(com.android.tools.r8.ir.code.JumpInstruction,com.android.tools.r8.graph.DexItemFactory):760 -> a
    18:23:com.android.tools.r8.ir.code.Value getStringHashValueFromIf(com.android.tools.r8.ir.code.If,com.android.tools.r8.graph.DexItemFactory):766:771 -> a
    24:25:com.android.tools.r8.ir.code.Value getStringHashValueFromSwitch(com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.graph.DexItemFactory):779:780 -> a
    26:28:boolean isSameStringHashValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):797:799 -> a
com.android.tools.r8.ir.conversion.StringSwitchRemover -> com.android.tools.r8.ir.conversion.l0:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.naming.IdentifierNameStringMarker identifierNameStringMarker -> b
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement stringType -> c
    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> d
    1:1:void <clinit>():36:36 -> <clinit>
    1:5:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.IdentifierNameStringMarker):43:47 -> <init>
    1:21:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):51:71 -> a
    22:45:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):80:103 -> a
    46:46:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    46:46:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):104 -> a
    47:52:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):104:109 -> a
    53:53:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    53:53:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):110 -> a
    54:75:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):111:132 -> a
    76:88:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):129:141 -> a
    89:90:void com.android.tools.r8.ir.code.Goto.<init>(com.android.tools.r8.ir.code.BasicBlock):21:22 -> a
    89:90:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):141 -> a
    91:91:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298:298 -> a
    91:91:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):141 -> a
    92:92:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    92:92:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298 -> a
    92:92:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):141 -> a
    93:105:void removeStringSwitch(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.StringSwitch,java.util.Set):142:154 -> a
com.android.tools.r8.ir.conversion.SwitchPayloadResolver -> com.android.tools.r8.ir.conversion.n0:
    java.util.Map unresolvedPayload -> a
    java.util.Map payloadToData -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():16:16 -> <clinit>
    1:17:void <init>():16:32 -> <init>
    1:15:void resolve(com.android.tools.r8.code.SwitchPayload):45:59 -> a
    16:17:int[] absoluteTargets(com.android.tools.r8.code.Instruction):63:64 -> a
    18:18:int[] absoluteTargets(int):68:68 -> a
    18:18:int[] absoluteTargets(com.android.tools.r8.code.Instruction):64 -> a
    19:19:int[] absoluteTargets(int):68:68 -> a
    20:20:void clear():84:84 -> a
    1:6:void addPayloadUser(com.android.tools.r8.code.Instruction):35:40 -> b
    7:7:int[] getKeys(int):72:72 -> b
com.android.tools.r8.ir.conversion.SwitchPayloadResolver$PayloadData -> com.android.tools.r8.ir.conversion.m0:
    int[] absoluteTargets -> b
    int[] keys -> c
    int userOffset -> a
    1:1:void <init>(int):26:26 -> <init>
    2:7:void <init>(int):22:27 -> <init>
com.android.tools.r8.ir.conversion.TypeConstraintResolver -> com.android.tools.r8.ir.conversion.o0:
    java.util.Map unificationParents -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.conversion.IRBuilder builder -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():52:52 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRBuilder):58:58 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRBuilder):56:60 -> <init>
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint constraintForType(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):65:65 -> a
    2:24:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):69:91 -> a
    25:25:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):89:89 -> a
    26:26:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):87:87 -> a
    27:27:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):85:85 -> a
    28:28:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):83:83 -> a
    29:29:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):81:81 -> a
    30:30:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):79:79 -> a
    31:31:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):77:77 -> a
    32:32:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):71:71 -> a
    33:59:java.util.List resolveRoundOne(com.android.tools.r8.ir.code.IRCode):111:137 -> a
    33:59:void resolve(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):101 -> a
    60:60:void resolve(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):104:104 -> a
    61:75:void resolveRoundTwo(com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.List):145:159 -> a
    61:75:void resolve(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):107 -> a
    76:78:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
    76:78:void resolveRoundTwo(com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.List):154 -> a
    76:78:void resolve(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):107 -> a
    79:83:java.util.ArrayList constrainValues(boolean,java.util.List):166:170 -> a
    84:97:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):178:191 -> a
    98:140:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):28:70 -> a
    98:140:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):192 -> a
    141:141:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):65:65 -> a
    141:141:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):192 -> a
    142:143:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):60:61 -> a
    142:143:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):192 -> a
    144:145:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):55:56 -> a
    144:145:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):192 -> a
    146:146:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):50:50 -> a
    146:146:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):192 -> a
    147:147:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):45:45 -> a
    147:147:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):192 -> a
    148:149:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):40:41 -> a
    148:149:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):192 -> a
    150:151:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):35:36 -> a
    150:151:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):192 -> a
    152:152:com.android.tools.r8.ir.code.MemberType com.android.tools.r8.ir.code.MemberType.constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):30:30 -> a
    152:152:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):192 -> a
    153:153:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):192:192 -> a
    154:154:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):196:196 -> a
    155:157:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):252:254 -> a
    155:157:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):196 -> a
    158:158:com.android.tools.r8.ir.code.ValueTypeConstraint constraintForType(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):65:65 -> a
    158:158:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):255 -> a
    158:158:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):196 -> a
    159:159:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):256:256 -> a
    159:159:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):196 -> a
    160:160:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    160:160:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):256 -> a
    160:160:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):196 -> a
    161:176:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):256:271 -> a
    161:176:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):196 -> a
    177:187:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):200:210 -> a
    188:188:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value):218:218 -> a
    188:188:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):210 -> a
    189:189:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):211:211 -> a
    190:193:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):204:207 -> a
    194:194:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value):218:218 -> a
    194:194:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):207 -> a
    195:195:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):208:208 -> a
    196:208:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value,java.util.Set):222:234 -> a
    209:218:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value,java.util.Set):232:241 -> a
    219:221:com.android.tools.r8.ir.code.Value canonical(com.android.tools.r8.ir.code.Value):279:281 -> a
com.android.tools.r8.ir.desugar.AccessorMethodSourceCode -> com.android.tools.r8.t.c.a:
    boolean $assertionsDisabled -> o
    1:1:void <clinit>():20:20 -> <clinit>
    1:6:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.Position):23:28 -> <init>
    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.descriptor():33:33 -> a
    1:1:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():64 -> a
    1:1:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):109 -> a
    2:13:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():64:75 -> a
    2:13:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):109 -> a
    14:14:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():73:73 -> a
    14:14:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):109 -> a
    15:15:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():71:71 -> a
    15:15:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):109 -> a
    16:18:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():66:68 -> a
    16:18:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):109 -> a
    19:19:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):109:109 -> a
    20:20:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):108:108 -> a
    21:21:void lambda$prepareInstructions$0(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder):92:92 -> a
    22:22:void lambda$prepareInstructions$2(java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):121:121 -> a
    1:1:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):125:125 -> b
    1:1:void lambda$prepareInstructions$4(int,com.android.tools.r8.ir.conversion.IRBuilder):126:126 -> c
    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.descriptor():33:33 -> h
    1:1:void prepareInstructions():81 -> h
    2:26:void prepareInstructions():81:105 -> h
    27:27:com.android.tools.r8.ir.desugar.LambdaDescriptor com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.descriptor():33:33 -> h
    27:27:void prepareInstructions():105 -> h
    28:49:void prepareInstructions():105:126 -> h
    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.descriptor():33:33 -> l
    1:1:boolean checkSignatures():32 -> l
    2:12:boolean checkSignatures():32:42 -> l
    13:13:com.android.tools.r8.ir.desugar.LambdaDescriptor com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.descriptor():33:33 -> l
    13:13:boolean checkSignatures():42 -> l
    14:24:boolean checkSignatures():42:52 -> l
    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.descriptor():33:33 -> m
    1:1:boolean delegatingToConstructor():60 -> m
    2:2:boolean delegatingToConstructor():60:60 -> m
com.android.tools.r8.ir.desugar.BackportedMethodRewriter -> com.android.tools.r8.t.c.b:
    com.android.tools.r8.graph.DexItemFactory factory -> c
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set holders -> f
    com.android.tools.r8.ir.desugar.BackportedMethodRewriter$RewritableMethods rewritableMethods -> d
    boolean enabled -> e
    boolean $assertionsDisabled -> h
    java.util.Map methodProviders -> g
    com.android.tools.r8.ir.conversion.IRConverter converter -> b
    1:1:void <clinit>():64:64 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):79:79 -> <init>
    2:18:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):76:92 -> <init>
    1:7:java.util.List generateListOfBackportedMethods(com.android.tools.r8.utils.AndroidApiLevel):96:102 -> a
    8:8:void desugar(com.android.tools.r8.ir.code.IRCode):107:107 -> a
    9:9:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    9:9:void desugar(com.android.tools.r8.ir.code.IRCode):111 -> a
    10:50:void desugar(com.android.tools.r8.ir.code.IRCode):112:152 -> a
    51:51:boolean com.android.tools.r8.graph.DexEncodedMethod.isFinal():294:294 -> a
    51:51:void desugar(com.android.tools.r8.ir.code.IRCode):154 -> a
    52:59:void desugar(com.android.tools.r8.ir.code.IRCode):155:162 -> a
    60:60:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    60:60:void desugar(com.android.tools.r8.ir.code.IRCode):161 -> a
    61:66:void desugar(com.android.tools.r8.ir.code.IRCode):168:173 -> a
    67:67:boolean hasRewrittenMethodPrefix(com.android.tools.r8.graph.DexType):188:188 -> a
    68:71:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):193:196 -> a
    72:72:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    72:72:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):196 -> a
    73:73:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):331:331 -> a
    73:73:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):197 -> a
    74:74:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    74:74:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):331 -> a
    74:74:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):197 -> a
    75:89:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):331:345 -> a
    75:89:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):197 -> a
    90:90:com.android.tools.r8.graph.DexType dispatchInterfaceTypeFor(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):455:455 -> a
    90:90:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):345 -> a
    90:90:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):197 -> a
    91:97:com.android.tools.r8.graph.DexEncodedMethod generateInterfaceDispatchMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):408:414 -> a
    91:97:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):347 -> a
    91:97:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):197 -> a
    98:98:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    98:98:com.android.tools.r8.graph.DexEncodedMethod generateInterfaceDispatchMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):414 -> a
    98:98:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):347 -> a
    98:98:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):197 -> a
    99:107:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):348:356 -> a
    99:107:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):197 -> a
    108:108:com.android.tools.r8.graph.DexType dispatchHolderTypeFor(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):459:459 -> a
    108:108:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):356 -> a
    108:108:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):197 -> a
    109:109:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):357:357 -> a
    109:109:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):197 -> a
    110:125:com.android.tools.r8.graph.DexEncodedMethod generateHolderDispatchMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):428:443 -> a
    110:125:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):358 -> a
    110:125:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):197 -> a
    126:126:com.android.tools.r8.graph.DexEncodedMethod generateHolderDispatchMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):438:438 -> a
    126:126:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):358 -> a
    126:126:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):197 -> a
    127:127:void synthesizeEmulatedDispatchMethods(com.android.tools.r8.graph.DexApplication$Builder):359:359 -> a
    127:127:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):197 -> a
    128:128:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):255:255 -> a
    128:128:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    129:129:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    129:129:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):255 -> a
    129:129:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    130:130:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):255:255 -> a
    130:130:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    131:131:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> a
    131:131:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):256 -> a
    131:131:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    132:142:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):257:267 -> a
    132:142:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    143:143:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    143:143:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):267 -> a
    143:143:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    144:147:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):271:274 -> a
    144:147:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    148:152:boolean inherit(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexType):288:292 -> a
    148:152:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):274 -> a
    148:152:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    153:153:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    153:153:boolean inherit(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexType):292 -> a
    153:153:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):274 -> a
    153:153:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    154:154:boolean inherit(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexType):292:292 -> a
    154:154:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):274 -> a
    154:154:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    155:155:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):275:275 -> a
    155:155:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    156:159:java.util.List addInterfacesAndForwardingMethods(com.android.tools.r8.graph.DexProgramClass,java.util.List):303:306 -> a
    156:159:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):275 -> a
    156:159:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    160:160:com.android.tools.r8.graph.DexType dispatchInterfaceTypeFor(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):455:455 -> a
    160:160:java.util.List addInterfacesAndForwardingMethods(com.android.tools.r8.graph.DexProgramClass,java.util.List):307 -> a
    160:160:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):275 -> a
    160:160:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    161:163:java.util.List addInterfacesAndForwardingMethods(com.android.tools.r8.graph.DexProgramClass,java.util.List):307:309 -> a
    161:163:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):275 -> a
    161:163:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    164:167:com.android.tools.r8.graph.DexEncodedMethod createForwardingMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):323:326 -> a
    164:167:java.util.List addInterfacesAndForwardingMethods(com.android.tools.r8.graph.DexProgramClass,java.util.List):311 -> a
    164:167:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):275 -> a
    164:167:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    168:168:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    168:168:com.android.tools.r8.graph.DexEncodedMethod createForwardingMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):327 -> a
    168:168:java.util.List addInterfacesAndForwardingMethods(com.android.tools.r8.graph.DexProgramClass,java.util.List):311 -> a
    168:168:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):275 -> a
    168:168:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    169:169:com.android.tools.r8.graph.DexEncodedMethod createForwardingMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):327:327 -> a
    169:169:java.util.List addInterfacesAndForwardingMethods(com.android.tools.r8.graph.DexProgramClass,java.util.List):311 -> a
    169:169:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):275 -> a
    169:169:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    170:170:com.android.tools.r8.graph.DexEncodedMethod createForwardingMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):326:326 -> a
    170:170:java.util.List addInterfacesAndForwardingMethods(com.android.tools.r8.graph.DexProgramClass,java.util.List):311 -> a
    170:170:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):275 -> a
    170:170:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    171:172:java.util.List addInterfacesAndForwardingMethods(com.android.tools.r8.graph.DexProgramClass,java.util.List):312:313 -> a
    171:172:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):275 -> a
    171:172:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    173:181:void addInterfacesAndForwardingMethods(java.util.concurrent.ExecutorService):275:283 -> a
    173:181:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):199 -> a
    182:188:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):201:207 -> a
    189:189:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    189:189:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):207 -> a
    190:190:java.util.Collection findSynthesizedFrom(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexType):179:179 -> a
    190:190:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):209 -> a
    191:191:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> a
    191:191:java.util.Collection findSynthesizedFrom(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexType):180 -> a
    191:191:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):209 -> a
    192:192:java.util.Collection findSynthesizedFrom(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexType):181:181 -> a
    192:192:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):209 -> a
    193:213:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):210:230 -> a
    214:214:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    214:214:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):230 -> a
    215:218:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):233:236 -> a
    219:219:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    219:219:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):236 -> a
    220:231:void synthesizeUtilityClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):238:249 -> a
    232:232:boolean lambda$synthesizeUtilityClasses$0(com.android.tools.r8.graph.DexProgramClass):239:239 -> a
    233:258:com.android.tools.r8.graph.DexProgramClass synthesizeClassWithUniqueMethod(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod,java.lang.String,boolean):376:401 -> a
    259:262:com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier getChecksumSupplier(com.android.tools.r8.graph.DexEncodedMethod):448:451 -> a
    263:263:long lambda$getChecksumSupplier$1(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):451:451 -> a
    264:264:com.android.tools.r8.graph.DexType dispatchHolderTypeFor(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):459:459 -> a
    265:277:com.android.tools.r8.graph.DexType dispatchTypeFor(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod,java.lang.String):464:476 -> a
    278:296:com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodProvider getMethodProviderOrNull(com.android.tools.r8.graph.DexMethod):480:498 -> a
    1:1:com.android.tools.r8.graph.DexType dispatchInterfaceTypeFor(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):455:455 -> b
com.android.tools.r8.ir.desugar.BackportedMethodRewriter$InvokeRewriter -> com.android.tools.r8.t.c.b$a:
    com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodInvokeRewriter rewriter -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():1769:1769 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodInvokeRewriter):1774:1775 -> <init>
    boolean requiresGenerationOfCode() -> a
    1:2:void rewriteInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):1781:1782 -> a
    3:3:com.android.tools.r8.graph.DexMethod provideMethod(com.android.tools.r8.graph.AppView):1792:1792 -> a
    4:4:com.android.tools.r8.graph.Code generateTemplateMethod(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1797:1797 -> a
com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodGenerator -> com.android.tools.r8.t.c.b$b:
    com.android.tools.r8.ir.desugar.BackportedMethodRewriter$TemplateMethodFactory factory -> b
    com.android.tools.r8.graph.DexMethod generatedMethod -> d
    java.lang.String methodName -> c
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.desugar.BackportedMethodRewriter$TemplateMethodFactory):1808:1808 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.desugar.BackportedMethodRewriter$TemplateMethodFactory,java.lang.String):1812:1814 -> <init>
    boolean requiresGenerationOfCode() -> a
    1:2:void rewriteInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):1820:1821 -> a
    3:3:void rewriteInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):1820:1820 -> a
    4:27:com.android.tools.r8.graph.DexMethod provideMethod(com.android.tools.r8.graph.AppView):1826:1849 -> a
    28:28:com.android.tools.r8.graph.Code generateTemplateMethod(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1855:1855 -> a
com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodInvokeRewriter -> com.android.tools.r8.t.c.b$c:
    void rewrite(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory) -> a
com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodProvider -> com.android.tools.r8.t.c.b$d:
    com.android.tools.r8.graph.DexMethod method -> a
    1:2:void <init>(com.android.tools.r8.graph.DexMethod):1713:1714 -> <init>
    com.android.tools.r8.graph.Code generateTemplateMethod(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod) -> a
    com.android.tools.r8.graph.DexMethod provideMethod(com.android.tools.r8.graph.AppView) -> a
    boolean requiresGenerationOfCode() -> a
    void rewriteInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView) -> a
com.android.tools.r8.ir.desugar.BackportedMethodRewriter$RetargetCoreLibraryMethodProvider -> com.android.tools.r8.t.c.b$e:
    com.android.tools.r8.graph.DexType newHolder -> b
    com.android.tools.r8.graph.DexMethod targetMethod -> c
    boolean isStatic -> d
    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,boolean):1734:1736 -> <init>
    boolean requiresGenerationOfCode() -> a
    1:2:void rewriteInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):1742:1743 -> a
    3:3:void rewriteInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):1742:1742 -> a
    4:10:com.android.tools.r8.graph.DexMethod provideMethod(com.android.tools.r8.graph.AppView):1748:1754 -> a
    11:11:com.android.tools.r8.graph.Code generateTemplateMethod(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1760:1760 -> a
com.android.tools.r8.ir.desugar.BackportedMethodRewriter$RewritableMethods -> com.android.tools.r8.t.c.b$f:
    java.util.Map rewritable -> a
    java.util.Map virtualRewrites -> b
    java.util.Set emulatedDispatchMethods -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():501:501 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.AppView):512:512 -> <init>
    2:44:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.AppView):504:546 -> <init>
    1:1:java.util.Set getEmulatedDispatchMethods():564:564 -> a
    2:2:void visit(java.util.function.Consumer):572:572 -> a
    3:132:void initializeAndroidKMethodProviders(com.android.tools.r8.graph.DexItemFactory):577:706 -> a
    133:133:com.android.tools.r8.graph.Code lambda$initializeJava9MethodProviders$0(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1339:1339 -> a
    134:139:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1639:1644 -> a
    140:140:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    140:140:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1645 -> a
    141:146:void warnMissingRetargetCoreLibraryMember(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):1630:1635 -> a
    141:146:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1647 -> a
    147:147:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1649:1649 -> a
    148:154:java.util.List findDexEncodedMethodsWithName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexClass):1678:1684 -> a
    148:154:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1650 -> a
    155:159:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1651:1655 -> a
    160:160:boolean com.android.tools.r8.graph.DexEncodedMethod.isFinal():294:294 -> a
    160:160:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1658 -> a
    161:161:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1661:1661 -> a
    162:163:void handleEmulateDispatch(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):1689:1690 -> a
    162:163:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1661 -> a
    164:164:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    164:164:void handleEmulateDispatch(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):1690 -> a
    164:164:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1661 -> a
    165:168:void handleEmulateDispatch(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod):1692:1695 -> a
    165:168:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1661 -> a
    169:176:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1662:1669 -> a
    177:177:void initializeRetargetCoreLibraryMembers(com.android.tools.r8.graph.AppView):1667:1667 -> a
    178:179:void addProvider(com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodProvider):1700:1701 -> a
    180:180:com.android.tools.r8.ir.desugar.BackportedMethodRewriter$MethodProvider getProvider(com.android.tools.r8.graph.DexMethod):1705:1705 -> a
    1:6:boolean matchesVirtualRewrite(com.android.tools.r8.graph.DexMethod):551:556 -> b
    7:7:boolean isEmpty():568:568 -> b
    8:346:void initializeAndroidNMethodProviders(com.android.tools.r8.graph.DexItemFactory):712:1050 -> b
    347:347:com.android.tools.r8.graph.Code lambda$initializeJava9MethodProviders$1(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1361:1361 -> b
    1:6:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.CollectionMethodGenerators.generateMapOf(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int):74:79 -> c
    1:6:com.android.tools.r8.graph.Code lambda$initializeJava9MethodProviders$2(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1382 -> c
    7:40:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.CollectionMethodGenerators.generateMapOf(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int):77:110 -> c
    7:40:com.android.tools.r8.graph.Code lambda$initializeJava9MethodProviders$2(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1382 -> c
    41:41:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.CollectionMethodGenerators.generateMapOf(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int):105:105 -> c
    41:41:com.android.tools.r8.graph.Code lambda$initializeJava9MethodProviders$2(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1382 -> c
    42:60:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.CollectionMethodGenerators.generateMapOf(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int):102:120 -> c
    42:60:com.android.tools.r8.graph.Code lambda$initializeJava9MethodProviders$2(int,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1382 -> c
    61:218:void initializeAndroidOMethodProviders(com.android.tools.r8.graph.DexItemFactory):1057:1214 -> c
    1:29:void initializeJava10MethodProviders(com.android.tools.r8.graph.DexItemFactory):1399:1427 -> d
    1:26:void initializeJava10OptionalMethodProviders(com.android.tools.r8.graph.DexItemFactory):1561:1586 -> e
    1:50:void initializeJava11MethodProviders(com.android.tools.r8.graph.DexItemFactory):1434:1483 -> f
    1:20:void initializeJava11OptionalMethodProviders(com.android.tools.r8.graph.DexItemFactory):1592:1611 -> g
    1:116:void initializeJava9MethodProviders(com.android.tools.r8.graph.DexItemFactory):1221:1336 -> h
    117:142:void initializeJava9MethodProviders(com.android.tools.r8.graph.DexItemFactory):1333:1358 -> h
    143:167:void initializeJava9MethodProviders(com.android.tools.r8.graph.DexItemFactory):1355:1379 -> h
    168:186:void initializeJava9MethodProviders(com.android.tools.r8.graph.DexItemFactory):1376:1394 -> h
    1:65:void initializeJava9OptionalMethodProviders(com.android.tools.r8.graph.DexItemFactory):1490:1554 -> i
    1:7:void initializeStreamMethodProviders(com.android.tools.r8.graph.DexItemFactory):1618:1624 -> j
com.android.tools.r8.ir.desugar.BackportedMethodRewriter$StatifyingMethodGenerator -> com.android.tools.r8.t.c.b$g:
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.DexType receiverType -> e
    1:1:void <clinit>():1867:1867 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.desugar.BackportedMethodRewriter$TemplateMethodFactory,java.lang.String,com.android.tools.r8.graph.DexType):1873:1874 -> <init>
    1:8:com.android.tools.r8.graph.DexMethod provideMethod(com.android.tools.r8.graph.AppView):1879:1886 -> a
com.android.tools.r8.ir.desugar.BackportedMethodRewriter$TemplateMethodFactory -> com.android.tools.r8.t.c.b$h:
    com.android.tools.r8.graph.Code create(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod) -> a
com.android.tools.r8.ir.desugar.ClassProcessor -> com.android.tools.r8.t.c.g:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
    com.android.tools.r8.graph.AppView appView -> a
    java.util.function.Consumer newSynthesizedMethodConsumer -> d
    boolean $assertionsDisabled -> k
    com.android.tools.r8.utils.MethodSignatureEquivalence equivalence -> e
    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter rewriter -> c
    java.util.Map interfaceInfo -> i
    boolean needsLibraryInfo -> f
    java.util.Map newSyntheticMethods -> j
    java.util.Map classInfo -> g
    java.util.Map libraryClassInfo -> h
    1:1:void <clinit>():47:47 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter,java.util.function.Consumer):201:201 -> <init>
    2:32:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter,java.util.function.Consumer):182:212 -> <init>
    1:5:void addSyntheticMethods():228:232 -> a
    6:10:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):268:272 -> a
    11:20:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):287:296 -> a
    11:20:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
    21:21:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    21:21:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):296 -> a
    21:21:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
    22:22:boolean needsLibraryInfo():216:216 -> a
    22:22:boolean dontRewrite(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):346 -> a
    22:22:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):298 -> a
    22:22:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
    23:23:boolean dontRewrite(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):346:346 -> a
    23:23:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):298 -> a
    23:23:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
    24:31:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):303:310 -> a
    24:31:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
    32:32:boolean isRetargetMethod(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedMethod):335:335 -> a
    32:32:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):314 -> a
    32:32:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
    33:33:boolean needsLibraryInfo():216:216 -> a
    33:33:boolean isRetargetMethod(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedMethod):335 -> a
    33:33:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):314 -> a
    33:33:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
    34:36:boolean isRetargetMethod(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedMethod):335:337 -> a
    34:36:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):314 -> a
    34:36:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
    37:37:boolean com.android.tools.r8.graph.DexEncodedMethod.isFinal():294:294 -> a
    37:37:boolean isRetargetMethod(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedMethod):338 -> a
    37:37:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):314 -> a
    37:37:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
    38:38:boolean isRetargetMethod(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexEncodedMethod):341:341 -> a
    38:38:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):314 -> a
    38:38:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
    39:52:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):315:328 -> a
    39:52:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
    53:53:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    53:53:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):328 -> a
    53:53:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
    54:54:void resolveForwardForSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,java.util.function.BiConsumer):329:329 -> a
    54:54:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):270 -> a
    55:55:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo computeClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):280:280 -> a
    56:57:void lambda$computeClassInfo$0(com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.com.google.common.collect.ImmutableList$Builder,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):274:275 -> a
    58:73:void addForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):377:392 -> a
    58:73:void lambda$computeClassInfo$0(com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.com.google.common.collect.ImmutableList$Builder,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):276 -> a
    74:74:void addSyntheticMethod(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):352:352 -> a
    75:75:java.util.List lambda$addSyntheticMethod$1(com.android.tools.r8.graph.DexProgramClass):352:352 -> a
    76:85:void addICCEThrowingMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):356:365 -> a
    86:86:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    86:86:void addICCEThrowingMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):365 -> a
    87:87:void addICCEThrowingMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass):371:371 -> a
    88:88:com.android.tools.r8.ir.conversion.SourceCode lambda$addICCEThrowingMethod$2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):368:368 -> a
    89:94:com.android.tools.r8.graph.DexClass definitionOrNull(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):399:404 -> a
    95:99:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):416:420 -> a
    100:101:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):426:427 -> a
    100:101:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo lambda$visitClassInfo$3(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):420 -> a
    102:103:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfo(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):411:412 -> a
    102:103:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):427 -> a
    102:103:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo lambda$visitClassInfo$3(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):420 -> a
    104:105:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):428:429 -> a
    104:105:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo lambda$visitClassInfo$3(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):420 -> a
    106:106:boolean com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo.isEmpty():116:116 -> a
    106:106:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):429 -> a
    106:106:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo lambda$visitClassInfo$3(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):420 -> a
    107:107:boolean com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures.isEmpty():85:85 -> a
    107:107:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):429 -> a
    107:107:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo lambda$visitClassInfo$3(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):420 -> a
    108:108:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):429:429 -> a
    108:108:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo lambda$visitClassInfo$3(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):420 -> a
    109:109:boolean com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo.isEmpty():116:116 -> a
    109:109:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):429 -> a
    109:109:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo lambda$visitClassInfo$3(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):420 -> a
    110:113:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo visitClassInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):430:433 -> a
    110:113:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo lambda$visitClassInfo$3(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):420 -> a
    114:118:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitLibraryClassInfo(com.android.tools.r8.graph.DexType):438:442 -> a
    119:122:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitLibraryClassInfo(com.android.tools.r8.graph.DexClass):446:449 -> a
    123:126:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitLibraryClassInfoRaw(com.android.tools.r8.graph.DexLibraryClass):453:456 -> a
    1:1:boolean ignoreLibraryInfo():220:220 -> b
    2:2:void processClass(com.android.tools.r8.graph.DexProgramClass):224:224 -> b
    3:4:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitInterfaceInfo(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):462:463 -> b
    5:8:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):467:470 -> b
    9:12:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitInterfaceInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):474:477 -> b
    9:12:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures lambda$visitInterfaceInfo$4(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):470 -> b
    13:16:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures computeInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):239:242 -> b
    13:16:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitInterfaceInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):479 -> b
    13:16:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures lambda$visitInterfaceInfo$4(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):470 -> b
    17:17:boolean needsLibraryInfo():216:216 -> b
    17:17:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures computeInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):242 -> b
    17:17:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitInterfaceInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):479 -> b
    17:17:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures lambda$visitInterfaceInfo$4(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):470 -> b
    18:27:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures computeInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):242:251 -> b
    18:27:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures visitInterfaceInfoRaw(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext):479 -> b
    18:27:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures lambda$visitInterfaceInfo$4(com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext,com.android.tools.r8.graph.DexClass):470 -> b
com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo -> com.android.tools.r8.t.c.c:
    com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo parent -> a
    com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo EMPTY -> c
    com.android.tools.r8.com.google.common.collect.ImmutableList forwardedMethodTargets -> b
    1:1:void <clinit>():94:94 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.com.google.common.collect.ImmutableList):103:105 -> <init>
    1:3:com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo create(com.android.tools.r8.ir.desugar.ClassProcessor$ClassInfo,com.android.tools.r8.com.google.common.collect.ImmutableList):110:112 -> a
    4:5:boolean isTargetedByForwards(com.android.tools.r8.graph.DexEncodedMethod):120:121 -> a
com.android.tools.r8.ir.desugar.ClassProcessor$LibraryReportingContext -> com.android.tools.r8.t.c.d:
    com.android.tools.r8.ir.desugar.ClassProcessor$LibraryReportingContext LIBRARY_CONTEXT -> c
    1:1:void <clinit>():156:156 -> <clinit>
    1:1:void <init>():159:159 -> <init>
    com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext forClass(com.android.tools.r8.graph.DexClass) -> a
    void reportMissingType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter) -> a
    1:1:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    1:1:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):169 -> a
com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures -> com.android.tools.r8.t.c.e:
    java.util.Set signatures -> a
    com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures EMPTY -> b
    1:1:void <clinit>():52:52 -> <clinit>
    1:2:void <init>(java.util.Set):60:61 -> <init>
    1:1:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures create(java.util.Set):55:55 -> a
    2:2:boolean isEmpty():85:85 -> a
    2:2:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures merge(com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):65 -> a
    3:3:boolean isEmpty():85:85 -> a
    3:3:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures merge(com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):68 -> a
    4:6:com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures merge(com.android.tools.r8.ir.desugar.ClassProcessor$MethodSignatures):71:73 -> a
com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext -> com.android.tools.r8.t.c.f:
    com.android.tools.r8.graph.DexClass directSubClass -> a
    com.android.tools.r8.graph.DexProgramClass closestProgramSubClass -> b
    1:3:void <init>(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass):131:133 -> <init>
    1:5:com.android.tools.r8.ir.desugar.ClassProcessor$ReportingContext forClass(com.android.tools.r8.graph.DexClass):137:141 -> a
    6:6:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):145:145 -> a
    7:7:void reportMissingType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter):149:149 -> a
com.android.tools.r8.ir.desugar.CovariantReturnTypeAnnotationTransformer -> com.android.tools.r8.t.c.h:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.ir.conversion.IRConverter converter -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():50:50 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexItemFactory):54:56 -> <init>
    1:3:void process(com.android.tools.r8.graph.DexApplication$Builder):61:63 -> a
    4:6:void buildCovariantReturnTypeMethodsForClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):109:111 -> a
    4:6:void process(com.android.tools.r8.graph.DexApplication$Builder):65 -> a
    7:7:void buildCovariantReturnTypeMethodsForMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):131:131 -> a
    7:7:void buildCovariantReturnTypeMethodsForClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):112 -> a
    7:7:void process(com.android.tools.r8.graph.DexApplication$Builder):65 -> a
    8:11:java.util.Set getCovariantReturnTypes(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):183:186 -> a
    8:11:void buildCovariantReturnTypeMethodsForMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):132 -> a
    8:11:void buildCovariantReturnTypeMethodsForClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):112 -> a
    8:11:void process(com.android.tools.r8.graph.DexApplication$Builder):65 -> a
    12:15:void buildCovariantReturnTypeMethodsForMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):132:135 -> a
    12:15:void buildCovariantReturnTypeMethodsForClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):112 -> a
    12:15:void process(com.android.tools.r8.graph.DexApplication$Builder):65 -> a
    16:23:void process(com.android.tools.r8.graph.DexApplication$Builder):67:74 -> a
    24:24:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):84:84 -> a
    25:26:boolean hasVirtualMethodWithSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):258:259 -> a
    25:26:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):85 -> a
    27:27:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):86:86 -> a
    28:28:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> a
    28:28:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):90 -> a
    29:29:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):90:90 -> a
    30:30:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):87:87 -> a
    31:31:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    31:31:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):87 -> a
    32:32:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    32:32:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    32:32:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):87 -> a
    33:45:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):87:99 -> a
    46:47:boolean methodHasCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexEncodedMethod):118:119 -> a
    48:68:com.android.tools.r8.graph.DexEncodedMethod buildCovariantReturnTypeMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):146:166 -> a
    69:69:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    69:69:com.android.tools.r8.graph.DexEncodedMethod buildCovariantReturnTypeMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):166 -> a
    70:70:com.android.tools.r8.graph.DexEncodedMethod buildCovariantReturnTypeMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):170:170 -> a
    71:71:boolean lambda$buildCovariantReturnTypeMethod$1(com.android.tools.r8.graph.DexAnnotation):165:165 -> a
    72:87:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):198:213 -> a
    88:92:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):205:209 -> a
    93:93:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):206:206 -> a
    94:94:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    94:94:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):206 -> a
    95:121:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):206:232 -> a
    122:126:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):220:224 -> a
    127:127:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):221:221 -> a
    128:128:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    128:128:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):221 -> a
    129:148:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):221:240 -> a
    149:149:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> a
    149:149:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):244 -> a
    150:150:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):244:244 -> a
    151:151:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):241:241 -> a
    152:152:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    152:152:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):241 -> a
    153:153:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):241:241 -> a
    154:154:boolean isCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):249:249 -> a
    155:155:boolean isCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):253:253 -> a
    155:155:boolean isCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):249 -> a
    156:156:boolean isCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):253:253 -> a
    1:1:boolean lambda$updateClass$0(com.android.tools.r8.graph.DexAnnotation):96:96 -> b
com.android.tools.r8.ir.desugar.D8NestBasedAccessDesugaring -> com.android.tools.r8.t.c.i:
    boolean $assertionsDisabled -> i
    java.util.Map metNestHosts -> h
    1:1:void <clinit>():40:40 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):47:47 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.AppView):44:44 -> <init>
    1:1:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):52:52 -> a
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    2:2:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):52 -> a
    3:19:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):53:69 -> a
    20:20:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    20:20:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):69 -> a
    21:31:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):71:81 -> a
    32:32:void com.android.tools.r8.ir.code.InvokeDirect.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):37:37 -> a
    32:32:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):81 -> a
    33:37:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):80:84 -> a
    38:45:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):83:90 -> a
    46:46:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):180:180 -> a
    46:46:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):90 -> a
    47:56:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):91:100 -> a
    57:57:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):99:99 -> a
    58:60:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):93:95 -> a
    61:61:void rewriteNestBasedAccesses(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):94:94 -> a
    62:66:void processNestsConcurrently(java.util.concurrent.ExecutorService):109:113 -> a
    62:66:void desugarNestBasedAccess(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.IRConverter):142 -> a
    67:69:void addDeferredBridges():117:119 -> a
    67:69:void desugarNestBasedAccess(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.IRConverter):143 -> a
    70:70:void desugarNestBasedAccess(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.IRConverter):144:144 -> a
    71:75:void optimizeDeferredBridgesConcurrently(java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.IRConverter):132:136 -> a
    71:75:void desugarNestBasedAccess(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.IRConverter):145 -> a
    76:79:void addDeferredBridges(java.util.Collection):123:126 -> a
    80:80:boolean shouldProcessClassInNest(com.android.tools.r8.graph.DexClass,java.util.List):151:151 -> a
    81:81:void reportIncompleteNest(java.util.List):161:161 -> a
    1:1:void reportMissingNestHost(com.android.tools.r8.graph.DexClass):156:156 -> d
com.android.tools.r8.ir.desugar.DefaultMethodsHelper -> com.android.tools.r8.t.c.k:
    java.util.Set candidates -> a
    java.util.Set hidden -> b
    1:5:void <init>():17:21 -> <init>
    1:2:void merge(com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection):60:61 -> a
    3:5:void hideMatches(com.android.tools.r8.graph.DexMethod):65:67 -> a
    6:6:boolean com.android.tools.r8.graph.DexMethod.match(com.android.tools.r8.graph.DexEncodedMethod):157:157 -> a
    6:6:void hideMatches(com.android.tools.r8.graph.DexMethod):68 -> a
    7:8:void hideMatches(com.android.tools.r8.graph.DexMethod):69:70 -> a
    9:9:boolean com.android.tools.r8.graph.DexMethod.match(com.android.tools.r8.graph.DexEncodedMethod):157:157 -> a
    9:9:void hideMatches(com.android.tools.r8.graph.DexMethod):68 -> a
    10:10:void addDefaultMethod(com.android.tools.r8.graph.DexEncodedMethod):76:76 -> a
    11:13:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection wrapInCollection():81:83 -> a
com.android.tools.r8.ir.desugar.DefaultMethodsHelper$1 -> com.android.tools.r8.t.c.j:
com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection -> com.android.tools.r8.t.c.k$a:
    java.util.List hidden -> b
    java.util.List live -> a
    com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection EMPTY -> c
    1:2:void <clinit>():29:30 -> <clinit>
    1:1:void <init>(java.util.List,java.util.List,com.android.tools.r8.ir.desugar.DefaultMethodsHelper$1):28:28 -> <init>
    2:4:void <init>(java.util.List,java.util.List):37:39 -> <init>
    1:1:java.util.List access$000(com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection):28:28 -> a
    2:4:com.android.tools.r8.graph.DexMethod getSingleCandidate(com.android.tools.r8.graph.DexMethod):46:48 -> a
    1:1:java.util.List access$100(com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection):28:28 -> b
com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter -> com.android.tools.r8.t.c.l:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Map callBackMethods -> d
    com.android.tools.r8.ir.desugar.DesugaredLibraryWrapperSynthesizer wrapperSynthesizor -> c
    java.util.Set trackedCallBackAPIs -> e
    java.util.Set trackedAPIs -> f
    boolean $assertionsDisabled -> g
    1:1:void <clinit>():60:60 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):71:71 -> <init>
    2:15:void <init>(com.android.tools.r8.graph.AppView):67:80 -> <init>
    1:1:void desugar(com.android.tools.r8.ir.code.IRCode):86:86 -> a
    2:15:void generateCallBackIfNeeded(com.android.tools.r8.ir.code.IRCode):129:142 -> a
    2:15:void desugar(com.android.tools.r8.ir.code.IRCode):90 -> a
    16:16:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    16:16:void generateCallBackIfNeeded(com.android.tools.r8.ir.code.IRCode):142 -> a
    16:16:void desugar(com.android.tools.r8.ir.code.IRCode):90 -> a
    17:18:void generateCallBackIfNeeded(com.android.tools.r8.ir.code.IRCode):146:147 -> a
    17:18:void desugar(com.android.tools.r8.ir.code.IRCode):90 -> a
    19:22:void generateCallBack(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):186:189 -> a
    19:22:void generateCallBackIfNeeded(com.android.tools.r8.ir.code.IRCode):147 -> a
    19:22:void desugar(com.android.tools.r8.ir.code.IRCode):90 -> a
    23:23:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    23:23:void generateCallBack(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):189 -> a
    23:23:void generateCallBackIfNeeded(com.android.tools.r8.ir.code.IRCode):147 -> a
    23:23:void desugar(com.android.tools.r8.ir.code.IRCode):90 -> a
    24:25:void generateCallBack(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):197:198 -> a
    24:25:void generateCallBackIfNeeded(com.android.tools.r8.ir.code.IRCode):147 -> a
    24:25:void desugar(com.android.tools.r8.ir.code.IRCode):90 -> a
    26:28:void addCallBackSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):204:206 -> a
    26:28:void generateCallBack(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):200 -> a
    26:28:void generateCallBackIfNeeded(com.android.tools.r8.ir.code.IRCode):147 -> a
    26:28:void desugar(com.android.tools.r8.ir.code.IRCode):90 -> a
    29:45:void desugar(com.android.tools.r8.ir.code.IRCode):92:108 -> a
    46:46:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    46:46:void desugar(com.android.tools.r8.ir.code.IRCode):108 -> a
    47:52:void desugar(com.android.tools.r8.ir.code.IRCode):109:114 -> a
    53:67:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):304:318 -> a
    53:67:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    68:69:com.android.tools.r8.ir.code.Instruction createReturnConversionAndReplaceUses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):435:436 -> a
    68:69:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):321 -> a
    68:69:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    70:70:com.android.tools.r8.ir.code.Value createConversionValue(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexType):459:459 -> a
    70:70:com.android.tools.r8.ir.code.Instruction createReturnConversionAndReplaceUses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):436 -> a
    70:70:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):321 -> a
    70:70:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    71:71:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    71:71:com.android.tools.r8.ir.code.Value createConversionValue(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexType):459 -> a
    71:71:com.android.tools.r8.ir.code.Instruction createReturnConversionAndReplaceUses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):436 -> a
    71:71:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):321 -> a
    71:71:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    72:74:com.android.tools.r8.ir.code.Instruction createReturnConversionAndReplaceUses(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):437:439 -> a
    72:74:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):321 -> a
    72:74:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    75:98:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):324:347 -> a
    75:98:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    99:102:com.android.tools.r8.ir.code.Instruction createParameterConversion(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):426:429 -> a
    99:102:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):349 -> a
    99:102:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    103:103:com.android.tools.r8.ir.code.Value createConversionValue(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexType):459:459 -> a
    103:103:com.android.tools.r8.ir.code.Instruction createParameterConversion(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):429 -> a
    103:103:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):349 -> a
    103:103:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    104:104:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    104:104:com.android.tools.r8.ir.code.Value createConversionValue(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexType):459 -> a
    104:104:com.android.tools.r8.ir.code.Instruction createParameterConversion(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):429 -> a
    104:104:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):349 -> a
    104:104:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    105:105:com.android.tools.r8.ir.code.Instruction createParameterConversion(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):430:430 -> a
    105:105:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):349 -> a
    105:105:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    106:127:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):348:369 -> a
    106:127:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    128:128:com.android.tools.r8.ir.code.Invoke com.android.tools.r8.ir.code.Invoke.create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):66:66 -> a
    128:128:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):365 -> a
    128:128:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    129:130:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):371:372 -> a
    129:130:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    131:151:void rewriteLibraryInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,java.util.ListIterator):371:391 -> a
    131:151:void desugar(com.android.tools.r8.ir.code.IRCode):115 -> a
    152:161:boolean overridesLibraryMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):153:162 -> a
    162:162:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    162:162:boolean overridesLibraryMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):162 -> a
    163:167:boolean overridesLibraryMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):166:170 -> a
    168:168:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    168:168:boolean overridesLibraryMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):170 -> a
    169:172:boolean overridesLibraryMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):173:176 -> a
    173:187:com.android.tools.r8.graph.DexMethod methodWithVivifiedTypeInSignature(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):211:225 -> a
    188:194:void generateWrappers(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):231:237 -> a
    195:206:java.util.Set generateCallbackMethods(java.util.Set,com.android.tools.r8.graph.DexClass):246:257 -> a
    195:206:void generateWrappers(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):237 -> a
    207:210:void generateWrappers(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):238:241 -> a
    211:217:void generateTrackDesugaredAPIWarnings(java.util.Set,java.lang.String):263:269 -> a
    218:222:void warnInvalidInvoke(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,java.lang.String):273:277 -> a
    223:225:com.android.tools.r8.graph.DexType vivifiedTypeFor(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):293:295 -> a
    226:243:void splitIfCatchHandlers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,java.util.ListIterator):400:417 -> a
    244:254:com.android.tools.r8.graph.DexMethod createConversionMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):445:455 -> a
    255:255:com.android.tools.r8.graph.DexMethod createConversionMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):454:454 -> a
    256:257:boolean canConvert(com.android.tools.r8.graph.DexType):463:464 -> a
com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration -> com.android.tools.r8.t.c.m:
    java.util.Map rewritePrefix -> d
    java.util.List extraKeepRules -> j
    java.util.List dontRewriteInvocation -> i
    java.lang.String synthesizedLibraryClassesPackagePrefix -> c
    java.util.Map emulateLibraryInterface -> e
    boolean libraryCompilation -> b
    java.util.Map retargetCoreLibMember -> f
    java.util.Map backportCoreLibraryMember -> g
    com.android.tools.r8.utils.AndroidApiLevel requiredCompilationAPILevel -> a
    java.util.Map customConversions -> h
    1:11:void <init>(com.android.tools.r8.utils.AndroidApiLevel,boolean,java.lang.String,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.List,java.util.List):86:96 -> <init>
    1:1:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder builder(com.android.tools.r8.graph.DexItemFactory):44:44 -> a
    2:12:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration withOnlyRewritePrefixForTesting(java.util.Map):49:59 -> a
    13:23:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration empty():63:73 -> a
    24:24:com.android.tools.r8.ir.desugar.PrefixRewritingMapper createPrefixRewritingMapper(com.android.tools.r8.utils.InternalOptions):100:100 -> a
    25:25:com.android.tools.r8.ir.desugar.PrefixRewritingMapper com.android.tools.r8.ir.desugar.PrefixRewritingMapper.empty() -> a
    25:25:com.android.tools.r8.ir.desugar.PrefixRewritingMapper createPrefixRewritingMapper(com.android.tools.r8.utils.InternalOptions):101 -> a
    26:26:com.android.tools.r8.ir.desugar.PrefixRewritingMapper createPrefixRewritingMapper(com.android.tools.r8.utils.InternalOptions):102:102 -> a
    27:27:java.lang.String getSynthesizedLibraryClassesPackagePrefix(com.android.tools.r8.graph.AppView):114:114 -> a
    28:28:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    28:28:java.lang.String getSynthesizedLibraryClassesPackagePrefix(com.android.tools.r8.graph.AppView):114 -> a
    29:29:java.lang.String getSynthesizedLibraryClassesPackagePrefix(com.android.tools.r8.graph.AppView):115:115 -> a
    30:36:com.android.tools.r8.graph.DexMethod retargetMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.AppView):133:139 -> a
    37:37:com.android.tools.r8.graph.DexMethod retargetMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.AppView):137:137 -> a
    1:1:java.util.Map getBackportCoreLibraryMember():150:150 -> b
    1:1:java.util.Map getCustomConversions():154:154 -> c
    1:1:java.util.List getDontRewriteInvocation():158:158 -> d
    1:1:java.util.Map getEmulateLibraryInterface():128:128 -> e
    1:1:java.util.List getExtraKeepRules():162:162 -> f
    1:1:com.android.tools.r8.utils.AndroidApiLevel getRequiredCompilationApiLevel():106:106 -> g
    1:1:java.util.Map getRetargetCoreLibMember():146:146 -> h
    1:1:java.util.Map getRewritePrefix():124:124 -> i
    1:1:java.lang.String getSynthesizedLibraryClassesPackagePrefix():120:120 -> j
    1:1:boolean isLibraryCompilation():110:110 -> k
com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder -> com.android.tools.r8.t.c.m$a:
    boolean $assertionsDisabled -> l
    java.util.Map customConversions -> i
    java.util.List dontRewriteInvocation -> j
    com.android.tools.r8.utils.AndroidApiLevel requiredCompilationAPILevel -> b
    java.util.Map rewritePrefix -> e
    java.util.Map emulateLibraryInterface -> f
    boolean libraryCompilation -> c
    java.util.Map retargetCoreLibMember -> g
    com.android.tools.r8.graph.DexItemFactory factory -> a
    java.lang.String synthesizedLibraryClassesPackagePrefix -> d
    java.util.Map backportCoreLibraryMember -> h
    java.util.List extraKeepRules -> k
    1:1:void <clinit>():165:165 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory):181:181 -> <init>
    2:14:void <init>(com.android.tools.r8.graph.DexItemFactory):170:182 -> <init>
    1:1:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder setRequiredCompilationAPILevel(com.android.tools.r8.utils.AndroidApiLevel):192:192 -> a
    2:2:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder setExtraKeepRules(java.util.List):207:207 -> a
    3:7:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder addDontRewriteInvocation(java.lang.String):251:255 -> a
    8:8:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder addDontRewriteInvocation(java.lang.String):252:252 -> a
    9:9:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):269:269 -> a
    9:9:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putBackportCoreLibraryMember(java.lang.String,java.lang.String):244 -> a
    10:10:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):269:269 -> a
    10:10:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putBackportCoreLibraryMember(java.lang.String,java.lang.String):245 -> a
    11:11:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putBackportCoreLibraryMember(java.lang.String,java.lang.String):246:246 -> a
    12:22:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration build():273:283 -> a
    1:2:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder setSynthesizedLibraryClassesPackagePrefix(java.lang.String):186:187 -> b
    3:3:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder setLibraryCompilation():202:202 -> b
    4:4:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):269:269 -> b
    4:4:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putCustomConversion(java.lang.String,java.lang.String):225 -> b
    5:5:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):269:269 -> b
    5:5:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putCustomConversion(java.lang.String,java.lang.String):226 -> b
    6:6:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putCustomConversion(java.lang.String,java.lang.String):227:227 -> b
    1:1:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder setProgramCompilation():197:197 -> c
    2:2:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):269:269 -> c
    2:2:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putEmulateLibraryInterface(java.lang.String,java.lang.String):218 -> c
    3:3:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):269:269 -> c
    3:3:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putEmulateLibraryInterface(java.lang.String,java.lang.String):219 -> c
    4:4:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putEmulateLibraryInterface(java.lang.String,java.lang.String):220:220 -> c
    5:5:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):269:269 -> c
    1:5:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putRetargetCoreLibMember(java.lang.String,java.lang.String):232:236 -> d
    6:6:com.android.tools.r8.graph.DexType stringClassToDexType(java.lang.String):269:269 -> d
    6:6:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putRetargetCoreLibMember(java.lang.String,java.lang.String):237 -> d
    7:8:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putRetargetCoreLibMember(java.lang.String,java.lang.String):238:239 -> d
    1:1:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder putRewritePrefix(java.lang.String,java.lang.String):212:212 -> e
    1:3:int sharpIndex(java.lang.String,java.lang.String):260:262 -> f
    4:4:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> f
    4:4:int sharpIndex(java.lang.String,java.lang.String):262 -> f
    5:5:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> f
    5:5:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> f
    5:5:int sharpIndex(java.lang.String,java.lang.String):262 -> f
    6:6:int sharpIndex(java.lang.String,java.lang.String):262:262 -> f
com.android.tools.r8.ir.desugar.DesugaredLibraryConfigurationParser -> com.android.tools.r8.t.c.n:
    int minAPILevel -> d
    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration$Builder configurationBuilder -> a
    com.android.tools.r8.utils.Reporter reporter -> b
    boolean libraryCompilation -> c
    1:9:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter,boolean,int):33:41 -> <init>
    1:26:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):48:73 -> a
    27:39:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):72:84 -> a
    40:52:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):83:95 -> a
    53:57:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):109:113 -> a
    53:57:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):95 -> a
    58:66:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):112:120 -> a
    58:66:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):95 -> a
    67:75:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):119:127 -> a
    67:75:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):95 -> a
    76:90:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):126:140 -> a
    76:90:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):95 -> a
    91:98:void parseFlags(com.android.tools.r8.com.google.gson.JsonObject):139:146 -> a
    91:98:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):95 -> a
    99:107:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):97:105 -> a
    108:108:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):58:58 -> a
    109:111:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
    109:111:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):58 -> a
    112:112:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):50:50 -> a
    113:115:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
    113:115:com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration parse(com.android.tools.r8.StringResource):50 -> a
com.android.tools.r8.ir.desugar.DesugaredLibraryWrapperSynthesizer -> com.android.tools.r8.t.c.o:
    java.util.Map typeWrappers -> b
    java.util.Map vivifiedTypeWrappers -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.DexItemFactory factory -> f
    java.util.Set invalidWrappers -> d
    java.util.Set generatedWrappers -> e
    boolean $assertionsDisabled -> h
    com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter converter -> g
    1:1:void <clinit>():94:94 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter):114:114 -> <init>
    2:18:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter):101:117 -> <init>
    1:1:boolean canGenerateWrapper(com.android.tools.r8.graph.DexType):133:133 -> a
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    2:2:boolean canGenerateWrapper(com.android.tools.r8.graph.DexType):133 -> a
    3:3:boolean canGenerateWrapper(com.android.tools.r8.graph.DexType):137:137 -> a
    4:4:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    4:4:boolean canGenerateWrapper(com.android.tools.r8.graph.DexType):137 -> a
    5:18:com.android.tools.r8.graph.DexType getWrapper(com.android.tools.r8.graph.DexType,java.lang.String,java.util.Map,java.util.function.BiFunction):177:190 -> a
    19:19:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    19:19:com.android.tools.r8.graph.DexType getWrapper(com.android.tools.r8.graph.DexType,java.lang.String,java.util.Map,java.util.function.BiFunction):190 -> a
    20:21:com.android.tools.r8.graph.DexType getWrapper(com.android.tools.r8.graph.DexType,java.lang.String,java.util.Map,java.util.function.BiFunction):192:193 -> a
    22:22:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    22:22:com.android.tools.r8.graph.DexType getWrapper(com.android.tools.r8.graph.DexType,java.lang.String,java.util.Map,java.util.function.BiFunction):193 -> a
    23:35:com.android.tools.r8.graph.DexType getWrapper(com.android.tools.r8.graph.DexType,java.lang.String,java.util.Map,java.util.function.BiFunction):192:204 -> a
    36:37:com.android.tools.r8.graph.DexType getWrapper(com.android.tools.r8.graph.DexType,java.lang.String,java.util.Map,java.util.function.BiFunction):195:196 -> a
    38:40:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
    38:40:com.android.tools.r8.graph.DexType getWrapper(com.android.tools.r8.graph.DexType,java.lang.String,java.util.Map,java.util.function.BiFunction):198 -> a
    41:41:com.android.tools.r8.graph.DexType getWrapper(com.android.tools.r8.graph.DexType,java.lang.String,java.util.Map,java.util.function.BiFunction):206:206 -> a
    42:42:com.android.tools.r8.utils.Pair lambda$getWrapper$0(com.android.tools.r8.utils.Box,com.android.tools.r8.graph.DexType,java.lang.String,com.android.tools.r8.graph.DexType):183:183 -> a
    43:52:com.android.tools.r8.graph.DexType createWrapperType(com.android.tools.r8.graph.DexType,java.lang.String):153:162 -> a
    43:52:com.android.tools.r8.utils.Pair lambda$getWrapper$0(com.android.tools.r8.utils.Box,com.android.tools.r8.graph.DexType,java.lang.String,com.android.tools.r8.graph.DexType):184 -> a
    53:53:com.android.tools.r8.graph.DexType createWrapperType(com.android.tools.r8.graph.DexType,java.lang.String):158:158 -> a
    53:53:com.android.tools.r8.utils.Pair lambda$getWrapper$0(com.android.tools.r8.utils.Box,com.android.tools.r8.graph.DexType,java.lang.String,com.android.tools.r8.graph.DexType):184 -> a
    54:55:com.android.tools.r8.utils.Pair lambda$getWrapper$0(com.android.tools.r8.utils.Box,com.android.tools.r8.graph.DexType,java.lang.String,com.android.tools.r8.graph.DexType):185:186 -> a
    56:56:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):214:214 -> a
    57:61:com.android.tools.r8.graph.DexEncodedField synthesizeWrappedValueField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):450:454 -> a
    57:61:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):215 -> a
    62:62:com.android.tools.r8.graph.DexType vivifiedTypeFor(com.android.tools.r8.graph.DexType):210:210 -> a
    62:62:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):217 -> a
    63:77:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):330:344 -> a
    63:77:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):219 -> a
    78:78:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    78:78:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):344 -> a
    78:78:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):219 -> a
    79:79:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):345:345 -> a
    79:79:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):219 -> a
    80:80:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    80:80:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):345 -> a
    80:80:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):219 -> a
    81:84:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):345:348 -> a
    81:84:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):219 -> a
    85:85:boolean com.android.tools.r8.graph.DexEncodedMethod.isFinal():294:294 -> a
    85:85:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):351 -> a
    85:85:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):219 -> a
    86:97:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):352:363 -> a
    86:97:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):219 -> a
    98:103:com.android.tools.r8.graph.DexEncodedMethod[] finalizeWrapperMethods(java.util.List,java.util.Set):370:375 -> a
    98:103:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):365 -> a
    98:103:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):219 -> a
    104:104:com.android.tools.r8.graph.DexProgramClass generateTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):216:216 -> a
    105:122:com.android.tools.r8.graph.DexProgramClass synthesizeWrapper(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedField):240:257 -> a
    123:126:com.android.tools.r8.graph.DexEncodedMethod synthesizeConstructor(com.android.tools.r8.graph.DexField):458:461 -> a
    123:126:com.android.tools.r8.graph.DexProgramClass synthesizeWrapper(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedField):261 -> a
    127:135:com.android.tools.r8.graph.DexEncodedMethod synthesizeConstructor(com.android.tools.r8.graph.DexField):459:467 -> a
    127:135:com.android.tools.r8.graph.DexProgramClass synthesizeWrapper(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedField):261 -> a
    136:141:com.android.tools.r8.graph.DexEncodedMethod newSynthesizedMethod(com.android.tools.r8.graph.DexMethod,int,boolean,com.android.tools.r8.graph.Code):472:477 -> a
    136:141:com.android.tools.r8.graph.DexEncodedMethod synthesizeConstructor(com.android.tools.r8.graph.DexField):463 -> a
    136:141:com.android.tools.r8.graph.DexProgramClass synthesizeWrapper(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedField):261 -> a
    142:142:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    142:142:com.android.tools.r8.graph.DexEncodedMethod newSynthesizedMethod(com.android.tools.r8.graph.DexMethod,int,boolean,com.android.tools.r8.graph.Code):477 -> a
    142:142:com.android.tools.r8.graph.DexEncodedMethod synthesizeConstructor(com.android.tools.r8.graph.DexField):463 -> a
    142:142:com.android.tools.r8.graph.DexProgramClass synthesizeWrapper(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedField):261 -> a
    143:148:com.android.tools.r8.graph.DexProgramClass synthesizeWrapper(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedField):261:266 -> a
    149:149:com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier getChecksumSupplier(com.android.tools.r8.ir.desugar.DesugaredLibraryWrapperSynthesizer,com.android.tools.r8.graph.DexType):271:271 -> a
    150:154:long lambda$getChecksumSupplier$1(com.android.tools.r8.ir.desugar.DesugaredLibraryWrapperSynthesizer,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):276:280 -> a
    155:155:java.lang.String lambda$reportFinalMethodsInWrapper$2(com.android.tools.r8.graph.DexMethod):380:380 -> a
    156:156:java.lang.String[] lambda$reportFinalMethodsInWrapper$3(int):380:380 -> a
    157:166:void reportFinalMethodsInWrapper(java.util.Set):380:389 -> a
    167:167:void reportFinalMethodsInWrapper(java.util.Set):384:384 -> a
    168:178:com.android.tools.r8.graph.DexEncodedMethod newSynthesizedMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.Code):395:405 -> a
    179:179:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    179:179:com.android.tools.r8.graph.DexEncodedMethod newSynthesizedMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.Code):405 -> a
    180:202:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexClass):411:433 -> a
    203:203:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    203:203:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexClass):433 -> a
    204:204:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexClass):435:435 -> a
    205:205:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    205:205:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexClass):435 -> a
    206:212:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexClass):435:441 -> a
    213:213:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    213:213:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexClass):441 -> a
    214:215:java.util.List allImplementedMethods(com.android.tools.r8.graph.DexClass):442:443 -> a
    216:216:void finalizeWrappers(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):490:490 -> a
    217:221:boolean verifyAllClassesGenerated():526:530 -> a
    217:221:void finalizeWrappers(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):490 -> a
    222:225:void finalizeWrappers(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):492:495 -> a
    226:228:void registerWrappers(com.android.tools.r8.graph.DexApplication$Builder,java.util.Map):504:506 -> a
    229:230:void registerSynthesizedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexApplication$Builder):537:538 -> a
    229:230:void registerWrappers(com.android.tools.r8.graph.DexApplication$Builder,java.util.Map):507 -> a
    231:235:void finalizeWrappers(com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,java.util.Map,java.util.function.BiConsumer):517:521 -> a
    236:238:void generateTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):542:544 -> a
    239:239:com.android.tools.r8.graph.DexType vivifiedTypeFor(com.android.tools.r8.graph.DexType):210:210 -> a
    239:239:void generateTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):549 -> a
    240:240:void generateTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):550:550 -> a
    241:241:void generateTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):545:545 -> a
    242:242:void generateTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):544:544 -> a
    243:245:com.android.tools.r8.graph.DexEncodedMethod synthesizeConversionMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):570:572 -> a
    246:270:com.android.tools.r8.graph.DexEncodedMethod synthesizeConversionMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):571:595 -> a
    271:276:com.android.tools.r8.graph.DexEncodedMethod newSynthesizedMethod(com.android.tools.r8.graph.DexMethod,int,boolean,com.android.tools.r8.graph.Code):472:477 -> a
    271:276:com.android.tools.r8.graph.DexEncodedMethod synthesizeConversionMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):597 -> a
    277:277:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    277:277:com.android.tools.r8.graph.DexEncodedMethod newSynthesizedMethod(com.android.tools.r8.graph.DexMethod,int,boolean,com.android.tools.r8.graph.Code):477 -> a
    277:277:com.android.tools.r8.graph.DexEncodedMethod synthesizeConversionMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):597 -> a
    1:1:com.android.tools.r8.graph.DexType getTypeWrapper(com.android.tools.r8.graph.DexType):141:141 -> b
    2:2:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):225:225 -> b
    3:3:com.android.tools.r8.graph.DexType vivifiedTypeFor(com.android.tools.r8.graph.DexType):210:210 -> b
    3:3:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):227 -> b
    4:8:com.android.tools.r8.graph.DexEncodedField synthesizeWrappedValueField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):450:454 -> b
    4:8:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):227 -> b
    9:22:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):286:299 -> b
    9:22:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):231 -> b
    23:23:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    23:23:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):299 -> b
    23:23:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):231 -> b
    24:26:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):300:302 -> b
    24:26:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):231 -> b
    27:27:boolean com.android.tools.r8.graph.DexEncodedMethod.isFinal():294:294 -> b
    27:27:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):307 -> b
    27:27:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):231 -> b
    28:43:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):308:323 -> b
    28:43:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):231 -> b
    44:49:com.android.tools.r8.graph.DexEncodedMethod[] finalizeWrapperMethods(java.util.List,java.util.Set):370:375 -> b
    44:49:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethodsForVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):325 -> b
    44:49:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):231 -> b
    50:50:com.android.tools.r8.graph.DexProgramClass generateVivifiedTypeWrapper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):228:228 -> b
    51:52:void generateVivifiedTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):554:555 -> b
    53:53:com.android.tools.r8.graph.DexType vivifiedTypeFor(com.android.tools.r8.graph.DexType):210:210 -> b
    53:53:void generateVivifiedTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):559 -> b
    54:54:void generateVivifiedTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):561:561 -> b
    55:55:void generateVivifiedTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):556:556 -> b
    56:56:void generateVivifiedTypeConversions(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):555:555 -> b
    1:1:com.android.tools.r8.graph.DexType getVivifiedTypeWrapper(com.android.tools.r8.graph.DexType):145:145 -> c
    1:1:boolean hasSynthesized(com.android.tools.r8.graph.DexType):125:125 -> d
    1:1:boolean isSynthesizedWrapper(com.android.tools.r8.graph.DexType):121:121 -> e
com.android.tools.r8.ir.desugar.InterfaceMethodRewriter -> com.android.tools.r8.t.c.p:
    java.util.Set synthesizedMethods -> g
    com.android.tools.r8.graph.DexItemFactory factory -> d
    com.android.tools.r8.graph.AppView appView -> a
    java.util.concurrent.ConcurrentMap requiredDispatchClasses -> i
    boolean $assertionsDisabled -> j
    com.android.tools.r8.utils.InternalOptions options -> c
    java.util.Set emulatedMethods -> f
    java.util.Map emulatedInterfaces -> e
    com.android.tools.r8.ir.conversion.IRConverter converter -> b
    java.util.Map cache -> h
    1:1:void <clinit>():92:92 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):134:134 -> <init>
    2:39:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):105:142 -> <init>
    1:6:void initializeEmulatedInterfaceVariables():146:151 -> a
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    7:7:void initializeEmulatedInterfaceVariables():151 -> a
    8:9:void initializeEmulatedInterfaceVariables():154:155 -> a
    10:10:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):162:162 -> a
    11:11:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):697:697 -> a
    11:11:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):163 -> a
    12:14:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):163:165 -> a
    15:15:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):164:164 -> a
    16:23:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):162:169 -> a
    24:24:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):168:168 -> a
    25:25:void addRewritePrefix(com.android.tools.r8.graph.DexType,java.lang.String):166:166 -> a
    26:65:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):180:219 -> a
    66:66:boolean isNonDesugaredLibraryClass(com.android.tools.r8.graph.DexClass):436:436 -> a
    66:66:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):220 -> a
    67:71:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):231:235 -> a
    72:72:com.android.tools.r8.graph.DexMethod staticAsMethodOfDispatchClass(com.android.tools.r8.graph.DexMethod):740:740 -> a
    72:72:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):236 -> a
    73:73:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):237:237 -> a
    74:82:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):235:243 -> a
    83:83:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):735:735 -> a
    83:83:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):244 -> a
    84:84:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):697:697 -> a
    84:84:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):735 -> a
    84:84:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):244 -> a
    85:85:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):735:735 -> a
    85:85:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):244 -> a
    86:86:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):245:245 -> a
    87:116:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):243:272 -> a
    117:118:com.android.tools.r8.graph.DexMethod amendDefaultMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):767:768 -> a
    117:118:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):271 -> a
    119:119:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):273:273 -> a
    120:120:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):779:779 -> a
    120:120:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):274 -> a
    121:121:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):775:775 -> a
    121:121:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):779 -> a
    121:121:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):274 -> a
    122:122:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):275:275 -> a
    123:138:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):273:288 -> a
    139:139:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    139:139:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):288 -> a
    140:151:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):289:300 -> a
    152:152:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):697:697 -> a
    152:152:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):302 -> a
    153:154:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):302:303 -> a
    155:162:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):301:308 -> a
    163:169:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):306:312 -> a
    170:212:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):310:352 -> a
    213:213:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):779:779 -> a
    213:213:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):353 -> a
    214:214:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):775:775 -> a
    214:214:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):779 -> a
    214:214:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):353 -> a
    215:215:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):354:354 -> a
    216:225:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):352:361 -> a
    226:226:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):789:789 -> a
    226:226:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):362 -> a
    227:227:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):785:785 -> a
    227:227:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):789 -> a
    227:227:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):362 -> a
    228:228:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):363:363 -> a
    229:229:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):361:361 -> a
    230:232:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):335:337 -> a
    233:233:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    233:233:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    233:233:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):337 -> a
    234:268:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):337:371 -> a
    269:269:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):424:424 -> a
    269:269:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
    270:270:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    270:270:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):424 -> a
    270:270:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
    271:273:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):424:426 -> a
    271:273:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
    274:274:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():290:290 -> a
    274:274:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):426 -> a
    274:274:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
    275:276:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):426:427 -> a
    275:276:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
    277:279:com.android.tools.r8.graph.DexMethod emulateInterfaceLibraryMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):541:543 -> a
    277:279:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):429 -> a
    277:279:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
    280:280:com.android.tools.r8.graph.DexMethod emulateInterfaceLibraryMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):540:540 -> a
    280:280:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):429 -> a
    280:280:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
    281:282:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):430:431 -> a
    281:282:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
    283:283:void rewriteCurrentInstructionToEmulatedInterfaceCall(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator):427:427 -> a
    283:283:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):373 -> a
    284:284:java.util.Set lambda$rewriteMethodReferences$0(com.android.tools.r8.graph.DexLibraryClass):239:239 -> a
    285:285:boolean isInDesugaredLibrary(com.android.tools.r8.graph.DexClass):440:440 -> a
    286:286:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    286:286:boolean isInDesugaredLibrary(com.android.tools.r8.graph.DexClass):440 -> a
    287:291:boolean isInDesugaredLibrary(com.android.tools.r8.graph.DexClass):440:444 -> a
    292:297:void processEmulatedInterfaceHierarchy(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Map):499:504 -> a
    298:298:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    298:298:void processEmulatedInterfaceHierarchy(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Map):504 -> a
    299:308:void processEmulatedInterfaceHierarchy(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Map):506:515 -> a
    309:309:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    309:309:void processEmulatedInterfaceHierarchy(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Map):515 -> a
    310:310:void processEmulatedInterfaceHierarchy(com.android.tools.r8.graph.DexType,java.util.Set,java.util.Map):517:517 -> a
    311:316:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):548:553 -> a
    317:323:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):552:558 -> a
    324:324:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):697:697 -> a
    324:324:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):560 -> a
    325:325:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):560:560 -> a
    326:344:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):559:577 -> a
    345:345:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    345:345:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):577 -> a
    346:346:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):578:578 -> a
    347:353:boolean implementsInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):524:530 -> a
    347:353:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):578 -> a
    354:354:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    354:354:boolean implementsInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):530 -> a
    354:354:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):578 -> a
    355:355:boolean implementsInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):532:532 -> a
    355:355:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):578 -> a
    356:361:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):579:584 -> a
    362:362:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):582:582 -> a
    363:377:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):579:593 -> a
    378:378:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    378:378:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):593 -> a
    379:381:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):594:596 -> a
    382:382:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():290:290 -> a
    382:382:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):597 -> a
    383:383:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):598:598 -> a
    384:384:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):697:697 -> a
    384:384:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):602 -> a
    385:386:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):602:603 -> a
    387:387:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):601:601 -> a
    388:399:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):598:609 -> a
    400:402:com.android.tools.r8.graph.DexMethod emulateInterfaceLibraryMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):541:543 -> a
    400:402:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):612 -> a
    403:403:com.android.tools.r8.graph.DexMethod emulateInterfaceLibraryMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):540:540 -> a
    403:403:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):612 -> a
    404:404:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):612:612 -> a
    405:405:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):610:610 -> a
    406:449:com.android.tools.r8.graph.DexProgramClass synthesizeEmulateInterfaceLibraryClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map):609:652 -> a
    450:451:void reportStaticInterfaceMethodHandle(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethodHandle):669:670 -> a
    452:452:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    452:452:void reportStaticInterfaceMethodHandle(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethodHandle):670 -> a
    453:457:void reportStaticInterfaceMethodHandle(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethodHandle):674:678 -> a
    458:458:java.lang.String getCompanionClassDescriptor(java.lang.String):685:685 -> a
    459:462:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):690:693 -> a
    463:467:com.android.tools.r8.graph.DexType getDispatchClassType(com.android.tools.r8.graph.DexType):702:706 -> a
    468:477:com.android.tools.r8.graph.DexMethod instanceAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,java.lang.String,com.android.tools.r8.graph.DexItemFactory):751:760 -> a
    478:478:com.android.tools.r8.graph.DexMethod instanceAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,java.lang.String,com.android.tools.r8.graph.DexItemFactory):757:757 -> a
    479:479:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):775:775 -> a
    480:480:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):779:779 -> a
    481:481:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):775:775 -> a
    481:481:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):779 -> a
    482:484:com.android.tools.r8.graph.DexEncodedMethod[] renameHolder(java.util.List,com.android.tools.r8.graph.DexType):840:842 -> a
    485:485:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):919:919 -> a
    486:486:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    486:486:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):919 -> a
    487:490:java.util.Map processEmulatedInterfaceHierarchy() -> a
    487:490:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):468 -> a
    487:490:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):920 -> a
    491:492:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):469:470 -> a
    491:492:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):920 -> a
    493:493:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    493:493:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):470 -> a
    493:493:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):920 -> a
    494:498:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):472:476 -> a
    494:498:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):920 -> a
    499:499:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):475:475 -> a
    499:499:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):920 -> a
    500:500:boolean isInMainDexList(com.android.tools.r8.graph.DexType):729:729 -> a
    500:500:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):478 -> a
    500:500:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):920 -> a
    501:502:void generateEmulateInterfaceLibrary(com.android.tools.r8.graph.DexApplication$Builder):478:479 -> a
    501:502:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):920 -> a
    503:513:void duplicateEmulatedInterfaces():850:860 -> a
    503:513:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
    514:514:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    514:514:void duplicateEmulatedInterfaces():860 -> a
    514:514:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
    515:516:void duplicateEmulatedInterfaces():861:862 -> a
    515:516:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
    517:517:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    517:517:void duplicateEmulatedInterfaces():862 -> a
    517:517:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
    518:518:void duplicateEmulatedInterfaces():863:863 -> a
    518:518:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
    519:527:java.util.List emulatedInterfacesOf(com.android.tools.r8.graph.DexClass):885:893 -> a
    519:527:void duplicateEmulatedInterfaces():864 -> a
    519:527:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
    528:528:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    528:528:java.util.List emulatedInterfacesOf(com.android.tools.r8.graph.DexClass):893 -> a
    528:528:void duplicateEmulatedInterfaces():864 -> a
    528:528:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
    529:536:java.util.List emulatedInterfacesOf(com.android.tools.r8.graph.DexClass):895:902 -> a
    529:536:void duplicateEmulatedInterfaces():864 -> a
    529:536:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
    537:547:void duplicateEmulatedInterfaces():865:875 -> a
    537:547:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
    548:553:void duplicateEmulatedInterfaces():874:879 -> a
    548:553:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):922 -> a
    554:554:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):926:926 -> a
    555:557:void processClasses(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.function.Consumer):982:984 -> a
    555:557:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):926 -> a
    558:559:boolean shouldProcess(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,boolean):959:960 -> a
    558:559:void processClasses(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.function.Consumer):985 -> a
    558:559:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):926 -> a
    560:564:void processClasses(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.function.Consumer):986:990 -> a
    560:564:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):926 -> a
    565:565:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):932:932 -> a
    566:568:java.util.Map processInterfaces(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor):964:966 -> a
    566:568:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):933 -> a
    569:570:boolean shouldProcess(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,boolean):959:960 -> a
    569:570:java.util.Map processInterfaces(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor):967 -> a
    569:570:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):933 -> a
    571:580:java.util.Map processInterfaces(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor):968:977 -> a
    571:580:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):933 -> a
    581:585:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):933:937 -> a
    586:586:boolean isInMainDexList(com.android.tools.r8.graph.DexType):729:729 -> a
    586:586:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):937 -> a
    587:591:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):937:941 -> a
    592:592:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    592:592:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):941 -> a
    593:594:void renameEmulatedInterfaces():795:796 -> a
    593:594:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):942 -> a
    595:603:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexClass):808:816 -> a
    595:603:void renameEmulatedInterfaces():797 -> a
    595:603:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):942 -> a
    604:607:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):827:830 -> a
    604:607:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexClass):816 -> a
    604:607:void renameEmulatedInterfaces():797 -> a
    604:607:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):942 -> a
    608:608:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexClass):818:818 -> a
    608:608:void renameEmulatedInterfaces():797 -> a
    608:608:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):942 -> a
    609:609:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    609:609:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexClass):818 -> a
    609:609:void renameEmulatedInterfaces():797 -> a
    609:609:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):942 -> a
    610:610:com.android.tools.r8.graph.DexType inferEmulatedInterfaceName(com.android.tools.r8.graph.DexClass):820:820 -> a
    610:610:void renameEmulatedInterfaces():797 -> a
    610:610:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):942 -> a
    611:613:void renameEmulatedInterfaces():798:800 -> a
    611:613:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):942 -> a
    614:616:void renameEmulatedInterfaces(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):834:836 -> a
    614:616:void renameEmulatedInterfaces():801 -> a
    614:616:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):942 -> a
    617:617:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):945:945 -> a
    618:620:void clear():952:954 -> a
    618:620:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):948 -> a
    621:635:boolean isDefaultMethod(com.android.tools.r8.graph.DexEncodedMethod):994:1008 -> a
    636:636:boolean isDefaultMethod(com.android.tools.r8.graph.DexEncodedMethod):1001:1001 -> a
    637:648:boolean isEmulatedInterfaceDispatch(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):1016:1027 -> a
    649:649:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    649:649:boolean isEmulatedInterfaceDispatch(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):1028 -> a
    650:659:boolean isEmulatedInterfaceDispatch(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):1029:1038 -> a
    660:660:void warnMissingType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1056:1056 -> a
    661:661:boolean com.android.tools.r8.ir.desugar.PrefixRewritingMapper.hasRewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):33:33 -> a
    661:661:void warnMissingType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1056 -> a
    662:662:void warnMissingType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1057:1057 -> a
    663:663:boolean isCompanionClassType(com.android.tools.r8.graph.DexType):711:711 -> a
    663:663:void warnMissingType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1058 -> a
    664:676:void warnMissingType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1058:1070 -> a
    677:677:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1086:1086 -> a
    678:679:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1099:1100 -> a
    678:679:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1090 -> a
    680:680:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    680:680:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1100 -> a
    680:680:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1090 -> a
    681:682:void warnMissingInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1048:1049 -> a
    681:682:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1102 -> a
    681:682:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1090 -> a
    683:685:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1103:1105 -> a
    683:685:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1090 -> a
    686:686:boolean isNonDesugaredLibraryClass(com.android.tools.r8.graph.DexClass):436:436 -> a
    686:686:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1111 -> a
    686:686:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1090 -> a
    687:713:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1116:1142 -> a
    687:713:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1090 -> a
    714:714:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1091:1091 -> a
    715:717:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1106:1108 -> a
    715:717:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1090 -> a
    718:718:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    718:718:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1108 -> a
    718:718:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1090 -> a
    719:719:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1108:1108 -> a
    719:719:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1090 -> a
    720:721:void reportDependencyEdge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):1147:1148 -> a
    722:722:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():716:716 -> a
    722:722:void reportDependencyEdge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):1150 -> a
    723:727:void reportDependencyEdge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):1151:1155 -> a
    728:728:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():716:716 -> a
    728:728:void reportDependencyEdge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):1156 -> a
    729:729:void reportDependencyEdge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):1158:1158 -> a
    1:2:boolean dontRewrite(com.android.tools.r8.graph.DexMethod):449:450 -> b
    3:4:com.android.tools.r8.graph.DexType getEmulateLibraryInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):662:663 -> b
    5:5:java.lang.String getEmulateLibraryInterfaceClassDescriptor(java.lang.String):656:656 -> b
    5:5:com.android.tools.r8.graph.DexType getEmulateLibraryInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):664 -> b
    6:6:com.android.tools.r8.graph.DexType getEmulateLibraryInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):665:665 -> b
    7:7:boolean isCompanionClassType(com.android.tools.r8.graph.DexType):711:711 -> b
    8:9:void warnMissingInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):1048:1049 -> b
    1:1:boolean isEmulatedInterface(com.android.tools.r8.graph.DexType):174:174 -> c
    2:2:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):721:721 -> c
    3:3:boolean isCompanionClassType(com.android.tools.r8.graph.DexType):711:711 -> c
    3:3:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):721 -> c
    4:7:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):721:724 -> c
    8:10:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):723:725 -> c
    11:12:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1074:1075 -> c
    13:13:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType):716:716 -> c
    13:13:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1076 -> c
    14:14:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1078:1078 -> c
    15:15:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> c
    15:15:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1078 -> c
    16:16:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1079:1079 -> c
    17:17:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():716:716 -> c
    17:17:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):1079 -> c
    1:4:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):383:386 -> d
    5:5:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> d
    5:5:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):386 -> d
    6:6:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):394:394 -> d
    7:7:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> d
    7:7:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):394 -> d
    8:20:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):394:406 -> d
    21:21:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():290:290 -> d
    21:21:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):413 -> d
    22:22:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):413:413 -> d
    23:23:boolean isEmulatedInterface(com.android.tools.r8.graph.DexType):174:174 -> d
    23:23:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):413 -> d
    24:24:com.android.tools.r8.graph.DexType maximallySpecificEmulatedInterfaceOrNull(com.android.tools.r8.graph.DexMethod):414:414 -> d
    25:30:void warnMissingEmulatedInterface(com.android.tools.r8.graph.DexType):458:463 -> d
    1:1:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):789:789 -> e
    2:2:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):785:785 -> e
    2:2:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):789 -> e
    1:1:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):735:735 -> f
    2:2:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):697:697 -> f
    2:2:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):735 -> f
    3:3:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):735:735 -> f
com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor -> com.android.tools.r8.t.c.p$a:
    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor ExcludeDexResources -> b
    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor IncludeAllResources -> a
    1:5:void <clinit>():127:131 -> <clinit>
    1:1:void <init>(java.lang.String,int):123:123 -> <init>
com.android.tools.r8.ir.desugar.InterfaceProcessor -> com.android.tools.r8.t.c.r:
    java.util.Map syntheticClasses -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter rewriter -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():55:55 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter):63:63 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter):61:65 -> <init>
    long lambda$getChecksumSupplier$0(long,com.android.tools.r8.graph.DexProgramClass) -> a
    1:8:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):69:76 -> a
    9:20:boolean canMoveToCompanionClass(com.android.tools.r8.graph.DexEncodedMethod):288:299 -> a
    9:20:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):77 -> a
    21:33:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):83:95 -> a
    34:36:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):94:96 -> a
    37:37:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    37:37:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):96 -> a
    38:40:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):98:100 -> a
    41:42:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):87:88 -> a
    43:43:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    43:43:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    43:43:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):88 -> a
    44:44:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):88:88 -> a
    45:46:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):78:79 -> a
    47:47:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    47:47:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    47:47:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):79 -> a
    48:48:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):79:79 -> a
    49:60:boolean interfaceMethodRemovalChangesApi(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):318:329 -> a
    49:60:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):104 -> a
    61:63:com.android.tools.r8.graph.DexClass definitionForDependency(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):308:310 -> a
    61:63:boolean interfaceMethodRemovalChangesApi(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):329 -> a
    61:63:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):104 -> a
    64:64:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    64:64:com.android.tools.r8.graph.DexClass definitionForDependency(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):310 -> a
    64:64:boolean interfaceMethodRemovalChangesApi(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):329 -> a
    64:64:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):104 -> a
    65:71:boolean interfaceMethodRemovalChangesApi(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):330:336 -> a
    65:71:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):104 -> a
    72:91:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):105:124 -> a
    92:95:boolean isStaticMethod(com.android.tools.r8.graph.DexEncodedMethod):352:355 -> a
    92:95:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):125 -> a
    96:101:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):126:131 -> a
    102:102:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    102:102:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):131 -> a
    103:121:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):130:148 -> a
    122:124:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):147:149 -> a
    125:125:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    125:125:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):149 -> a
    126:128:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):149:151 -> a
    129:130:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):144:145 -> a
    131:131:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    131:131:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    131:131:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):145 -> a
    132:143:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):145:156 -> a
    144:144:boolean isStaticMethod(com.android.tools.r8.graph.DexEncodedMethod):353:353 -> a
    144:144:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):125 -> a
    145:163:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):160:178 -> a
    164:164:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.desugar.InterfaceMethodRewriter.getCompanionClassType(com.android.tools.r8.graph.DexType):697:697 -> a
    164:164:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):178 -> a
    165:186:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):179:200 -> a
    187:191:com.android.tools.r8.graph.DexProgramClass$ChecksumSupplier getChecksumSupplier(com.android.tools.r8.graph.DexProgramClass):204:208 -> a
    192:216:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):212:236 -> a
    217:217:com.android.tools.r8.graph.DexMethod com.android.tools.r8.ir.desugar.InterfaceMethodRewriter.staticAsMethodOfDispatchClass(com.android.tools.r8.graph.DexMethod):740:740 -> a
    217:217:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):236 -> a
    218:229:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):238:249 -> a
    230:230:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    230:230:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):249 -> a
    231:232:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):252:253 -> a
    233:287:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):229:283 -> a
    288:292:void addSuperTypes(com.android.tools.r8.graph.DexClass,java.util.Deque):343:347 -> a
com.android.tools.r8.ir.desugar.InterfaceProcessor$InterfaceProcessorNestedGraphLense -> com.android.tools.r8.t.c.r$a:
    1:1:void <init>(java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory):370:370 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense$Builder builder():386:386 -> b
    1:1:com.android.tools.r8.ir.code.Invoke$Type mapInvocationType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):382:382 -> mapInvocationType
com.android.tools.r8.ir.desugar.InterfaceProcessor$InterfaceProcessorNestedGraphLense$Builder -> com.android.tools.r8.t.c.q:
    1:1:void <init>():389:389 -> <init>
    1:4:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.GraphLense):392:395 -> a
com.android.tools.r8.ir.desugar.LambdaBridgeMethodSourceCode -> com.android.tools.r8.t.c.s:
    com.android.tools.r8.graph.DexMethod mainMethod -> o
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):23:24 -> <init>
    1:1:void lambda$prepareInstructions$0(java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
    1:1:void lambda$prepareInstructions$1(int,com.android.tools.r8.ir.conversion.IRBuilder):65:65 -> b
    1:1:void lambda$prepareInstructions$2(int,com.android.tools.r8.ir.conversion.IRBuilder):69:69 -> c
    1:1:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):71:71 -> d
    1:1:void prepareInstructions():29:29 -> h
    2:2:com.android.tools.r8.ir.desugar.LambdaDescriptor com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.descriptor():33:33 -> h
    2:2:void prepareInstructions():30 -> h
    3:18:void prepareInstructions():30:45 -> h
    19:46:void prepareInstructions():44:71 -> h
com.android.tools.r8.ir.desugar.LambdaBridgeMethodSynthesizedCode -> com.android.tools.r8.t.c.t:
    com.android.tools.r8.graph.DexMethod bridgeMethod -> f
    com.android.tools.r8.graph.DexMethod mainMethod -> e
    1:3:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):19:21 -> <init>
    1:1:com.android.tools.r8.ir.conversion.SourceCode lambda$getSourceCodeProvider$0(com.android.tools.r8.ir.code.Position):27:27 -> a
    1:4:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):33:36 -> b
    5:5:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.ir.desugar.LambdaSynthesizedCode.dexItemFactory():24:24 -> b
    5:5:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):38 -> b
    6:7:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):38:39 -> b
    1:1:java.util.function.Consumer getRegistryCallback():32:32 -> getRegistryCallback
    1:1:com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider():26:26 -> getSourceCodeProvider
com.android.tools.r8.ir.desugar.LambdaClass -> com.android.tools.r8.t.c.A:
    java.util.concurrent.atomic.AtomicBoolean addToMainDexList -> h
    com.android.tools.r8.graph.DexField lambdaField -> f
    com.android.tools.r8.ir.desugar.LambdaClass$Target target -> g
    boolean $assertionsDisabled -> k
    java.util.function.Supplier lazyDexClass -> j
    com.android.tools.r8.ir.desugar.LambdaRewriter rewriter -> a
    com.android.tools.r8.graph.DexType type -> b
    com.android.tools.r8.ir.desugar.LambdaDescriptor descriptor -> c
    com.android.tools.r8.graph.DexMethod classConstructor -> e
    com.android.tools.r8.graph.DexMethod constructor -> d
    java.util.Collection synthesizedFrom -> i
    1:1:void <clinit>():61:61 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):79:79 -> <init>
    2:37:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):70:105 -> <init>
    1:1:com.android.tools.r8.graph.DexType createLambdaClassType(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):111:111 -> a
    2:22:com.android.tools.r8.graph.DexType createLambdaClassType(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):116:136 -> a
    2:22:com.android.tools.r8.graph.DexType createLambdaClassType(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):111 -> a
    23:28:com.android.tools.r8.graph.DexField getCaptureField(int):199:204 -> a
    29:29:com.android.tools.r8.graph.DexField getCaptureField(int):201:201 -> a
    30:37:void addSynthesizedFrom(com.android.tools.r8.graph.DexProgramClass):212:219 -> a
    38:38:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):340:340 -> a
    39:61:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):363:385 -> a
    39:61:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):341 -> a
    62:62:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    62:62:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):385 -> a
    62:62:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):341 -> a
    63:86:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):385:408 -> a
    63:86:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):341 -> a
    87:87:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):407:407 -> a
    87:87:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):341 -> a
    88:88:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):402:402 -> a
    88:88:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):341 -> a
    89:102:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):345:358 -> a
    103:104:com.android.tools.r8.ir.desugar.LambdaClass$Target createInstanceMethodTarget(com.android.tools.r8.graph.DexType):415:416 -> a
    103:104:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):356 -> a
    105:131:com.android.tools.r8.ir.desugar.LambdaClass$Target createInstanceMethodTarget(com.android.tools.r8.graph.DexType):415:441 -> a
    105:131:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):356 -> a
    132:147:com.android.tools.r8.ir.desugar.LambdaClass$Target createStaticMethodTarget(com.android.tools.r8.graph.DexType):447:462 -> a
    132:147:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):353 -> a
    148:152:com.android.tools.r8.ir.desugar.LambdaClass$Target createStaticMethodTarget(com.android.tools.r8.graph.DexType):459:463 -> a
    148:152:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):353 -> a
    153:173:com.android.tools.r8.ir.desugar.LambdaClass$Target createConstructorTarget(com.android.tools.r8.graph.DexType):469:489 -> a
    153:173:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):351 -> a
    174:176:com.android.tools.r8.ir.desugar.LambdaClass$Target createInterfaceMethodTarget(com.android.tools.r8.graph.DexType):494:496 -> a
    174:176:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):349 -> a
    177:177:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):347:347 -> a
    178:180:com.android.tools.r8.graph.DexString generateUniqueLambdaMethodName():500:502 -> a
    1:1:com.android.tools.r8.graph.DexProgramClass getOrCreateLambdaClass():140:140 -> b
    2:10:long computeChecksumForSynthesizedClass(com.android.tools.r8.graph.DexProgramClass):187:195 -> b
    1:1:boolean isStateless():208:208 -> c
    2:2:boolean com.android.tools.r8.ir.desugar.LambdaDescriptor.isStateless():180:180 -> c
    2:2:boolean isStateless():208 -> c
    1:13:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():144:156 -> d
    14:17:com.android.tools.r8.graph.DexTypeList buildInterfaces():331:334 -> d
    14:17:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():157 -> d
    18:24:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():157:163 -> d
    25:40:com.android.tools.r8.graph.DexEncodedField[] synthesizeStaticFields():309:324 -> d
    25:40:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():164 -> d
    41:49:com.android.tools.r8.graph.DexEncodedField[] synthesizeInstanceFields():294:302 -> d
    41:49:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():165 -> d
    50:62:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeDirectMethods():261:273 -> d
    50:62:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():166 -> d
    63:63:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> d
    63:63:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeDirectMethods():273 -> d
    63:63:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():166 -> d
    64:76:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeDirectMethods():273:285 -> d
    64:76:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():166 -> d
    77:77:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> d
    77:77:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeDirectMethods():285 -> d
    77:77:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():166 -> d
    78:78:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeDirectMethods():285:285 -> d
    78:78:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():166 -> d
    79:89:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethods(com.android.tools.r8.graph.DexMethod):224:234 -> d
    79:89:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():167 -> d
    90:90:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> d
    90:90:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethods(com.android.tools.r8.graph.DexMethod):234 -> d
    90:90:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():167 -> d
    91:109:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethods(com.android.tools.r8.graph.DexMethod):234:252 -> d
    91:109:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():167 -> d
    110:110:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> d
    110:110:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethods(com.android.tools.r8.graph.DexMethod):252 -> d
    110:110:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():167 -> d
    111:111:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethods(com.android.tools.r8.graph.DexMethod):252:252 -> d
    111:111:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():167 -> d
    112:121:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():167:176 -> d
com.android.tools.r8.ir.desugar.LambdaClass$ClassMethodWithAccessorTarget -> com.android.tools.r8.t.c.u:
    boolean $assertionsDisabled -> h
    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> g
    1:1:void <clinit>():699:699 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod):701:702 -> <init>
    1:1:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():708:708 -> a
    2:2:com.android.tools.r8.graph.DexProgramClass com.android.tools.r8.ir.desugar.LambdaClass$Target.programDefinitionFor(com.android.tools.r8.graph.DexType):540:540 -> a
    2:2:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():708 -> a
    3:16:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():709:722 -> a
    17:17:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    17:17:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():722 -> a
    18:20:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():729:731 -> a
    21:21:com.android.tools.r8.ir.conversion.SourceCode lambda$ensureAccessibility$0(com.android.tools.r8.ir.code.Position):725:725 -> a
com.android.tools.r8.ir.desugar.LambdaClass$InstanceLambdaImplTarget -> com.android.tools.r8.t.c.v:
    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> g
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod):656:657 -> <init>
    1:6:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():664:669 -> a
    7:7:boolean com.android.tools.r8.graph.DexMethod.match(com.android.tools.r8.graph.DexEncodedMethod):157:157 -> a
    7:7:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():670 -> a
    8:17:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():673:682 -> a
    18:18:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    18:18:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():682 -> a
    19:23:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():684:688 -> a
com.android.tools.r8.ir.desugar.LambdaClass$InterfaceLambdaImplTarget -> com.android.tools.r8.t.c.w:
    boolean $assertionsDisabled -> h
    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> g
    1:1:void <clinit>():604:604 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod):606:607 -> <init>
    1:6:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():614:619 -> a
    7:7:boolean com.android.tools.r8.graph.DexMethod.match(com.android.tools.r8.graph.DexEncodedMethod):157:157 -> a
    7:7:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():620 -> a
    8:20:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():623:635 -> a
    21:21:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    21:21:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():635 -> a
    22:26:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():637:641 -> a
    27:35:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():640:648 -> a
com.android.tools.r8.ir.desugar.LambdaClass$NoAccessorMethodTarget -> com.android.tools.r8.t.c.x:
    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.Invoke$Type):572:572 -> <init>
    com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility() -> a
com.android.tools.r8.ir.desugar.LambdaClass$StaticLambdaImplTarget -> com.android.tools.r8.t.c.y:
    com.android.tools.r8.graph.ProgramMethod target -> g
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.ProgramMethod):587:588 -> <init>
    1:3:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility():594:596 -> a
com.android.tools.r8.ir.desugar.LambdaClass$Target -> com.android.tools.r8.t.c.z:
    com.android.tools.r8.ir.code.Invoke$Type invokeType -> b
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.DexEncodedMethod accessibilityBridge -> d
    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> e
    com.android.tools.r8.graph.DexMethod callTarget -> a
    boolean hasEnsuredAccessibility -> c
    1:1:void <clinit>():508:508 -> <clinit>
    1:5:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):516:520 -> <init>
    com.android.tools.r8.graph.DexEncodedMethod ensureAccessibility() -> a
    1:1:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):536:536 -> a
    1:5:com.android.tools.r8.graph.DexEncodedMethod ensureAccessibilityIfNeeded():528:532 -> b
com.android.tools.r8.ir.desugar.LambdaClassConstructorSourceCode -> com.android.tools.r8.t.c.B:
    boolean $assertionsDisabled -> o
    1:1:void <clinit>():15:15 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.Position):18:19 -> <init>
    1:1:void lambda$prepareInstructions$0(int,com.android.tools.r8.ir.conversion.IRBuilder):26:26 -> b
    1:6:void lambda$prepareInstructions$1(int,com.android.tools.r8.ir.conversion.IRBuilder):29:34 -> c
    7:7:void lambda$prepareInstructions$1(int,com.android.tools.r8.ir.conversion.IRBuilder):29:29 -> c
    1:1:void lambda$prepareInstructions$2(int,com.android.tools.r8.ir.conversion.IRBuilder):38:38 -> d
    1:17:void prepareInstructions():25:41 -> h
com.android.tools.r8.ir.desugar.LambdaClassConstructorSynthesizedCode -> com.android.tools.r8.t.c.C:
    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass):13:13 -> <init>
    1:1:com.android.tools.r8.ir.conversion.SourceCode lambda$getSourceCodeProvider$0(com.android.tools.r8.ir.code.Position):18:18 -> a
    1:3:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):24:26 -> b
    1:1:java.util.function.Consumer getRegistryCallback():23:23 -> getRegistryCallback
    1:1:com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider():18:18 -> getSourceCodeProvider
com.android.tools.r8.ir.desugar.LambdaConstructorSourceCode -> com.android.tools.r8.t.c.D:
    boolean $assertionsDisabled -> o
    1:1:void <clinit>():16:16 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.Position):19:19 -> <init>
    1:6:void lambda$prepareInstructions$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder):28:33 -> a
    7:7:void lambda$prepareInstructions$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder):29:29 -> a
    8:8:void lambda$prepareInstructions$1(int,com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    1:8:boolean equals(java.lang.Object):64:71 -> equals
    1:25:void prepareInstructions():25:49 -> h
    1:3:int hashCode():57:59 -> hashCode
com.android.tools.r8.ir.desugar.LambdaConstructorSynthesizedCode -> com.android.tools.r8.t.c.E:
    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass):14:14 -> <init>
    1:1:com.android.tools.r8.ir.conversion.SourceCode lambda$getSourceCodeProvider$0(com.android.tools.r8.ir.code.Position):19:19 -> a
    1:1:com.android.tools.r8.graph.DexItemFactory com.android.tools.r8.ir.desugar.LambdaSynthesizedCode.dexItemFactory():24:24 -> b
    1:1:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):25 -> b
    2:5:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):25:28 -> b
    1:1:java.util.function.Consumer getRegistryCallback():24:24 -> getRegistryCallback
    1:1:com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider():19:19 -> getSourceCodeProvider
com.android.tools.r8.ir.desugar.LambdaDescriptor -> com.android.tools.r8.t.c.F:
    java.util.Set bridges -> g
    com.android.tools.r8.ir.desugar.LambdaDescriptor MATCH_FAILED -> k
    com.android.tools.r8.graph.DexString name -> b
    com.android.tools.r8.graph.DexType targetHolder -> j
    com.android.tools.r8.graph.DexProto erasedProto -> c
    java.util.List interfaces -> f
    com.android.tools.r8.graph.DexProto enforcedProto -> d
    boolean $assertionsDisabled -> l
    com.android.tools.r8.graph.DexMethodHandle implHandle -> e
    java.lang.String uniqueId -> a
    com.android.tools.r8.graph.DexTypeList captures -> h
    com.android.tools.r8.graph.MethodAccessFlags targetAccessFlags -> i
    1:8:void <clinit>():28:35 -> <clinit>
    1:1:void <init>():51:51 -> <init>
    2:18:void <init>():43:59 -> <init>
    19:19:void <init>(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList):71:71 -> <init>
    20:73:void <init>(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList):43:96 -> <init>
    1:39:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):111:149 -> a
    40:41:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):143:144 -> a
    42:43:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):136:137 -> a
    44:50:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):118:124 -> a
    51:51:boolean isPrivateInstanceMethod(com.android.tools.r8.graph.DexEncodedMethod):160:160 -> a
    51:51:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):124 -> a
    52:53:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):124:125 -> a
    54:54:boolean isPublicizedInstanceMethod(com.android.tools.r8.graph.DexEncodedMethod):165:165 -> a
    54:54:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):125 -> a
    55:64:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):122:131 -> a
    65:66:boolean isInstanceMethod(com.android.tools.r8.graph.DexEncodedMethod):154:155 -> a
    67:68:boolean delegatesToLambdaImplMethod():174:175 -> a
    69:85:boolean needsAccessor(com.android.tools.r8.graph.DexType):185:201 -> a
    86:103:boolean needsAccessor(com.android.tools.r8.graph.DexType):198:215 -> a
    104:127:boolean needsAccessor(com.android.tools.r8.graph.DexType):214:237 -> a
    128:129:com.android.tools.r8.ir.desugar.LambdaDescriptor tryInfer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexProgramClass):246:247 -> a
    130:159:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):258:287 -> a
    160:170:boolean isEnforcedSignatureValid(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto):400:410 -> a
    160:170:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):287 -> a
    171:196:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):295:320 -> a
    197:227:void extractAltMetafactory(com.android.tools.r8.graph.DexItemFactory,java.util.List,java.util.function.Consumer,java.util.function.Consumer):341:371 -> a
    197:227:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):320 -> a
    228:229:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfoWithClassHierarchy,com.android.tools.r8.graph.DexType):289:290 -> a
    230:231:void lambda$infer$0(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):324:325 -> a
    232:236:java.util.List getInterfaces(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfoWithClassHierarchy):378:382 -> a
    237:243:java.lang.Object getBootstrapArgument(java.util.List,int,java.lang.Class):387:393 -> a
    244:244:java.lang.Object getBootstrapArgument(java.util.List,int,java.lang.Class):388:388 -> a
    245:253:boolean isSameOrDerived(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):422:430 -> a
    254:257:boolean isSameOrDerived(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):429:432 -> a
    1:4:com.android.tools.r8.graph.DexType getImplReceiverType():103:106 -> b
    5:5:boolean verifyTargetFoundInClass(com.android.tools.r8.graph.DexType):169:169 -> b
com.android.tools.r8.ir.desugar.LambdaMainMethodSourceCode -> com.android.tools.r8.t.c.G:
    boolean $assertionsDisabled -> o
    1:1:void <clinit>():25:25 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):28:28 -> <init>
    1:12:com.android.tools.r8.graph.DexType getBoxedForPrimitiveType(com.android.tools.r8.graph.DexType):61:72 -> a
    13:13:com.android.tools.r8.graph.DexType getBoxedForPrimitiveType(com.android.tools.r8.graph.DexType):70:70 -> a
    14:46:boolean isSameOrAdaptableTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):82:114 -> a
    47:47:com.android.tools.r8.graph.DexType getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):57:57 -> a
    47:47:boolean isSameOrAdaptableTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):121 -> a
    48:48:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexItemFactory.getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):446:446 -> a
    48:48:com.android.tools.r8.graph.DexType getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):57 -> a
    48:48:boolean isSameOrAdaptableTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):121 -> a
    49:58:boolean isSameOrAdaptableTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):122:131 -> a
    59:59:boolean isSameOrAdaptableTo(byte,byte):156:156 -> a
    60:60:void lambda$prepareInstructions$0(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder):199:199 -> a
    61:61:void lambda$prepareInstructions$1(int,com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.conversion.IRBuilder):215:215 -> a
    62:62:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):229:229 -> a
    63:63:boolean com.android.tools.r8.ir.desugar.LambdaClass$Target.holderIsInterface():544:544 -> a
    63:63:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):235 -> a
    64:64:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    64:64:boolean com.android.tools.r8.ir.desugar.LambdaClass$Target.holderIsInterface():545 -> a
    64:64:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):235 -> a
    65:65:boolean com.android.tools.r8.ir.desugar.LambdaClass$Target.holderIsInterface():554:554 -> a
    65:65:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):235 -> a
    66:66:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    66:66:boolean com.android.tools.r8.ir.desugar.LambdaClass$Target.holderIsInterface():554 -> a
    66:66:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):235 -> a
    67:74:boolean com.android.tools.r8.ir.desugar.LambdaClass$Target.holderIsInterface():554:561 -> a
    67:74:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):235 -> a
    75:81:boolean com.android.tools.r8.ir.desugar.LambdaClass$Target.holderIsInterface():558:564 -> a
    75:81:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):235 -> a
    82:82:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):229:229 -> a
    83:88:int prepareReturnValue(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):261:266 -> a
    89:106:int adjustType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,boolean):289:306 -> a
    107:107:com.android.tools.r8.graph.DexType getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):57:57 -> a
    107:107:int adjustType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,boolean):308 -> a
    108:108:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexItemFactory.getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):446:446 -> a
    108:108:com.android.tools.r8.graph.DexType getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):57 -> a
    108:108:int adjustType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,boolean):308 -> a
    109:150:int adjustType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,boolean):310:351 -> a
    151:151:void lambda$addPrimitiveWideningConversion$7(com.android.tools.r8.ir.code.NumericType,int,int,com.android.tools.r8.ir.conversion.IRBuilder):372:372 -> a
    152:152:void lambda$addPrimitiveWideningConversion$10(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int,com.android.tools.r8.ir.conversion.IRBuilder):405:405 -> a
    153:153:int castToBoxedType(int,com.android.tools.r8.graph.DexType):473:473 -> a
    154:154:void lambda$addPrimitiveBoxing$14(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):488:488 -> a
    1:1:void lambda$adjustType$6(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.conversion.IRBuilder):345:345 -> b
    2:2:void lambda$addPrimitiveWideningConversion$8(com.android.tools.r8.ir.code.NumericType,int,int,com.android.tools.r8.ir.conversion.IRBuilder):387:387 -> b
    3:3:void lambda$addPrimitiveWideningConversion$9(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int,com.android.tools.r8.ir.conversion.IRBuilder):397:397 -> b
    4:4:void lambda$addPrimitiveUnboxing$11(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):458:458 -> b
    5:23:int addPrimitiveBoxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):479:497 -> b
    24:24:void lambda$addPrimitiveBoxing$15(int,com.android.tools.r8.ir.conversion.IRBuilder):497:497 -> b
    1:1:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452:452 -> c
    2:30:com.android.tools.r8.graph.DexMethod getUnboxMethod(byte,com.android.tools.r8.graph.DexType):419:447 -> c
    2:30:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452 -> c
    31:47:com.android.tools.r8.graph.DexMethod getUnboxMethod(byte,com.android.tools.r8.graph.DexType):423:439 -> c
    31:47:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452 -> c
    48:58:com.android.tools.r8.graph.DexMethod getUnboxMethod(byte,com.android.tools.r8.graph.DexType):435:445 -> c
    48:58:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452 -> c
    59:60:com.android.tools.r8.graph.DexMethod getUnboxMethod(byte,com.android.tools.r8.graph.DexType):432:433 -> c
    59:60:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452 -> c
    61:62:com.android.tools.r8.graph.DexMethod getUnboxMethod(byte,com.android.tools.r8.graph.DexType):426:427 -> c
    61:62:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452 -> c
    63:77:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):454:468 -> c
    78:78:void lambda$addPrimitiveUnboxing$12(int,com.android.tools.r8.ir.conversion.IRBuilder):468:468 -> c
    79:79:void lambda$castToBoxedType$13(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.conversion.IRBuilder):473:473 -> c
    1:1:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):245:245 -> d
    2:52:int addPrimitiveWideningConversion(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):355:405 -> d
    53:58:int addPrimitiveWideningConversion(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):392:397 -> d
    59:63:int addPrimitiveWideningConversion(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):383:387 -> d
    64:64:int addPrimitiveWideningConversion(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):377:377 -> d
    65:112:int addPrimitiveWideningConversion(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):368:415 -> d
    1:1:void lambda$prepareInstructions$4(int,com.android.tools.r8.ir.conversion.IRBuilder):249:249 -> e
    1:1:void lambda$prepareInstructions$5(int,com.android.tools.r8.ir.conversion.IRBuilder):252:252 -> f
    1:1:void prepareInstructions():162:162 -> h
    2:2:com.android.tools.r8.ir.desugar.LambdaDescriptor com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.descriptor():33:33 -> h
    2:2:void prepareInstructions():163 -> h
    3:29:void prepareInstructions():163:189 -> h
    30:47:boolean checkSignatures(com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexType):34:51 -> h
    30:47:void prepareInstructions():187 -> h
    48:79:void prepareInstructions():192:223 -> h
    80:81:int prepareParameterValue(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):279:280 -> h
    80:81:void prepareInstructions():222 -> h
    82:112:void prepareInstructions():222:252 -> h
com.android.tools.r8.ir.desugar.LambdaMainMethodSynthesizedCode -> com.android.tools.r8.t.c.H:
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.DexMethod mainMethod -> e
    1:1:void <clinit>():14:14 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod):19:20 -> <init>
    1:1:com.android.tools.r8.ir.conversion.SourceCode lambda$getSourceCodeProvider$0(com.android.tools.r8.ir.code.Position):25:25 -> a
    1:28:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):31:58 -> b
    29:29:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):52:52 -> b
    30:30:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):49:49 -> b
    31:31:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):46:46 -> b
    1:1:java.util.function.Consumer getRegistryCallback():30:30 -> getRegistryCallback
    1:1:com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider():25:25 -> getSourceCodeProvider
com.android.tools.r8.ir.desugar.LambdaRewriter -> com.android.tools.r8.t.c.J:
    com.android.tools.r8.graph.DexString instanceFieldName -> b
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.com.google.common.collect.BiMap originalMethodSignatures -> d
    boolean $assertionsDisabled -> g
    java.util.Map knownCallSites -> e
    com.android.tools.r8.ir.desugar.LambdaRewriterGraphLense graphLens -> c
    java.util.Map knownLambdaClasses -> f
    1:1:void <clinit>():58:58 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):89:89 -> <init>
    2:25:void <init>(com.android.tools.r8.graph.AppView):71:94 -> <init>
    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor access$000(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexType):58:58 -> a
    2:2:com.android.tools.r8.ir.desugar.LambdaClass access$100(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):58:58 -> a
    3:3:com.android.tools.r8.graph.AppInfoWithClassHierarchy getAppInfo():102:102 -> a
    4:5:void lambda$synthesizeLambdaClassesForWave$0(java.util.Set,java.util.Set,com.android.tools.r8.ir.desugar.LambdaClass):126:127 -> a
    6:26:void synthesizeAccessibilityBridgesForLambdaClasses(java.util.Collection,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.ir.conversion.LensCodeRewriter):173:193 -> a
    27:39:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):234:246 -> a
    40:40:com.android.tools.r8.graph.AppView getAppView():98:98 -> a
    40:40:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):253 -> a
    41:41:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):253:253 -> a
    42:43:com.android.tools.r8.ir.desugar.LambdaClass getKnownLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):394:395 -> a
    42:43:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):254 -> a
    44:45:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):255:256 -> a
    46:58:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):441:453 -> a
    46:58:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):261 -> a
    59:59:com.android.tools.r8.graph.AppView getAppView():98:98 -> a
    59:59:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):453 -> a
    59:59:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):261 -> a
    60:60:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):452:452 -> a
    60:60:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):261 -> a
    61:61:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    61:61:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):451 -> a
    61:61:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):261 -> a
    62:89:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):455:482 -> a
    62:89:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):261 -> a
    90:90:com.android.tools.r8.ir.analysis.type.TypeLatticeElement com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement.asDefinitelyNotNull():83:83 -> a
    90:90:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):482 -> a
    90:90:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):261 -> a
    91:99:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):481:489 -> a
    91:99:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):261 -> a
    100:100:void com.android.tools.r8.ir.code.InvokeDirect.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):37:37 -> a
    100:100:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):489 -> a
    100:100:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):261 -> a
    101:115:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):491:505 -> a
    101:115:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):261 -> a
    116:116:com.android.tools.r8.graph.AppView getAppView():98:98 -> a
    116:116:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):506 -> a
    116:116:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):261 -> a
    117:117:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):506:506 -> a
    117:117:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):261 -> a
    118:118:com.android.tools.r8.ir.analysis.type.TypeLatticeElement com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement.asDefinitelyNotNull():83:83 -> a
    118:118:void patchInstruction(com.android.tools.r8.ir.code.InvokeCustom,com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,java.util.Set):482 -> a
    118:118:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):261 -> a
    119:120:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):265:266 -> a
    121:121:com.android.tools.r8.graph.AppView getAppView():98:98 -> a
    121:121:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):266 -> a
    122:122:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    122:122:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):266 -> a
    123:125:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):266:268 -> a
    126:133:boolean removeLambdaDeserializationMethods(java.lang.Iterable):273:280 -> a
    134:134:com.android.tools.r8.graph.AppView getAppView():98:98 -> a
    134:134:com.android.tools.r8.graph.DexItemFactory getFactory():106 -> a
    134:134:boolean removeLambdaDeserializationMethods(java.lang.Iterable):281 -> a
    135:135:com.android.tools.r8.graph.DexItemFactory getFactory():106:106 -> a
    135:135:boolean removeLambdaDeserializationMethods(java.lang.Iterable):281 -> a
    136:136:boolean com.android.tools.r8.graph.DexMethod.isLambdaDeserializeMethod(com.android.tools.r8.graph.DexItemFactory):194:194 -> a
    136:136:boolean removeLambdaDeserializationMethods(java.lang.Iterable):281 -> a
    137:139:boolean removeLambdaDeserializationMethods(java.lang.Iterable):282:284 -> a
    140:141:void finalizeLambdaDesugaringForD8(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):299:300 -> a
    142:142:void synthesizeAccessibilityBridgesForLambdaClasses(java.util.Collection,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):162:162 -> a
    142:142:void finalizeLambdaDesugaringForD8(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):299 -> a
    143:148:void finalizeLambdaDesugaringForD8(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):301:306 -> a
    149:152:void optimizeSynthesizedClasses(com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):311:314 -> a
    153:153:void optimizeSynthesizedClasses(com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService):311:311 -> a
    154:159:void finalizeLambdaDesugaringForR8(com.android.tools.r8.graph.DexApplication$Builder):321:326 -> a
    160:166:com.android.tools.r8.ir.desugar.LambdaDescriptor inferLambdaDescriptor(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexType):345:351 -> a
    167:173:java.lang.Object putIfAbsent(java.util.Map,java.lang.Object,java.lang.Object):422:428 -> a
    167:173:com.android.tools.r8.ir.desugar.LambdaDescriptor inferLambdaDescriptor(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexType):348 -> a
    174:174:com.android.tools.r8.ir.desugar.LambdaDescriptor inferLambdaDescriptor(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexType):348:348 -> a
    175:175:java.lang.Object putIfAbsent(java.util.Map,java.lang.Object,java.lang.Object):429:429 -> a
    175:175:com.android.tools.r8.ir.desugar.LambdaDescriptor inferLambdaDescriptor(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexType):348 -> a
    176:180:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):361:365 -> a
    181:187:java.lang.Object putIfAbsent(java.util.Map,java.lang.Object,java.lang.Object):422:428 -> a
    181:187:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):366 -> a
    188:188:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):366:366 -> a
    189:189:com.android.tools.r8.graph.AppView getAppView():98:98 -> a
    189:189:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):370 -> a
    190:190:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):370:370 -> a
    191:191:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    191:191:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):370 -> a
    192:192:com.android.tools.r8.graph.AppView getAppView():98:98 -> a
    192:192:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):372 -> a
    193:193:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):372:372 -> a
    194:194:com.android.tools.r8.graph.AppView getAppView():98:98 -> a
    194:194:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):375 -> a
    195:198:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):376:379 -> a
    199:204:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):399:404 -> a
    199:204:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):382 -> a
    205:205:com.android.tools.r8.graph.AppView getAppView():98:98 -> a
    205:205:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):405 -> a
    205:205:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):382 -> a
    206:206:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):405:405 -> a
    206:206:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):382 -> a
    207:207:com.android.tools.r8.graph.DexItemFactory getFactory():106:106 -> a
    207:207:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):409 -> a
    207:207:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):382 -> a
    208:211:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):409:412 -> a
    208:211:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):382 -> a
    212:212:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):411:411 -> a
    212:212:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):382 -> a
    213:213:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):410:410 -> a
    213:213:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):382 -> a
    214:214:void addRewritingPrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):407:407 -> a
    214:214:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):382 -> a
    215:215:java.lang.Object putIfAbsent(java.util.Map,java.lang.Object,java.lang.Object):429:429 -> a
    215:215:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):366 -> a
    216:216:com.android.tools.r8.graph.AppView getAppView():98:98 -> a
    216:216:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):386 -> a
    217:217:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    217:217:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):386 -> a
    218:218:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):386:386 -> a
    219:219:boolean isInMainDexList(com.android.tools.r8.graph.DexType):355:355 -> a
    219:219:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):387 -> a
    220:220:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):388:388 -> a
    221:223:java.lang.Object getKnown(java.util.Map,java.lang.Object):416:418 -> a
    1:1:com.android.tools.r8.graph.AppView getAppView():98:98 -> b
    2:5:void synthesizeLambdaClassesForWave(java.util.Collection,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.ir.conversion.LensCodeRewriter):120:123 -> b
    6:19:void synthesizeLambdaClassesForMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Consumer,com.android.tools.r8.ir.conversion.LensCodeRewriter):199:212 -> b
    6:19:void synthesizeLambdaClassesForWave(java.util.Collection,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.ir.conversion.LensCodeRewriter):123 -> b
    20:20:com.android.tools.r8.graph.AppView getAppView():98:98 -> b
    20:20:com.android.tools.r8.graph.DexItemFactory getFactory():106 -> b
    20:20:void synthesizeLambdaClassesForMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Consumer,com.android.tools.r8.ir.conversion.LensCodeRewriter):214 -> b
    20:20:void synthesizeLambdaClassesForWave(java.util.Collection,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.ir.conversion.LensCodeRewriter):123 -> b
    21:21:com.android.tools.r8.graph.DexItemFactory getFactory():106:106 -> b
    21:21:void synthesizeLambdaClassesForMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Consumer,com.android.tools.r8.ir.conversion.LensCodeRewriter):214 -> b
    21:21:void synthesizeLambdaClassesForWave(java.util.Collection,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.ir.conversion.LensCodeRewriter):123 -> b
    22:22:void synthesizeLambdaClassesForMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Consumer,com.android.tools.r8.ir.conversion.LensCodeRewriter):214:214 -> b
    22:22:void synthesizeLambdaClassesForWave(java.util.Collection,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.ir.conversion.LensCodeRewriter):123 -> b
    23:23:void synthesizeLambdaClassesForMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Consumer,com.android.tools.r8.ir.conversion.LensCodeRewriter):212:212 -> b
    23:23:void synthesizeLambdaClassesForWave(java.util.Collection,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.ir.conversion.LensCodeRewriter):123 -> b
    24:38:void synthesizeLambdaClassesForWave(java.util.Collection,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.ir.conversion.LensCodeRewriter):132:146 -> b
    39:39:com.android.tools.r8.graph.AppView getAppView():98:98 -> b
    39:39:void synthesizeLambdaClassesForWave(java.util.Collection,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.ir.conversion.LensCodeRewriter):151 -> b
    40:42:void synthesizeLambdaClassesForWave(java.util.Collection,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.ir.conversion.LensCodeRewriter):151:153 -> b
    43:47:void synthesizeLambdaClassesForWave(java.util.Collection,com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed,com.android.tools.r8.ir.conversion.LensCodeRewriter):152:156 -> b
    1:3:java.util.Set getDesugaredCallSites():331:333 -> c
    1:1:com.android.tools.r8.graph.AppView getAppView():98:98 -> d
    1:1:com.android.tools.r8.graph.DexItemFactory getFactory():106 -> d
    2:2:com.android.tools.r8.graph.DexItemFactory getFactory():106:106 -> d
    1:1:void installGraphLens():110:110 -> e
com.android.tools.r8.ir.desugar.LambdaRewriter$1 -> com.android.tools.r8.t.c.I:
    com.android.tools.r8.ir.conversion.LensCodeRewriter val$lensCodeRewriter -> a
    java.util.function.Consumer val$consumer -> c
    com.android.tools.r8.ir.desugar.LambdaRewriter this$0 -> d
    com.android.tools.r8.graph.DexEncodedMethod val$method -> b
    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.conversion.LensCodeRewriter,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Consumer):214:214 -> <init>
    1:3:void registerCallSite(com.android.tools.r8.graph.DexCallSite):218:220 -> registerCallSite
    4:7:void registerCallSite(com.android.tools.r8.graph.DexCallSite):219:222 -> registerCallSite
com.android.tools.r8.ir.desugar.LambdaRewriterGraphLense -> com.android.tools.r8.t.c.K:
    boolean shouldMapInvocationType -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():15:15 -> <clinit>
    1:7:void <init>(com.android.tools.r8.graph.AppView):26:32 -> <init>
    8:8:void <init>(com.android.tools.r8.graph.AppView):25:25 -> <init>
    9:9:void <init>(com.android.tools.r8.graph.AppView):22:22 -> <init>
    1:1:void addOriginalMethodSignatures(java.util.Map):41:41 -> a
    1:1:void markShouldMapInvocationType():45:45 -> b
    1:3:com.android.tools.r8.ir.code.Invoke$Type mapInvocationType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):51:53 -> mapInvocationType
com.android.tools.r8.ir.desugar.LambdaSynthesizedCode -> com.android.tools.r8.t.c.L:
    com.android.tools.r8.ir.desugar.LambdaClass lambda -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():14:14 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass):19:20 -> <init>
    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor descriptor():28:28 -> a
    1:1:com.android.tools.r8.graph.DexType[] captures():32 -> a
    2:4:com.android.tools.r8.graph.DexType[] captures():32:34 -> a
com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring -> com.android.tools.r8.t.c.M:
    java.util.Map bridges -> b
    java.util.Map getFieldBridges -> c
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Map putFieldBridges -> d
    boolean nestConstructorUsed -> f
    boolean $assertionsDisabled -> g
    com.android.tools.r8.graph.DexProgramClass nestConstructor -> e
    1:1:void <clinit>():40:40 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):66:66 -> <init>
    2:11:void <init>(com.android.tools.r8.graph.AppView):59:68 -> <init>
    void reportIncompleteNest(java.util.List) -> a
    boolean shouldProcessClassInNest(com.android.tools.r8.graph.DexClass,java.util.List) -> a
    1:1:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):81:81 -> a
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    2:2:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):81 -> a
    3:17:com.android.tools.r8.utils.Pair extractNest(com.android.tools.r8.graph.DexClass):96:110 -> a
    18:18:java.util.concurrent.Future asyncProcessNest(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService):114:114 -> a
    19:38:com.android.tools.r8.graph.DexProgramClass createNestAccessConstructor():163:182 -> a
    39:41:void synthesizeNestConstructor(com.android.tools.r8.graph.DexApplication$Builder):187:189 -> a
    42:48:com.android.tools.r8.graph.DexMethod computeMethodBridge(com.android.tools.r8.graph.DexEncodedMethod):224:230 -> a
    49:56:com.android.tools.r8.graph.DexString computeMethodBridgeName(com.android.tools.r8.graph.DexEncodedMethod):198:205 -> a
    49:56:com.android.tools.r8.graph.DexMethod computeMethodBridge(com.android.tools.r8.graph.DexEncodedMethod):231 -> a
    57:57:com.android.tools.r8.graph.DexMethod computeMethodBridge(com.android.tools.r8.graph.DexEncodedMethod):231:231 -> a
    58:65:boolean invokeRequiresRewriting(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):260:267 -> a
    66:73:boolean fieldAccessRequiresRewriting(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexClass):271:278 -> a
    74:75:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):298:299 -> a
    76:77:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):241:242 -> a
    76:77:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
    78:78:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():139:139 -> a
    78:78:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):244 -> a
    78:78:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
    79:82:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):244:247 -> a
    79:82:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
    83:83:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():139:139 -> a
    83:83:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):249 -> a
    83:83:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
    84:89:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):250:255 -> a
    84:89:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
    90:90:com.android.tools.r8.graph.DexString computeFieldBridgeName(com.android.tools.r8.graph.DexEncodedField,boolean):209:209 -> a
    90:90:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):256 -> a
    90:90:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
    91:91:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():139:139 -> a
    91:91:com.android.tools.r8.graph.DexString computeFieldBridgeName(com.android.tools.r8.graph.DexEncodedField,boolean):211 -> a
    91:91:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):256 -> a
    91:91:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
    92:94:com.android.tools.r8.graph.DexString computeFieldBridgeName(com.android.tools.r8.graph.DexEncodedField,boolean):212:214 -> a
    92:94:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):256 -> a
    92:94:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
    95:95:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():139:139 -> a
    95:95:com.android.tools.r8.graph.DexString computeFieldBridgeName(com.android.tools.r8.graph.DexEncodedField,boolean):215 -> a
    95:95:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):256 -> a
    95:95:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
    96:100:com.android.tools.r8.graph.DexString computeFieldBridgeName(com.android.tools.r8.graph.DexEncodedField,boolean):216:220 -> a
    96:100:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):256 -> a
    96:100:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
    101:101:com.android.tools.r8.graph.DexMethod computeFieldBridge(com.android.tools.r8.graph.DexEncodedField,boolean):256:256 -> a
    101:101:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):300 -> a
    102:108:com.android.tools.r8.graph.DexMethod ensureFieldAccessBridge(com.android.tools.r8.graph.DexEncodedField,boolean):301:307 -> a
    109:109:com.android.tools.r8.graph.DexEncodedMethod lambda$ensureFieldAccessBridge$1(com.android.tools.r8.graph.DexEncodedField,boolean,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexField):310:310 -> a
    110:112:com.android.tools.r8.graph.DexEncodedMethod lambda$ensureInvokeBridge$2(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):334:336 -> a
    1:2:com.android.tools.r8.graph.DexType getNestConstructorType():72:73 -> b
    3:12:boolean holderRequiresBridge(com.android.tools.r8.graph.DexClass):284:293 -> b
    13:18:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):317:322 -> b
    19:20:com.android.tools.r8.graph.DexMethod computeInitializerBridge(com.android.tools.r8.graph.DexMethod):235:236 -> b
    19:20:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):322 -> b
    21:23:com.android.tools.r8.graph.DexProto com.android.tools.r8.graph.DexItemFactory.appendTypeToProto(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexType):1309:1311 -> b
    21:23:com.android.tools.r8.graph.DexMethod computeInitializerBridge(com.android.tools.r8.graph.DexMethod):236 -> b
    21:23:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):322 -> b
    24:27:com.android.tools.r8.graph.DexProto com.android.tools.r8.graph.DexItemFactory.appendTypeToProto(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexType):1310:1313 -> b
    24:27:com.android.tools.r8.graph.DexMethod computeInitializerBridge(com.android.tools.r8.graph.DexMethod):236 -> b
    24:27:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):322 -> b
    28:28:com.android.tools.r8.graph.DexMethod computeInitializerBridge(com.android.tools.r8.graph.DexMethod):237:237 -> b
    28:28:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):322 -> b
    29:29:com.android.tools.r8.graph.DexProto com.android.tools.r8.graph.DexItemFactory.appendTypeToProto(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexType):1309:1309 -> b
    29:29:com.android.tools.r8.graph.DexMethod computeInitializerBridge(com.android.tools.r8.graph.DexMethod):236 -> b
    29:29:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):322 -> b
    30:37:com.android.tools.r8.graph.DexMethod ensureInvokeBridge(com.android.tools.r8.graph.DexEncodedMethod):324:331 -> b
    1:4:java.lang.Object lambda$asyncProcessNest$0(com.android.tools.r8.graph.DexClass):116:119 -> c
    5:9:void processNest(com.android.tools.r8.graph.DexClass,java.util.List):127:131 -> c
    5:9:java.lang.Object lambda$asyncProcessNest$0(com.android.tools.r8.graph.DexClass):119 -> c
    10:14:void reportDesugarDependencies(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):152:156 -> c
    10:14:void processNest(com.android.tools.r8.graph.DexClass,java.util.List):135 -> c
    10:14:java.lang.Object lambda$asyncProcessNest$0(com.android.tools.r8.graph.DexClass):119 -> c
    15:20:void processNest(com.android.tools.r8.graph.DexClass,java.util.List):136:141 -> c
    15:20:java.lang.Object lambda$asyncProcessNest$0(com.android.tools.r8.graph.DexClass):119 -> c
    void reportMissingNestHost(com.android.tools.r8.graph.DexClass) -> d
com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess -> com.android.tools.r8.t.c.M$a:
    com.android.tools.r8.graph.DexEncodedField field -> a
    boolean isGet -> b
    1:3:void <init>(com.android.tools.r8.graph.DexEncodedField,boolean):446:448 -> <init>
    1:1:com.android.tools.r8.graph.DexField getField():509:509 -> a
    1:1:com.android.tools.r8.graph.DexType getHolder():505:505 -> b
    1:1:com.android.tools.r8.graph.DexType getType():501:501 -> c
    1:1:boolean isInstance():481:481 -> d
    1:1:boolean isInstanceGet():493 -> d
    2:2:boolean isGet():469:469 -> d
    2:2:boolean isInstanceGet():493 -> d
    1:1:boolean isGet():469:469 -> e
    1:1:boolean isPut():477 -> e
    1:5:boolean equals(java.lang.Object):461:465 -> equals
    1:1:boolean isStatic():473:473 -> f
    1:1:boolean isStaticGet():485:485 -> g
    2:2:boolean isGet():469:469 -> g
    2:2:boolean isStaticGet():485 -> g
    1:1:int hashCode():453:453 -> hashCode
com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$NestBasedAccessDesugaringUseRegistry -> com.android.tools.r8.t.c.N:
    com.android.tools.r8.graph.DexClass currentClass -> a
    com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring this$0 -> c
    com.android.tools.r8.graph.DexMethod context -> b
    1:3:void <init>(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring,com.android.tools.r8.graph.DexClass):345:347 -> <init>
    1:1:void setContext(com.android.tools.r8.graph.DexMethod):351:351 -> a
    2:5:boolean registerInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):357:360 -> a
    6:7:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.definitionFor(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):86:87 -> a
    6:7:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.access$000(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):40 -> a
    6:7:boolean registerInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):360 -> a
    8:8:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    8:8:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.definitionFor(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):86 -> a
    8:8:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.access$000(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):40 -> a
    8:8:boolean registerInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):360 -> a
    9:10:boolean registerInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):361:362 -> a
    11:11:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,boolean):369:369 -> a
    12:12:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.definitionFor(com.android.tools.r8.graph.DexField):91:91 -> a
    12:12:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.access$100(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring,com.android.tools.r8.graph.DexField):40 -> a
    12:12:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,boolean):369 -> a
    13:13:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):180:180 -> a
    13:13:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.definitionFor(com.android.tools.r8.graph.DexField):91 -> a
    13:13:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring.access$100(com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring,com.android.tools.r8.graph.DexField):40 -> a
    13:13:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,boolean):369 -> a
    14:15:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,boolean):370:371 -> a
    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):413:413 -> registerInstanceFieldRead
    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):408:408 -> registerInstanceFieldWrite
    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):386:386 -> registerInvokeDirect
    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):398:398 -> registerInvokeInterface
    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):391:391 -> registerInvokeStatic
    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):403:403 -> registerInvokeSuper
    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):381:381 -> registerInvokeVirtual
    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):426:426 -> registerStaticFieldRead
    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):431:431 -> registerStaticFieldWrite
com.android.tools.r8.ir.desugar.NestedPrivateMethodLense -> com.android.tools.r8.t.c.P:
    java.util.Map getFieldMap -> b
    java.util.Map putFieldMap -> c
    com.android.tools.r8.graph.DexType nestConstructorType -> a
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():18:18 -> <clinit>
    1:7:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.graph.GraphLense):33:39 -> <init>
    8:22:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.graph.GraphLense):32:46 -> <init>
    1:3:com.android.tools.r8.graph.DexMethod lookupFieldForMethod(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod,java.util.Map):51:53 -> a
    4:9:boolean isConstructorBridge(com.android.tools.r8.graph.DexMethod):92:97 -> a
    1:1:com.android.tools.r8.ir.desugar.NestedPrivateMethodLense$Builder builder():131:131 -> b
    1:5:boolean isContextFreeForMethod(com.android.tools.r8.graph.DexMethod):78:82 -> isContextFreeForMethod
    1:1:boolean isContextFreeForMethods():73:73 -> isContextFreeForMethods
    1:2:com.android.tools.r8.graph.DexMethod lookupGetFieldForMethod(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod):61:62 -> lookupGetFieldForMethod
    1:14:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):114:127 -> lookupMethod
    1:6:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):102:107 -> lookupPrototypeChanges
    1:2:com.android.tools.r8.graph.DexMethod lookupPutFieldForMethod(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod):67:68 -> lookupPutFieldForMethod
com.android.tools.r8.ir.desugar.NestedPrivateMethodLense$Builder -> com.android.tools.r8.t.c.O:
    boolean $assertionsDisabled -> h
    java.util.Map getFieldMap -> f
    java.util.Map putFieldMap -> g
    1:1:void <clinit>():134:134 -> <clinit>
    1:4:void <init>():134:137 -> <init>
    1:1:void mapGetField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod):140:140 -> a
    2:8:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):148:154 -> a
    1:1:void mapPutField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexMethod):144:144 -> b
com.android.tools.r8.ir.desugar.PrefixRewritingMapper -> com.android.tools.r8.t.c.Q:
    1:1:void <init>():22:22 -> <init>
    boolean isRewriting() -> a
    void rewriteType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType) -> a
    1:1:boolean hasRewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):33:33 -> a
    2:6:boolean hasRewrittenTypeInSignature(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.AppView):37:41 -> a
    com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView) -> b
com.android.tools.r8.ir.desugar.PrefixRewritingMapper$DesugarPrefixRewritingMapper -> com.android.tools.r8.t.c.Q$a:
    java.util.Map rewritten -> b
    java.util.Map initialPrefixes -> c
    com.android.tools.r8.graph.DexItemFactory factory -> d
    boolean l8Compilation -> e
    boolean $assertionsDisabled -> f
    java.util.Set notRewritten -> a
    1:1:void <clinit>():50:50 -> <clinit>
    1:1:void <init>(java.util.Map,com.android.tools.r8.utils.InternalOptions):58:58 -> <init>
    2:16:void <init>(java.util.Map,com.android.tools.r8.utils.InternalOptions):52:66 -> <init>
    boolean isRewriting() -> a
    1:1:com.android.tools.r8.graph.DexString toDescriptorPrefix(java.lang.String):70:70 -> a
    2:25:void validatePrefixes(java.util.Map):74:97 -> a
    26:26:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    26:26:void validatePrefixes(java.util.Map):97 -> a
    27:27:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    27:27:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    27:27:void validatePrefixes(java.util.Map):97 -> a
    28:28:void validatePrefixes(java.util.Map):97:97 -> a
    29:39:void rewriteType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):137:147 -> a
    1:6:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):106:111 -> b
    7:7:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):151:151 -> b
    7:7:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
    8:8:int com.android.tools.r8.graph.DexString.getArrayDim():511:511 -> b
    8:8:com.android.tools.r8.graph.DexString com.android.tools.r8.graph.DexString.withoutArray(com.android.tools.r8.graph.DexItemFactory):500 -> b
    8:8:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):151 -> b
    8:8:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
    9:11:com.android.tools.r8.graph.DexString com.android.tools.r8.graph.DexString.withoutArray(com.android.tools.r8.graph.DexItemFactory):504:506 -> b
    9:11:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):151 -> b
    9:11:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
    12:12:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):152:152 -> b
    12:12:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
    13:16:com.android.tools.r8.graph.DexType lookup(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,java.util.Map):163:166 -> b
    13:16:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):152 -> b
    13:16:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
    17:17:int com.android.tools.r8.graph.DexString.getArrayDim():511:511 -> b
    17:17:com.android.tools.r8.graph.DexString com.android.tools.r8.graph.DexString.withNewPrefix(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):478 -> b
    17:17:com.android.tools.r8.graph.DexType lookup(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,java.util.Map):166 -> b
    17:17:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):152 -> b
    17:17:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
    18:35:com.android.tools.r8.graph.DexString com.android.tools.r8.graph.DexString.withNewPrefix(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):479:496 -> b
    18:35:com.android.tools.r8.graph.DexType lookup(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,java.util.Map):166 -> b
    18:35:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):152 -> b
    18:35:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
    36:37:com.android.tools.r8.graph.DexType lookup(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,java.util.Map):167:168 -> b
    36:37:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):152 -> b
    36:37:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
    38:42:void failIfRewritingProgramType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):118:122 -> b
    38:42:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):154 -> b
    38:42:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
    43:43:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    43:43:void failIfRewritingProgramType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):123 -> b
    43:43:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):154 -> b
    43:43:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
    44:48:void failIfRewritingProgramType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):124:128 -> b
    44:48:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):154 -> b
    44:48:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
    49:49:com.android.tools.r8.graph.DexType computePrefix(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):157:157 -> b
    49:49:com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):113 -> b
com.android.tools.r8.ir.desugar.PrefixRewritingMapper$EmptyPrefixRewritingMapper -> com.android.tools.r8.t.c.S:
    1:1:void <init>():181:181 -> <init>
    boolean isRewriting() -> a
    void rewriteType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType) -> a
    com.android.tools.r8.graph.DexType rewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView) -> b
com.android.tools.r8.ir.desugar.R8NestBasedAccessDesugaring -> com.android.tools.r8.t.c.T:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():31:31 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):34:34 -> <init>
    boolean shouldProcessClassInNest(com.android.tools.r8.graph.DexClass,java.util.List) -> a
    1:1:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):39:39 -> a
    2:2:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    2:2:boolean com.android.tools.r8.utils.InternalOptions.canUseNestBasedAccess():1116 -> a
    2:2:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):39 -> a
    3:4:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):39:40 -> a
    5:5:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):39:39 -> a
    6:22:void computeAndProcessNestsConcurrently(java.util.concurrent.ExecutorService):78:94 -> a
    6:22:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):41 -> a
    23:24:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):42:43 -> a
    25:27:void clearNestAttributes():70:72 -> a
    25:27:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):44 -> a
    28:29:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication$Builder):45:46 -> a
    30:32:void addDeferredBridgesAndMapMethods(com.android.tools.r8.ir.desugar.NestedPrivateMethodLense$Builder):51:53 -> a
    33:39:void addDeferredBridgesAndMapMethods(java.util.Map,java.util.function.BiConsumer):58:64 -> a
    40:43:void reportIncompleteNest(java.util.List):114:117 -> a
    1:4:void reportMissingNestHost(com.android.tools.r8.graph.DexClass):105:108 -> d
com.android.tools.r8.ir.desugar.StringConcatRewriter -> com.android.tools.r8.t.c.Z:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.DexMethod defaultAppendMethod -> h
    com.android.tools.r8.graph.DexMethod stringBuilderToString -> f
    com.android.tools.r8.graph.DexMethod stringBuilderInit -> e
    com.android.tools.r8.graph.DexMethod makeConcatWithConstants -> d
    com.android.tools.r8.graph.DexMethod makeConcat -> c
    java.util.Map paramTypeToAppendMethod -> g
    1:1:void <init>(com.android.tools.r8.graph.AppView):62:62 -> <init>
    2:16:void <init>(com.android.tools.r8.graph.AppView):59:73 -> <init>
    17:24:void <init>(com.android.tools.r8.graph.AppView):71:78 -> <init>
    25:32:void <init>(com.android.tools.r8.graph.AppView):75:82 -> <init>
    33:39:void <init>(com.android.tools.r8.graph.AppView):80:86 -> <init>
    40:47:void <init>(com.android.tools.r8.graph.AppView):84:91 -> <init>
    48:51:void <init>(com.android.tools.r8.graph.AppView):90:93 -> <init>
    52:55:void <init>(com.android.tools.r8.graph.AppView):92:95 -> <init>
    56:59:void <init>(com.android.tools.r8.graph.AppView):94:97 -> <init>
    60:63:void <init>(com.android.tools.r8.graph.AppView):96:99 -> <init>
    64:67:void <init>(com.android.tools.r8.graph.AppView):98:101 -> <init>
    68:71:void <init>(com.android.tools.r8.graph.AppView):100:103 -> <init>
    72:75:void <init>(com.android.tools.r8.graph.AppView):102:105 -> <init>
    76:79:void <init>(com.android.tools.r8.graph.AppView):104:107 -> <init>
    80:83:void <init>(com.android.tools.r8.graph.AppView):106:109 -> <init>
    84:84:void <init>(com.android.tools.r8.graph.AppView):108:108 -> <init>
    1:1:com.android.tools.r8.graph.DexItemFactory access$100(com.android.tools.r8.ir.desugar.StringConcatRewriter):39:39 -> a
    2:25:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):117:140 -> a
    26:41:void rewriteMakeConcat(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):155:170 -> a
    26:41:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):141 -> a
    42:47:void rewriteMakeConcat(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):169:174 -> a
    42:47:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):141 -> a
    48:49:void rewriteMakeConcat(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):162:163 -> a
    48:49:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):141 -> a
    50:50:void rewriteMakeConcat(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):162:162 -> a
    50:50:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):141 -> a
    51:51:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):142:142 -> a
    52:101:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):190:239 -> a
    52:101:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    102:102:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):238:238 -> a
    102:102:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    103:117:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):236:250 -> a
    103:117:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    118:119:java.lang.String convertToString(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexValue):276:277 -> a
    118:119:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):250 -> a
    118:119:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    120:120:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):250:250 -> a
    120:120:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    121:122:java.lang.String convertToString(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexValue):279:280 -> a
    121:122:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):250 -> a
    121:122:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    123:123:java.lang.String convertToString(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexValue):279:279 -> a
    123:123:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):250 -> a
    123:123:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    124:152:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):244:272 -> a
    124:152:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    153:154:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):262:263 -> a
    153:154:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    155:155:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):262:262 -> a
    155:155:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    156:156:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):258:258 -> a
    156:156:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    157:157:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):217:217 -> a
    157:157:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    158:158:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):205:205 -> a
    158:158:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    159:160:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):199:200 -> a
    159:160:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    161:161:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):199:199 -> a
    161:161:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143 -> a
    162:164:com.android.tools.r8.errors.CompilationError error(com.android.tools.r8.graph.DexMethod,java.lang.String):456:458 -> a
    165:165:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    165:165:com.android.tools.r8.errors.CompilationError error(com.android.tools.r8.graph.DexMethod,java.lang.String):458 -> a
    1:1:com.android.tools.r8.graph.DexMethod access$200(com.android.tools.r8.ir.desugar.StringConcatRewriter):39:39 -> b
    1:1:com.android.tools.r8.graph.DexMethod access$300(com.android.tools.r8.ir.desugar.StringConcatRewriter):39:39 -> c
com.android.tools.r8.ir.desugar.StringConcatRewriter$1 -> com.android.tools.r8.t.c.U:
com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder -> com.android.tools.r8.t.c.Y:
    java.util.ListIterator blocks -> c
    com.android.tools.r8.ir.code.BasicBlock currentBlock -> f
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> i
    com.android.tools.r8.ir.code.Instruction invokeCustom -> e
    com.android.tools.r8.ir.code.IRCode code -> b
    com.android.tools.r8.ir.code.InstructionListIterator instructions -> d
    java.util.List chunks -> g
    com.android.tools.r8.ir.desugar.StringConcatRewriter this$0 -> h
    1:1:void <clinit>():283:283 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.desugar.StringConcatRewriter$1):283:283 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator):296:296 -> <init>
    3:17:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator):290:304 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$500(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder):283:283 -> a
    2:3:void appendInstruction(com.android.tools.r8.ir.code.Instruction):308:309 -> a
    2:3:void access$400(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder,com.android.tools.r8.ir.code.Instruction):283 -> a
    4:4:void addChunk(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexMethod):313:313 -> a
    5:5:void addChunk(java.lang.String,com.android.tools.r8.graph.DexMethod):317:317 -> a
    6:11:void desugar():338:343 -> a
    12:12:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    12:12:void desugar():343 -> a
    13:13:void desugar():344:344 -> a
    14:15:void appendInstruction(com.android.tools.r8.ir.code.Instruction):308:309 -> a
    14:15:void desugar():344 -> a
    16:17:void desugar():347:348 -> a
    18:18:void com.android.tools.r8.ir.code.InvokeDirect.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):37:37 -> a
    18:18:void desugar():348 -> a
    19:20:void appendInstruction(com.android.tools.r8.ir.code.Instruction):308:309 -> a
    19:20:void desugar():347 -> a
    21:21:void desugar():351:351 -> a
    22:24:void com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder$Chunk.addAppendCall(com.android.tools.r8.ir.code.Value):413:415 -> a
    22:24:void desugar():352 -> a
    25:25:void com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder$Chunk.addAppendCall(com.android.tools.r8.ir.code.Value):413:413 -> a
    25:25:void desugar():352 -> a
    26:35:void desugar():356:365 -> a
    36:36:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    36:36:void desugar():365 -> a
    37:38:void desugar():369:370 -> a
    39:69:void desugar():369:399 -> a
    1:1:com.android.tools.r8.ir.code.IRCode access$600(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder):283:283 -> b
com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder$ArgumentChunk -> com.android.tools.r8.t.c.V:
    com.android.tools.r8.ir.code.Value value -> c
    1:2:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexMethod):423:424 -> <init>
    1:1:com.android.tools.r8.ir.code.Value getOrCreateValue():429:429 -> a
com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder$Chunk -> com.android.tools.r8.t.c.W:
    com.android.tools.r8.graph.DexMethod method -> a
    com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder this$1 -> b
    1:2:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder,com.android.tools.r8.graph.DexMethod):406:407 -> <init>
    com.android.tools.r8.ir.code.Value getOrCreateValue() -> a
com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder$ConstantChunk -> com.android.tools.r8.t.c.X:
    com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder this$1 -> d
    java.lang.String str -> c
    1:3:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder,java.lang.String,com.android.tools.r8.graph.DexMethod):436:438 -> <init>
    1:2:com.android.tools.r8.ir.code.Value getOrCreateValue():443:444 -> a
    3:3:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    3:3:com.android.tools.r8.ir.code.Value getOrCreateValue():444 -> a
    4:8:com.android.tools.r8.ir.code.Value getOrCreateValue():445:449 -> a
    9:9:com.android.tools.r8.ir.code.Value getOrCreateValue():445:445 -> a
com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode -> com.android.tools.r8.t.c.a0:
    boolean $assertionsDisabled -> n
    com.android.tools.r8.ir.desugar.LambdaClass lambda -> m
    com.android.tools.r8.graph.DexMethod currentMethod -> l
    1:1:void <clinit>():15:15 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexType):22:24 -> <init>
    4:4:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):29:29 -> <init>
    1:2:int enforceParameterType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):51:52 -> a
    3:3:void lambda$enforceParameterType$0(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor descriptor():33:33 -> i
    1:1:com.android.tools.r8.graph.DexType[] captures():37 -> i
    2:4:com.android.tools.r8.graph.DexType[] captures():37:39 -> i
    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor descriptor():33:33 -> j
    1:1:com.android.tools.r8.graph.DexItemFactory factory():43:43 -> k
    1:1:java.lang.String toString():59:59 -> toString
com.android.tools.r8.ir.desugar.TwrCloseResourceRewriter -> com.android.tools.r8.t.c.b0:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set referencingClasses -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.DexMethod twrCloseResourceMethod -> c
    com.android.tools.r8.ir.conversion.IRConverter converter -> b
    1:1:void <clinit>():50:50 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):62:62 -> <init>
    2:14:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):60:72 -> <init>
    1:13:boolean isSynthesizedCloseResourceMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.AppView):107:119 -> a
    14:19:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):126:131 -> a
    20:55:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):237:272 -> a
    20:55:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    56:69:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):269:282 -> a
    56:69:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    70:72:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):281:283 -> a
    70:72:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    73:89:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):279:295 -> a
    73:89:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    90:94:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):292:296 -> a
    90:94:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    95:116:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):290:311 -> a
    95:116:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    117:121:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):308:312 -> a
    117:121:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    122:145:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):306:329 -> a
    122:145:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    146:157:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):326:337 -> a
    146:157:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    158:160:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):336:338 -> a
    158:160:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    161:173:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):334:346 -> a
    161:173:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    174:177:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):344:347 -> a
    174:177:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    178:192:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):342:356 -> a
    178:192:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    193:196:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):354:357 -> a
    193:196:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    197:209:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):352:364 -> a
    197:209:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    210:212:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):363:365 -> a
    210:212:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    213:227:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):361:375 -> a
    213:227:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    228:232:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):372:376 -> a
    228:232:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    233:254:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):370:391 -> a
    233:254:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    255:267:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):388:400 -> a
    255:267:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    268:271:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):398:401 -> a
    268:271:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    272:285:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):396:409 -> a
    272:285:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    286:288:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):408:410 -> a
    286:288:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    289:301:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):406:418 -> a
    289:301:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    302:305:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):416:419 -> a
    302:305:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    306:318:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):414:426 -> a
    306:318:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    319:321:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):425:427 -> a
    319:321:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    322:336:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):423:437 -> a
    322:336:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    337:341:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):434:438 -> a
    337:341:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    342:360:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):432:450 -> a
    342:360:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    361:363:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):449:451 -> a
    361:363:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    364:364:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):447:447 -> a
    364:364:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    365:581:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):259:475 -> a
    365:581:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    582:594:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):474:486 -> a
    582:594:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    595:602:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):485:492 -> a
    595:602:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    603:610:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):491:498 -> a
    603:610:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    611:618:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):497:504 -> a
    611:618:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    619:627:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):503:511 -> a
    619:627:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    628:670:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.backports.BackportedMethods.CloseResourceMethod_closeResourceImpl(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):470:512 -> a
    628:670:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):132 -> a
    671:674:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):134:137 -> a
    675:675:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    675:675:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):137 -> a
    676:704:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):140:168 -> a
    705:705:boolean lambda$synthesizeUtilityClass$0(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.DexProgramClass):165:165 -> a
    706:706:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    706:706:void rewriteMethodCode(com.android.tools.r8.ir.code.IRCode):82 -> a
    707:723:void rewriteMethodCode(com.android.tools.r8.ir.code.IRCode):83:99 -> a
    724:724:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    724:724:void rewriteMethodCode(com.android.tools.r8.ir.code.IRCode):98 -> a
    725:725:void rewriteMethodCode(com.android.tools.r8.ir.code.IRCode):102:102 -> a
com.android.tools.r8.ir.desugar.backports.BackportedMethods -> com.android.tools.r8.t.c.c0.a:
    1:30:com.android.tools.r8.graph.CfCode IntegerMethods_remainderUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1818:1847 -> A
    1:18:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5061:5078 -> A0
    19:33:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5075:5089 -> A0
    34:44:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5086:5096 -> A0
    45:47:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5095:5097 -> A0
    48:62:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5093:5107 -> A0
    63:63:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5104:5104 -> A0
    64:107:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5070:5113 -> A0
    1:16:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1851:1866 -> B
    1:18:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5118:5135 -> B0
    19:33:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5132:5146 -> B0
    34:44:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5143:5153 -> B0
    45:47:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5152:5154 -> B0
    48:62:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5150:5164 -> B0
    63:63:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5161:5161 -> B0
    64:107:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5127:5170 -> B0
    1:18:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1870:1887 -> C
    19:23:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1884:1888 -> C
    24:24:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1882:1882 -> C
    25:42:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1876:1893 -> C
    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_isEmpty(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5174:5190 -> C0
    18:18:com.android.tools.r8.graph.CfCode OptionalMethods_isEmpty(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5187:5187 -> C0
    19:38:com.android.tools.r8.graph.CfCode OptionalMethods_isEmpty(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5182:5201 -> C0
    1:25:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1898:1922 -> D
    26:30:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1919:1923 -> D
    31:31:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1917:1917 -> D
    32:55:com.android.tools.r8.graph.CfCode IntegerMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1905:1928 -> D
    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5205:5221 -> D0
    18:18:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5218:5218 -> D0
    19:38:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5213:5232 -> D0
    1:30:com.android.tools.r8.graph.CfCode LongMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1932:1961 -> E
    31:35:com.android.tools.r8.graph.CfCode LongMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1958:1962 -> E
    36:36:com.android.tools.r8.graph.CfCode LongMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1956:1956 -> E
    37:64:com.android.tools.r8.graph.CfCode LongMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1940:1967 -> E
    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5236:5252 -> E0
    18:18:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5249:5249 -> E0
    19:38:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5244:5263 -> E0
    1:100:com.android.tools.r8.graph.CfCode LongMethods_divideUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1971:2070 -> F
    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5267:5283 -> F0
    18:18:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5280:5280 -> F0
    19:38:com.android.tools.r8.graph.CfCode OptionalMethods_isEmptyLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5275:5294 -> F0
    1:18:com.android.tools.r8.graph.CfCode LongMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2074:2091 -> G
    1:20:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5298:5317 -> G0
    21:24:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5315:5318 -> G0
    25:40:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5313:5328 -> G0
    41:57:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5325:5341 -> G0
    58:60:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5340:5342 -> G0
    61:77:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5338:5354 -> G0
    78:81:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5352:5355 -> G0
    82:89:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5350:5357 -> G0
    90:143:com.android.tools.r8.graph.CfCode OptionalMethods_or(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5308:5361 -> G0
    1:18:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2095:2112 -> H
    19:23:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2109:2113 -> H
    24:24:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2107:2107 -> H
    25:42:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2101:2118 -> H
    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5365:5381 -> H0
    18:31:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5378:5391 -> H0
    32:34:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5390:5392 -> H0
    35:47:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5388:5400 -> H0
    48:51:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5398:5401 -> H0
    52:66:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5396:5410 -> H0
    67:69:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5409:5411 -> H0
    70:70:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5407:5407 -> H0
    71:114:com.android.tools.r8.graph.CfCode OptionalMethods_stream(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5373:5416 -> H0
    1:35:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2123:2157 -> I
    36:55:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2154:2173 -> I
    56:59:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2171:2174 -> I
    60:86:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2169:2195 -> I
    87:90:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2193:2196 -> I
    91:104:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2191:2204 -> I
    105:108:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2202:2205 -> I
    109:122:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2200:2213 -> I
    123:126:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2211:2214 -> I
    127:146:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2209:2228 -> I
    147:151:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2225:2229 -> I
    152:169:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2223:2240 -> I
    170:172:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2239:2241 -> I
    173:208:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2237:2272 -> I
    209:211:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2271:2273 -> I
    212:226:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2269:2283 -> I
    227:231:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2280:2284 -> I
    232:255:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2278:2301 -> I
    256:259:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2299:2302 -> I
    260:293:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2297:2330 -> I
    294:298:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2327:2331 -> I
    299:320:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2325:2346 -> I
    321:324:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2344:2347 -> I
    325:338:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2342:2355 -> I
    339:342:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2353:2356 -> I
    343:343:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2351:2351 -> I
    344:571:com.android.tools.r8.graph.CfCode LongMethods_parseUnsignedLongWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2149:2376 -> I
    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_streamDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5420:5436 -> I0
    18:31:com.android.tools.r8.graph.CfCode OptionalMethods_streamDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5433:5446 -> I0
    32:43:com.android.tools.r8.graph.CfCode OptionalMethods_streamDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5443:5454 -> I0
    44:47:com.android.tools.r8.graph.CfCode OptionalMethods_streamDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5452:5455 -> I0
    48:62:com.android.tools.r8.graph.CfCode OptionalMethods_streamDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5450:5464 -> I0
    63:65:com.android.tools.r8.graph.CfCode OptionalMethods_streamDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5463:5465 -> I0
    66:66:com.android.tools.r8.graph.CfCode OptionalMethods_streamDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5461:5461 -> I0
    67:109:com.android.tools.r8.graph.CfCode OptionalMethods_streamDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5428:5470 -> I0
    1:101:com.android.tools.r8.graph.CfCode LongMethods_remainderUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2380:2480 -> J
    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_streamInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5474:5490 -> J0
    18:31:com.android.tools.r8.graph.CfCode OptionalMethods_streamInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5487:5500 -> J0
    32:43:com.android.tools.r8.graph.CfCode OptionalMethods_streamInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5497:5508 -> J0
    44:47:com.android.tools.r8.graph.CfCode OptionalMethods_streamInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5506:5509 -> J0
    48:62:com.android.tools.r8.graph.CfCode OptionalMethods_streamInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5504:5518 -> J0
    63:65:com.android.tools.r8.graph.CfCode OptionalMethods_streamInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5517:5519 -> J0
    66:66:com.android.tools.r8.graph.CfCode OptionalMethods_streamInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5515:5515 -> J0
    67:109:com.android.tools.r8.graph.CfCode OptionalMethods_streamInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5482:5524 -> J0
    1:18:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2484:2501 -> K
    19:23:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2498:2502 -> K
    24:24:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2496:2496 -> K
    25:42:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2490:2507 -> K
    1:17:com.android.tools.r8.graph.CfCode OptionalMethods_streamLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5528:5544 -> K0
    18:31:com.android.tools.r8.graph.CfCode OptionalMethods_streamLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5541:5554 -> K0
    32:43:com.android.tools.r8.graph.CfCode OptionalMethods_streamLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5551:5562 -> K0
    44:47:com.android.tools.r8.graph.CfCode OptionalMethods_streamLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5560:5563 -> K0
    48:62:com.android.tools.r8.graph.CfCode OptionalMethods_streamLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5558:5572 -> K0
    63:65:com.android.tools.r8.graph.CfCode OptionalMethods_streamLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5571:5573 -> K0
    66:66:com.android.tools.r8.graph.CfCode OptionalMethods_streamLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5569:5569 -> K0
    67:109:com.android.tools.r8.graph.CfCode OptionalMethods_streamLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5536:5578 -> K0
    1:56:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2512:2567 -> L
    57:61:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2564:2568 -> L
    62:103:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2562:2603 -> L
    104:106:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2602:2604 -> L
    107:135:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2600:2628 -> L
    136:140:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2625:2629 -> L
    141:190:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2623:2672 -> L
    191:195:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2669:2673 -> L
    196:227:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2667:2698 -> L
    228:232:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2695:2699 -> L
    233:267:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2693:2727 -> L
    268:272:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2724:2728 -> L
    273:306:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2722:2755 -> L
    307:312:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2751:2756 -> L
    313:313:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2749:2749 -> L
    314:532:com.android.tools.r8.graph.CfCode LongMethods_toUnsignedStringWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2543:2761 -> L
    1:15:com.android.tools.r8.graph.CfCode ShortMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5582:5596 -> L0
    1:40:com.android.tools.r8.graph.CfCode MathMethods_addExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2765:2804 -> M
    41:41:com.android.tools.r8.graph.CfCode MathMethods_addExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2801:2801 -> M
    42:76:com.android.tools.r8.graph.CfCode MathMethods_addExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2775:2809 -> M
    1:19:com.android.tools.r8.graph.CfCode ShortMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5600:5618 -> M0
    1:56:com.android.tools.r8.graph.CfCode MathMethods_addExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2813:2868 -> N
    57:57:com.android.tools.r8.graph.CfCode MathMethods_addExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2865:2865 -> N
    58:105:com.android.tools.r8.graph.CfCode MathMethods_addExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2826:2873 -> N
    1:15:com.android.tools.r8.graph.CfCode ShortMethods_toUnsignedInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5622:5636 -> N0
    1:22:com.android.tools.r8.graph.CfCode MathMethods_decrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2877:2898 -> O
    23:23:com.android.tools.r8.graph.CfCode MathMethods_decrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2895:2895 -> O
    24:47:com.android.tools.r8.graph.CfCode MathMethods_decrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2885:2908 -> O
    1:16:com.android.tools.r8.graph.CfCode ShortMethods_toUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5640:5655 -> O0
    1:23:com.android.tools.r8.graph.CfCode MathMethods_decrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2912:2934 -> P
    24:24:com.android.tools.r8.graph.CfCode MathMethods_decrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2931:2931 -> P
    25:49:com.android.tools.r8.graph.CfCode MathMethods_decrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2920:2944 -> P
    1:18:com.android.tools.r8.graph.CfCode StreamMethods_ofNullable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5659:5676 -> P0
    19:21:com.android.tools.r8.graph.CfCode StreamMethods_ofNullable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5675:5677 -> P0
    22:37:com.android.tools.r8.graph.CfCode StreamMethods_ofNullable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5673:5688 -> P0
    38:41:com.android.tools.r8.graph.CfCode StreamMethods_ofNullable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5686:5689 -> P0
    42:42:com.android.tools.r8.graph.CfCode StreamMethods_ofNullable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5684:5684 -> P0
    43:71:com.android.tools.r8.graph.CfCode StreamMethods_ofNullable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5667:5695 -> P0
    1:55:com.android.tools.r8.graph.CfCode MathMethods_floorDivInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):2948:3002 -> Q
    1:26:com.android.tools.r8.graph.CfCode StringMethods_isBlank(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5699:5724 -> Q0
    27:45:com.android.tools.r8.graph.CfCode StringMethods_isBlank(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5721:5739 -> Q0
    46:48:com.android.tools.r8.graph.CfCode StringMethods_isBlank(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5738:5740 -> Q0
    49:63:com.android.tools.r8.graph.CfCode StringMethods_isBlank(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5736:5750 -> Q0
    64:66:com.android.tools.r8.graph.CfCode StringMethods_isBlank(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5749:5751 -> Q0
    67:85:com.android.tools.r8.graph.CfCode StringMethods_isBlank(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5747:5765 -> Q0
    86:88:com.android.tools.r8.graph.CfCode StringMethods_isBlank(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5764:5766 -> Q0
    89:89:com.android.tools.r8.graph.CfCode StringMethods_isBlank(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5762:5762 -> Q0
    90:154:com.android.tools.r8.graph.CfCode StringMethods_isBlank(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5713:5777 -> Q0
    1:59:com.android.tools.r8.graph.CfCode MathMethods_floorDivLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3006:3064 -> R
    1:29:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5781:5809 -> R0
    30:33:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5807:5810 -> R0
    34:50:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5805:5821 -> R0
    51:72:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5818:5839 -> R0
    73:76:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5837:5840 -> R0
    77:102:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5835:5860 -> R0
    103:106:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5858:5861 -> R0
    107:126:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5856:5875 -> R0
    127:130:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5873:5876 -> R0
    131:149:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5871:5889 -> R0
    150:152:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5888:5890 -> R0
    153:153:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5886:5886 -> R0
    154:253:com.android.tools.r8.graph.CfCode StringMethods_joinArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5796:5895 -> R0
    1:19:com.android.tools.r8.graph.CfCode MathMethods_floorDivLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3068:3086 -> S
    20:24:com.android.tools.r8.graph.CfCode MathMethods_floorDivLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3083:3087 -> S
    25:25:com.android.tools.r8.graph.CfCode MathMethods_floorDivLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3081:3081 -> S
    26:44:com.android.tools.r8.graph.CfCode MathMethods_floorDivLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3074:3092 -> S
    1:28:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5899:5926 -> S0
    29:32:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5924:5927 -> S0
    33:49:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5922:5938 -> S0
    50:63:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5935:5948 -> S0
    64:66:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5947:5949 -> S0
    67:81:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5945:5959 -> S0
    82:96:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5956:5970 -> S0
    97:99:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5969:5971 -> S0
    100:113:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5967:5980 -> S0
    114:117:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5978:5981 -> S0
    118:133:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5976:5991 -> S0
    134:149:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5988:6003 -> S0
    150:153:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6001:6004 -> S0
    154:170:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5999:6015 -> S0
    171:173:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6014:6016 -> S0
    174:187:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6012:6025 -> S0
    188:191:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6023:6026 -> S0
    192:208:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6021:6037 -> S0
    209:211:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6036:6038 -> S0
    212:212:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6034:6034 -> S0
    213:343:com.android.tools.r8.graph.CfCode StringMethods_joinIterable(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5913:6043 -> S0
    1:47:com.android.tools.r8.graph.CfCode MathMethods_floorModInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3096:3142 -> T
    1:33:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6047:6079 -> T0
    34:46:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6076:6088 -> T0
    47:50:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6086:6089 -> T0
    51:65:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6084:6098 -> T0
    66:69:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6096:6099 -> T0
    70:82:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6094:6106 -> T0
    83:85:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6105:6107 -> T0
    86:98:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6103:6115 -> T0
    99:102:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6113:6116 -> T0
    103:118:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6111:6126 -> T0
    119:151:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6123:6155 -> T0
    152:154:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6154:6156 -> T0
    155:178:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6152:6175 -> T0
    179:182:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6173:6176 -> T0
    183:201:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6171:6189 -> T0
    202:204:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6188:6190 -> T0
    205:205:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6186:6186 -> T0
    206:336:com.android.tools.r8.graph.CfCode StringMethods_repeat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6065:6195 -> T0
    1:51:com.android.tools.r8.graph.CfCode MathMethods_floorModLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3146:3196 -> U
    1:32:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6199:6230 -> U0
    33:51:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6227:6245 -> U0
    52:54:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6244:6246 -> U0
    55:69:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6242:6256 -> U0
    70:72:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6255:6257 -> U0
    73:90:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6253:6270 -> U0
    91:93:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6269:6271 -> U0
    94:118:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6267:6291 -> U0
    119:123:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6288:6292 -> U0
    124:140:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6286:6302 -> U0
    141:143:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6301:6303 -> U0
    144:161:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6299:6316 -> U0
    162:164:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6315:6317 -> U0
    165:186:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6313:6334 -> U0
    187:191:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6331:6335 -> U0
    192:192:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6329:6329 -> U0
    193:314:com.android.tools.r8.graph.CfCode StringMethods_strip(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6219:6340 -> U0
    1:19:com.android.tools.r8.graph.CfCode MathMethods_floorModLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3200:3218 -> V
    20:24:com.android.tools.r8.graph.CfCode MathMethods_floorModLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3215:3219 -> V
    25:25:com.android.tools.r8.graph.CfCode MathMethods_floorModLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3213:3213 -> V
    26:45:com.android.tools.r8.graph.CfCode MathMethods_floorModLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3206:3225 -> V
    1:26:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6344:6369 -> V0
    27:45:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6366:6384 -> V0
    46:48:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6383:6385 -> V0
    49:63:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6381:6395 -> V0
    64:66:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6394:6396 -> V0
    67:84:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6392:6409 -> V0
    85:87:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6408:6410 -> V0
    88:109:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6406:6427 -> V0
    110:114:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6424:6428 -> V0
    115:115:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6422:6422 -> V0
    116:191:com.android.tools.r8.graph.CfCode StringMethods_stripLeading(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6358:6433 -> V0
    1:22:com.android.tools.r8.graph.CfCode MathMethods_incrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3229:3250 -> W
    23:23:com.android.tools.r8.graph.CfCode MathMethods_incrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3247:3247 -> W
    24:47:com.android.tools.r8.graph.CfCode MathMethods_incrementExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3237:3260 -> W
    1:22:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6437:6458 -> W0
    23:42:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6455:6474 -> W0
    43:47:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6471:6475 -> W0
    48:64:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6469:6485 -> W0
    65:67:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6484:6486 -> W0
    68:85:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6482:6499 -> W0
    86:88:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6498:6500 -> W0
    89:110:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6496:6517 -> W0
    111:115:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6514:6518 -> W0
    116:116:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6512:6512 -> W0
    117:190:com.android.tools.r8.graph.CfCode StringMethods_stripTrailing(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):6450:6523 -> W0
    1:23:com.android.tools.r8.graph.CfCode MathMethods_incrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3264:3286 -> X
    24:24:com.android.tools.r8.graph.CfCode MathMethods_incrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3283:3283 -> X
    25:49:com.android.tools.r8.graph.CfCode MathMethods_incrementExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3272:3296 -> X
    1:40:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3300:3339 -> Y
    41:41:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3336:3336 -> Y
    42:76:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3310:3344 -> Y
    1:31:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3348:3378 -> Z
    32:34:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3377:3379 -> Z
    35:50:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3375:3390 -> Z
    51:53:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3389:3391 -> Z
    54:68:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3387:3401 -> Z
    69:71:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3400:3402 -> Z
    72:88:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3398:3414 -> Z
    89:91:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3413:3415 -> Z
    92:160:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3411:3479 -> Z
    161:161:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3476:3476 -> Z
    162:277:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3369:3484 -> Z
    1:28:com.android.tools.r8.graph.CfCode BooleanMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):51:78 -> a
    1:19:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3488:3506 -> a0
    20:24:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3503:3507 -> a0
    25:25:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3501:3501 -> a0
    26:44:com.android.tools.r8.graph.CfCode MathMethods_multiplyExactLongInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3494:3512 -> a0
    1:21:com.android.tools.r8.graph.CfCode BooleanMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):82:102 -> b
    1:17:com.android.tools.r8.graph.CfCode MathMethods_multiplyFull(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3516:3532 -> b0
    1:15:com.android.tools.r8.graph.CfCode ByteMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):106:120 -> c
    1:101:com.android.tools.r8.graph.CfCode MathMethods_multiplyHigh(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3536:3636 -> c0
    1:19:com.android.tools.r8.graph.CfCode ByteMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):124:142 -> d
    1:22:com.android.tools.r8.graph.CfCode MathMethods_negateExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3640:3661 -> d0
    23:23:com.android.tools.r8.graph.CfCode MathMethods_negateExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3658:3658 -> d0
    24:46:com.android.tools.r8.graph.CfCode MathMethods_negateExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3648:3670 -> d0
    1:15:com.android.tools.r8.graph.CfCode ByteMethods_toUnsignedInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):146:160 -> e
    1:23:com.android.tools.r8.graph.CfCode MathMethods_negateExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3674:3696 -> e0
    24:24:com.android.tools.r8.graph.CfCode MathMethods_negateExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3693:3693 -> e0
    25:48:com.android.tools.r8.graph.CfCode MathMethods_negateExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3682:3705 -> e0
    1:16:com.android.tools.r8.graph.CfCode ByteMethods_toUnsignedLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):164:179 -> f
    1:16:com.android.tools.r8.graph.CfCode MathMethods_nextDownDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3709:3724 -> f0
    17:19:com.android.tools.r8.graph.CfCode MathMethods_nextDownDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3723:3725 -> f0
    20:20:com.android.tools.r8.graph.CfCode MathMethods_nextDownDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3721:3721 -> f0
    21:37:com.android.tools.r8.graph.CfCode MathMethods_nextDownDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3715:3731 -> f0
    1:15:com.android.tools.r8.graph.CfCode CharacterMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):183:197 -> g
    1:16:com.android.tools.r8.graph.CfCode MathMethods_nextDownFloat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3735:3750 -> g0
    17:19:com.android.tools.r8.graph.CfCode MathMethods_nextDownFloat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3749:3751 -> g0
    20:20:com.android.tools.r8.graph.CfCode MathMethods_nextDownFloat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3747:3747 -> g0
    21:37:com.android.tools.r8.graph.CfCode MathMethods_nextDownFloat(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3741:3757 -> g0
    1:17:com.android.tools.r8.graph.CfCode CharacterMethods_toStringCodepoint(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):202:218 -> h
    18:20:com.android.tools.r8.graph.CfCode CharacterMethods_toStringCodepoint(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):217:219 -> h
    21:32:com.android.tools.r8.graph.CfCode CharacterMethods_toStringCodepoint(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):215:226 -> h
    33:35:com.android.tools.r8.graph.CfCode CharacterMethods_toStringCodepoint(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):225:227 -> h
    36:36:com.android.tools.r8.graph.CfCode CharacterMethods_toStringCodepoint(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):223:223 -> h
    37:61:com.android.tools.r8.graph.CfCode CharacterMethods_toStringCodepoint(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):208:232 -> h
    1:40:com.android.tools.r8.graph.CfCode MathMethods_subtractExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3761:3800 -> h0
    41:41:com.android.tools.r8.graph.CfCode MathMethods_subtractExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3797:3797 -> h0
    42:76:com.android.tools.r8.graph.CfCode MathMethods_subtractExactInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3771:3805 -> h0
    1:23:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):516:538 -> i
    24:26:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):537:539 -> i
    27:59:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):535:567 -> i
    60:63:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):565:568 -> i
    64:77:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):563:576 -> i
    78:81:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):574:577 -> i
    82:101:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):572:591 -> i
    102:105:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):589:592 -> i
    106:106:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):587:587 -> i
    107:177:com.android.tools.r8.graph.CfCode CollectionMethods_listOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):527:597 -> i
    1:56:com.android.tools.r8.graph.CfCode MathMethods_subtractExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3809:3864 -> i0
    57:57:com.android.tools.r8.graph.CfCode MathMethods_subtractExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3861:3861 -> i0
    58:105:com.android.tools.r8.graph.CfCode MathMethods_subtractExactLong(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3822:3869 -> i0
    1:23:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):601:623 -> j
    24:27:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):621:624 -> j
    28:43:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):619:634 -> j
    44:47:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):632:635 -> j
    48:62:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):630:644 -> j
    63:67:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):641:645 -> j
    68:68:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):639:639 -> j
    69:110:com.android.tools.r8.graph.CfCode CollectionMethods_mapEntry(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):610:651 -> j
    1:29:com.android.tools.r8.graph.CfCode MathMethods_toIntExact(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3873:3901 -> j0
    30:30:com.android.tools.r8.graph.CfCode MathMethods_toIntExact(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3898:3898 -> j0
    31:58:com.android.tools.r8.graph.CfCode MathMethods_toIntExact(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3882:3909 -> j0
    1:26:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):655:680 -> k
    27:29:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):679:681 -> k
    30:60:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):677:707 -> k
    61:63:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):706:708 -> k
    64:76:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):704:716 -> k
    77:80:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):714:717 -> k
    81:96:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):712:727 -> k
    97:99:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):726:728 -> k
    100:112:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):724:736 -> k
    113:116:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):734:737 -> k
    117:136:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):732:751 -> k
    137:141:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):748:752 -> k
    142:161:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):746:765 -> k
    162:174:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):762:774 -> k
    175:178:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):772:775 -> k
    179:193:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):770:784 -> k
    194:197:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):782:785 -> k
    198:210:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):780:792 -> k
    211:213:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):791:793 -> k
    214:226:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):789:801 -> k
    227:230:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):799:802 -> k
    231:250:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):797:816 -> k
    251:254:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):814:817 -> k
    255:255:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):812:812 -> k
    256:409:com.android.tools.r8.graph.CfCode CollectionMethods_mapOfEntries(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):669:822 -> k
    1:32:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3914:3945 -> k0
    33:45:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3942:3954 -> k0
    46:49:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3952:3955 -> k0
    50:64:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3950:3964 -> k0
    65:68:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3962:3965 -> k0
    69:83:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3960:3974 -> k0
    84:87:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3972:3975 -> k0
    88:102:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3970:3984 -> k0
    103:106:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3982:3985 -> k0
    107:121:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3980:3994 -> k0
    122:125:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3992:3995 -> k0
    126:140:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3990:4004 -> k0
    141:144:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4002:4005 -> k0
    145:159:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4000:4014 -> k0
    160:163:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4012:4015 -> k0
    164:178:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4010:4024 -> k0
    179:182:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4022:4025 -> k0
    183:195:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4020:4032 -> k0
    196:198:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4031:4033 -> k0
    199:211:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4029:4041 -> k0
    212:215:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4039:4042 -> k0
    216:216:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4037:4037 -> k0
    217:345:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromIndexSize(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):3922:4050 -> k0
    1:24:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):826:849 -> l
    25:27:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):848:850 -> l
    28:60:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):846:878 -> l
    61:64:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):876:879 -> l
    65:78:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):874:887 -> l
    79:82:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):885:888 -> l
    83:101:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):883:901 -> l
    102:114:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):898:910 -> l
    115:118:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):908:911 -> l
    119:133:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):906:920 -> l
    134:137:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):918:921 -> l
    138:150:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):916:928 -> l
    151:153:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):927:929 -> l
    154:166:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):925:937 -> l
    167:170:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):935:938 -> l
    171:190:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):933:952 -> l
    191:194:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):950:953 -> l
    195:195:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):948:948 -> l
    196:316:com.android.tools.r8.graph.CfCode CollectionMethods_setOfArray(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):838:958 -> l
    1:29:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4054:4082 -> l0
    30:42:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4079:4091 -> l0
    43:46:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4089:4092 -> l0
    47:61:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4087:4101 -> l0
    62:65:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4099:4102 -> l0
    66:80:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4097:4111 -> l0
    81:84:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4109:4112 -> l0
    85:99:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4107:4121 -> l0
    100:103:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4119:4122 -> l0
    104:118:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4117:4131 -> l0
    119:122:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4129:4132 -> l0
    123:137:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4127:4141 -> l0
    138:141:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4139:4142 -> l0
    142:154:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4137:4149 -> l0
    155:157:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4148:4150 -> l0
    158:170:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4146:4158 -> l0
    171:174:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4156:4159 -> l0
    175:175:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4154:4154 -> l0
    176:281:com.android.tools.r8.graph.CfCode ObjectsMethods_checkFromToIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4062:4167 -> l0
    1:22:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):962:983 -> m
    23:33:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):980:990 -> m
    34:36:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):989:991 -> m
    37:51:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):987:1001 -> m
    52:54:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1000:1002 -> m
    55:69:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):998:1012 -> m
    70:82:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1009:1021 -> m
    83:85:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1020:1022 -> m
    86:102:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1018:1034 -> m
    103:106:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1032:1035 -> m
    107:120:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1030:1043 -> m
    121:124:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1041:1044 -> m
    125:143:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1039:1057 -> m
    144:147:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1055:1058 -> m
    148:148:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1053:1053 -> m
    149:239:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfList(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):973:1063 -> m
    1:26:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4171:4196 -> m0
    27:39:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4193:4205 -> m0
    40:43:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4203:4206 -> m0
    44:58:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4201:4215 -> m0
    59:62:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4213:4216 -> m0
    63:77:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4211:4225 -> m0
    78:81:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4223:4226 -> m0
    82:96:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4221:4235 -> m0
    97:100:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4233:4236 -> m0
    101:113:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4231:4243 -> m0
    114:116:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4242:4244 -> m0
    117:129:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4240:4252 -> m0
    130:133:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4250:4253 -> m0
    134:134:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4248:4248 -> m0
    135:217:com.android.tools.r8.graph.CfCode ObjectsMethods_checkIndex(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4179:4261 -> m0
    1:25:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1067:1091 -> n
    26:36:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1088:1098 -> n
    37:39:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1097:1099 -> n
    40:54:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1095:1109 -> n
    55:57:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1108:1110 -> n
    58:69:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1106:1117 -> n
    70:72:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1116:1118 -> n
    73:87:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1114:1128 -> n
    88:100:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1125:1137 -> n
    101:103:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1136:1138 -> n
    104:121:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1134:1151 -> n
    122:124:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1150:1152 -> n
    125:137:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1148:1160 -> n
    138:141:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1158:1161 -> n
    142:156:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1156:1170 -> n
    157:159:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1169:1171 -> n
    160:172:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1167:1179 -> n
    173:176:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1177:1180 -> n
    177:192:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1175:1190 -> n
    193:197:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1187:1191 -> n
    198:217:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1185:1204 -> n
    218:221:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1202:1205 -> n
    222:222:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1200:1200 -> n
    223:352:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfMap(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1081:1210 -> n
    1:27:com.android.tools.r8.graph.CfCode ObjectsMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4265:4291 -> n0
    28:32:com.android.tools.r8.graph.CfCode ObjectsMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4288:4292 -> n0
    33:33:com.android.tools.r8.graph.CfCode ObjectsMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4286:4286 -> n0
    34:59:com.android.tools.r8.graph.CfCode ObjectsMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4273:4298 -> n0
    1:22:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1214:1235 -> o
    23:33:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1232:1242 -> o
    34:36:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1241:1243 -> o
    37:51:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1239:1253 -> o
    52:54:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1252:1254 -> o
    55:69:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1250:1264 -> o
    70:82:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1261:1273 -> o
    83:85:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1272:1274 -> o
    86:102:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1270:1286 -> o
    103:106:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1284:1287 -> o
    107:120:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1282:1295 -> o
    121:124:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1293:1296 -> o
    125:143:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1291:1309 -> o
    144:147:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1307:1310 -> o
    148:148:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1305:1305 -> o
    149:239:com.android.tools.r8.graph.CfCode CollectionsMethods_copyOfSet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1225:1315 -> o
    1:76:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4302:4377 -> o0
    77:81:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4374:4378 -> o0
    82:116:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4372:4406 -> o0
    117:121:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4403:4407 -> o0
    122:156:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4401:4435 -> o0
    157:161:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4432:4436 -> o0
    162:196:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4430:4464 -> o0
    197:201:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4461:4465 -> o0
    202:236:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4459:4493 -> o0
    237:241:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4490:4494 -> o0
    242:276:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4488:4522 -> o0
    277:281:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4519:4523 -> o0
    282:316:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4517:4551 -> o0
    317:321:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4548:4552 -> o0
    322:356:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4546:4580 -> o0
    357:361:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4577:4581 -> o0
    362:396:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4575:4609 -> o0
    397:401:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4606:4610 -> o0
    402:426:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4604:4628 -> o0
    427:430:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4626:4629 -> o0
    431:431:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4624:4624 -> o0
    432:720:com.android.tools.r8.graph.CfCode ObjectsMethods_deepEquals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4346:4634 -> o0
    1:13:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1320:1332 -> p
    14:16:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1331:1333 -> p
    17:29:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1329:1341 -> p
    30:33:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1339:1342 -> p
    34:34:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1337:1337 -> p
    35:56:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyEnumeration(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1325:1346 -> p
    1:25:com.android.tools.r8.graph.CfCode ObjectsMethods_equals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4638:4662 -> p0
    26:29:com.android.tools.r8.graph.CfCode ObjectsMethods_equals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4660:4663 -> p0
    30:30:com.android.tools.r8.graph.CfCode ObjectsMethods_equals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4658:4658 -> p0
    31:59:com.android.tools.r8.graph.CfCode ObjectsMethods_equals(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4647:4675 -> p0
    1:13:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1350:1362 -> q
    14:16:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1361:1363 -> q
    17:28:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1359:1370 -> q
    29:31:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1369:1371 -> q
    32:32:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1367:1367 -> q
    33:53:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1355:1375 -> q
    1:22:com.android.tools.r8.graph.CfCode ObjectsMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4679:4700 -> q0
    23:23:com.android.tools.r8.graph.CfCode ObjectsMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4697:4697 -> q0
    24:43:com.android.tools.r8.graph.CfCode ObjectsMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4687:4706 -> q0
    1:13:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1380:1392 -> r
    14:16:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1391:1393 -> r
    17:28:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1389:1400 -> r
    29:31:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1399:1401 -> r
    32:32:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1397:1397 -> r
    33:53:com.android.tools.r8.graph.CfCode CollectionsMethods_emptyListIterator(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1385:1405 -> r
    1:21:com.android.tools.r8.graph.CfCode ObjectsMethods_isNull(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4710:4730 -> r0
    1:16:com.android.tools.r8.graph.CfCode DoubleMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1409:1424 -> s
    17:19:com.android.tools.r8.graph.CfCode DoubleMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1423:1425 -> s
    20:20:com.android.tools.r8.graph.CfCode DoubleMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1421:1421 -> s
    21:43:com.android.tools.r8.graph.CfCode DoubleMethods_hashCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1416:1438 -> s
    1:21:com.android.tools.r8.graph.CfCode ObjectsMethods_nonNull(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4734:4754 -> s0
    1:17:com.android.tools.r8.graph.CfCode DoubleMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1442:1458 -> t
    18:20:com.android.tools.r8.graph.CfCode DoubleMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1457:1459 -> t
    21:34:com.android.tools.r8.graph.CfCode DoubleMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1455:1468 -> t
    35:37:com.android.tools.r8.graph.CfCode DoubleMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1467:1469 -> t
    38:38:com.android.tools.r8.graph.CfCode DoubleMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1465:1465 -> t
    39:69:com.android.tools.r8.graph.CfCode DoubleMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1450:1480 -> t
    1:24:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4759:4782 -> t0
    25:29:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4779:4783 -> t0
    30:30:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4777:4777 -> t0
    31:53:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4766:4788 -> t0
    1:17:com.android.tools.r8.graph.CfCode FloatMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1484:1500 -> u
    18:20:com.android.tools.r8.graph.CfCode FloatMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1499:1501 -> u
    21:34:com.android.tools.r8.graph.CfCode FloatMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1497:1510 -> u
    35:37:com.android.tools.r8.graph.CfCode FloatMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1509:1511 -> u
    38:38:com.android.tools.r8.graph.CfCode FloatMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1507:1507 -> u
    39:69:com.android.tools.r8.graph.CfCode FloatMethods_isFinite(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1492:1522 -> u
    1:25:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4793:4817 -> u0
    26:30:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4814:4818 -> u0
    31:45:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4812:4826 -> u0
    46:48:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4825:4827 -> u0
    49:66:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4823:4840 -> u0
    67:71:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4837:4841 -> u0
    72:72:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4835:4835 -> u0
    73:118:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullElseGet(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4801:4846 -> u0
    1:29:com.android.tools.r8.graph.CfCode IntegerMethods_compare(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1526:1554 -> v
    1:23:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullMessage(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4851:4873 -> v0
    24:27:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullMessage(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4871:4874 -> v0
    28:28:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullMessage(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4869:4869 -> v0
    29:52:com.android.tools.r8.graph.CfCode ObjectsMethods_requireNonNullMessage(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4859:4882 -> v0
    1:30:com.android.tools.r8.graph.CfCode IntegerMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1558:1587 -> w
    31:35:com.android.tools.r8.graph.CfCode IntegerMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1584:1588 -> w
    36:36:com.android.tools.r8.graph.CfCode IntegerMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1582:1582 -> w
    37:64:com.android.tools.r8.graph.CfCode IntegerMethods_compareUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1566:1593 -> w
    1:18:com.android.tools.r8.graph.CfCode ObjectsMethods_toString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4886:4903 -> w0
    19:23:com.android.tools.r8.graph.CfCode ObjectsMethods_toString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4900:4904 -> w0
    24:24:com.android.tools.r8.graph.CfCode ObjectsMethods_toString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4898:4898 -> w0
    25:42:com.android.tools.r8.graph.CfCode ObjectsMethods_toString(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4892:4909 -> w0
    1:30:com.android.tools.r8.graph.CfCode IntegerMethods_divideUnsigned(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1597:1626 -> x
    1:22:com.android.tools.r8.graph.CfCode ObjectsMethods_toStringDefault(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4913:4934 -> x0
    23:25:com.android.tools.r8.graph.CfCode ObjectsMethods_toStringDefault(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4933:4935 -> x0
    26:26:com.android.tools.r8.graph.CfCode ObjectsMethods_toStringDefault(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4931:4931 -> x0
    27:47:com.android.tools.r8.graph.CfCode ObjectsMethods_toStringDefault(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4921:4941 -> x0
    1:18:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1630:1647 -> y
    19:23:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1644:1648 -> y
    24:24:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1642:1642 -> y
    25:42:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedInt(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1636:1653 -> y
    1:18:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4945:4962 -> y0
    19:33:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4959:4973 -> y0
    34:36:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4972:4974 -> y0
    37:49:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4970:4982 -> y0
    50:53:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4980:4983 -> y0
    54:69:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4978:4993 -> y0
    70:70:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4990:4990 -> y0
    71:116:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElse(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):4954:4999 -> y0
    1:20:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1658:1677 -> z
    21:35:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1674:1688 -> z
    36:38:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1687:1689 -> z
    39:56:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1685:1702 -> z
    57:60:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1700:1703 -> z
    61:79:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1698:1716 -> z
    80:84:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1713:1717 -> z
    85:111:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1711:1737 -> z
    112:124:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1734:1746 -> z
    125:128:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1744:1747 -> z
    129:143:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1742:1756 -> z
    144:147:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1754:1757 -> z
    148:162:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1752:1766 -> z
    163:166:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1764:1767 -> z
    167:181:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1762:1776 -> z
    182:185:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1774:1777 -> z
    186:201:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1772:1787 -> z
    202:205:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1785:1788 -> z
    206:218:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1783:1795 -> z
    219:221:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1794:1796 -> z
    222:234:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1792:1804 -> z
    235:238:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1802:1805 -> z
    239:239:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1800:1800 -> z
    240:385:com.android.tools.r8.graph.CfCode IntegerMethods_parseUnsignedIntWithRadix(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):1669:1814 -> z
    1:18:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5004:5021 -> z0
    19:33:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5018:5032 -> z0
    34:44:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5029:5039 -> z0
    45:47:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5038:5040 -> z0
    48:62:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5036:5050 -> z0
    63:63:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5047:5047 -> z0
    64:107:com.android.tools.r8.graph.CfCode OptionalMethods_ifPresentOrElseDouble(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):5013:5056 -> z0
com.android.tools.r8.ir.desugar.backports.BooleanMethodRewrites -> com.android.tools.r8.t.c.c0.b:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():17:17 -> <clinit>
    1:5:void rewriteLogicalAnd(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):20:24 -> a
    6:6:void rewriteLogicalAnd(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):23:23 -> a
    1:5:void rewriteLogicalOr(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):29:33 -> b
    6:6:void rewriteLogicalOr(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):32:32 -> b
    1:5:void rewriteLogicalXor(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):38:42 -> c
    6:6:void rewriteLogicalXor(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):41:41 -> c
com.android.tools.r8.ir.desugar.backports.CollectionMethodGenerators -> com.android.tools.r8.t.c.c0.c:
    1:1:com.android.tools.r8.graph.CfCode generateListOf(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int):31:31 -> a
    2:21:com.android.tools.r8.graph.CfCode generateFixedMethods(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.graph.DexType):40:59 -> a
    22:22:com.android.tools.r8.graph.CfCode generateFixedMethods(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.graph.DexType):56:56 -> a
    23:39:com.android.tools.r8.graph.CfCode generateFixedMethods(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.graph.DexType):53:69 -> a
    1:1:com.android.tools.r8.graph.CfCode generateSetOf(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,int):35:35 -> b
com.android.tools.r8.ir.desugar.backports.CollectionMethodRewrites -> com.android.tools.r8.t.c.c0.d:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void rewriteListOfEmpty(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):20:20 -> a
    2:8:void rewriteToCollectionMethod(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory,java.lang.String):35:41 -> a
    1:1:void rewriteMapOfEmpty(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):30:30 -> b
    1:1:void rewriteSetOfEmpty(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):25:25 -> c
com.android.tools.r8.ir.desugar.backports.FloatMethodRewrites -> com.android.tools.r8.t.c.c0.e:
    boolean com.android.tools.r8.utils.NumberUtils.is16Bit(long) -> a
    1:2:java.lang.Object com.android.tools.r8.utils.PredicateUtils.findFirst(java.lang.Object[],java.util.function.Predicate):12:13 -> a
    3:3:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoBufUtilKt.getExtensionOrNull(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):12:12 -> a
    4:7:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.ExtensionUtilsKt.applySingleExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):13:16 -> a
    8:11:java.util.Set com.android.tools.r8.utils.CollectionUtils.mergeSets(java.util.Collection,java.util.Collection):13:16 -> a
    12:13:java.util.Deque com.android.tools.r8.utils.DequeUtils.newArrayDeque(java.lang.Object):13:14 -> a
    14:22:com.android.tools.r8.jetbrains.kotlin.Pair com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmWriteUtilsKt.writeProtoBufData(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext) -> a
    23:30:com.android.tools.r8.jetbrains.kotlin.Pair com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmWriteUtilsKt.writeProtoBufData(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):15:22 -> a
    31:31:com.android.tools.r8.jetbrains.kotlin.Pair com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmWriteUtilsKt.writeProtoBufData(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):21:21 -> a
    32:32:com.android.tools.r8.jetbrains.kotlin.Pair com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmWriteUtilsKt.writeProtoBufData(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):14:14 -> a
    33:37:boolean com.android.tools.r8.ir.optimize.ArgumentRemovalUtils.isPinned(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):16:20 -> a
    38:39:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Iterable):22:23 -> a
    40:48:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmExtension com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.ExtensionUtilsKt.singleOfType(java.util.Collection,com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):25:33 -> a
    49:52:void com.android.tools.r8.ir.desugar.backports.OptionalMethodRewrites.rewriteDoubleOrElseGet(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):26:29 -> a
    53:53:int com.android.tools.r8.jetbrains.kotlinx.metadata.FlagsKt.flagsOf(com.android.tools.r8.jetbrains.kotlinx.metadata.Flag[]):27:27 -> a
    54:54:int com.android.tools.r8.jetbrains.kotlinx.metadata.FlagsKt.flagsOf(com.android.tools.r8.jetbrains.kotlinx.metadata.Flag[]):24:24 -> a
    55:55:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(int):28:28 -> a
    56:58:java.util.Set com.android.tools.r8.utils.SetUtils.mapIdentityHashSet(java.util.Set,java.util.function.Function):38:40 -> a
    59:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.receiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):50:51 -> a
    61:63:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.returnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):56:58 -> a
    64:64:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureFromTo(int,int,int):57:57 -> a
    65:65:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureFromTo(int,int,int):56:56 -> a
    66:66:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureFromTo(int,int,int):55:55 -> a
    67:74:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):58:65 -> a
    75:81:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:67 -> a
    82:83:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:62 -> a
    84:93:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:70 -> a
    94:101:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:68 -> a
    102:104:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:63 -> a
    105:108:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:64 -> a
    109:114:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:66 -> a
    115:123:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:69 -> a
    124:126:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.type(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):70:72 -> a
    127:127:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.NodesKt.addTo(java.lang.Object,java.util.Collection):971:971 -> a
    boolean com.android.tools.r8.utils.NumberUtils.is32Bit(long) -> b
    1:2:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Object):16:17 -> b
    3:6:void rewriteHashCode(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):18:21 -> b
    7:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.returnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):42:44 -> b
    1:4:void com.android.tools.r8.ir.desugar.backports.OptionalMethodRewrites.rewriteIntOrElseGet(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):34:37 -> c
    1:4:void com.android.tools.r8.ir.desugar.backports.OptionalMethodRewrites.rewriteLongOrElseGet(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):42:45 -> d
    1:4:void com.android.tools.r8.ir.desugar.backports.OptionalMethodRewrites.rewriteOrElseGet(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):18:21 -> e
    1:7:void com.android.tools.r8.ir.desugar.backports.ObjectsMethodRewrites.rewriteRequireNonNull(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):29:35 -> f
    1:6:void com.android.tools.r8.ir.desugar.backports.ObjectsMethodRewrites.rewriteToArraysHashCode(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):19:24 -> g
com.android.tools.r8.ir.desugar.backports.LongMethodRewrites -> com.android.tools.r8.t.c.c0.f:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():16:16 -> <clinit>
    1:4:void rewriteCompare(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):22:25 -> a
    5:5:void rewriteCompare(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):24:24 -> a
com.android.tools.r8.ir.desugar.backports.NumericMethodRewrites -> com.android.tools.r8.t.c.c0.g:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():12:12 -> <clinit>
    1:4:void rewriteAsIdentity(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):33:36 -> a
    1:6:void rewriteToAddInstruction(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):23:28 -> b
    1:3:void rewriteToInvokeMath(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):15:17 -> c
    4:6:void rewriteToInvokeMath(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):16:18 -> c
com.android.tools.r8.ir.optimize.AliasIntroducer -> com.android.tools.r8.ir.optimize.a:
    com.android.tools.r8.graph.AppView appView -> a
    1:2:void <init>(com.android.tools.r8.graph.AppView):23:24 -> <init>
    1:4:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):30:33 -> a
    5:33:void insertAssumeNoneInstructionsInBlock(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):40:68 -> a
    34:44:void insertAssumeNoneInstructionsInBlock(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):67:77 -> a
    45:45:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.IRCode.findFirstNonNonePosition():1299:1299 -> a
    45:45:void insertAssumeNoneInstructionsInBlock(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):78 -> a
    46:49:void insertAssumeNoneInstructionsInBlock(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):79:82 -> a
    50:50:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.IRCode.findFirstNonNonePosition():1299:1299 -> a
    50:50:void insertAssumeNoneInstructionsInBlock(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):78 -> a
    51:51:boolean lambda$insertAssumeNoneInstructionsInBlock$0(com.android.tools.r8.ir.code.Instruction):80:80 -> a
    52:53:void lambda$insertAssumeNoneInstructionsInBlock$1(com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Assume):83:84 -> a
com.android.tools.r8.ir.optimize.AssertionsRewriter -> com.android.tools.r8.ir.optimize.d:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.AssertionsConfiguration$AssertionTransformation defaultTransformation -> c
    java.util.List configuration -> d
    boolean enabled -> e
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():29:29 -> <clinit>
    1:15:void <init>(com.android.tools.r8.graph.AppView):81:95 -> <init>
    1:1:com.android.tools.r8.ir.optimize.AssertionsRewriter$ConfigurationEntryWithDexString lambda$new$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.AssertionsConfiguration):94:94 -> a
    2:2:boolean isEnabled(com.android.tools.r8.utils.InternalOptions):101:101 -> a
    3:8:boolean com.android.tools.r8.utils.AssertionConfigurationWithDefault.isPassthroughAll():26:31 -> a
    3:8:boolean isEnabled(com.android.tools.r8.utils.InternalOptions):102 -> a
    9:9:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):220:220 -> a
    10:29:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation getTransformationForMethod(com.android.tools.r8.graph.DexEncodedMethod):106:125 -> a
    10:29:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):223 -> a
    30:53:boolean isDescriptorForClassOrInnerClass(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):146:169 -> a
    30:53:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation getTransformationForMethod(com.android.tools.r8.graph.DexEncodedMethod):125 -> a
    30:53:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):223 -> a
    54:58:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation getTransformationForMethod(com.android.tools.r8.graph.DexEncodedMethod):126:130 -> a
    54:58:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):223 -> a
    59:60:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation getTransformationForMethod(com.android.tools.r8.graph.DexEncodedMethod):113:114 -> a
    59:60:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):223 -> a
    61:66:boolean com.android.tools.r8.graph.DexString.contains(com.android.tools.r8.graph.DexString):448:453 -> a
    61:66:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation getTransformationForMethod(com.android.tools.r8.graph.DexEncodedMethod):114 -> a
    61:66:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):223 -> a
    67:70:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation getTransformationForMethod(com.android.tools.r8.graph.DexEncodedMethod):115:118 -> a
    67:70:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):223 -> a
    71:94:com.android.tools.r8.AssertionsConfiguration$AssertionTransformation getTransformationForMethod(com.android.tools.r8.graph.DexEncodedMethod):110:133 -> a
    71:94:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):223 -> a
    95:104:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):224:233 -> a
    105:105:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    105:105:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):233 -> a
    106:108:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):237:239 -> a
    109:109:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    109:109:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):244 -> a
    110:114:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):245:249 -> a
    115:115:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1059:1059 -> a
    115:115:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):250 -> a
    116:116:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    116:116:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):250 -> a
    117:126:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):252:261 -> a
    127:127:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1059:1059 -> a
    127:127:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):261 -> a
    128:128:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    128:128:void run(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):260 -> a
com.android.tools.r8.ir.optimize.AssertionsRewriter$1 -> com.android.tools.r8.ir.optimize.b:
com.android.tools.r8.ir.optimize.AssertionsRewriter$ConfigurationEntryWithDexString -> com.android.tools.r8.ir.optimize.c:
    com.android.tools.r8.graph.DexString value -> b
    com.android.tools.r8.AssertionsConfiguration entry -> a
    1:1:void <init>(com.android.tools.r8.AssertionsConfiguration,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.optimize.AssertionsRewriter$1):31:31 -> <init>
    2:26:void <init>(com.android.tools.r8.AssertionsConfiguration,com.android.tools.r8.graph.DexItemFactory):37:61 -> <init>
    27:40:void <init>(com.android.tools.r8.AssertionsConfiguration,com.android.tools.r8.graph.DexItemFactory):57:70 -> <init>
    41:49:void <init>(com.android.tools.r8.AssertionsConfiguration,com.android.tools.r8.graph.DexItemFactory) -> <init>
    50:72:void <init>(com.android.tools.r8.AssertionsConfiguration,com.android.tools.r8.graph.DexItemFactory):45:67 -> <init>
    1:1:com.android.tools.r8.AssertionsConfiguration access$000(com.android.tools.r8.ir.optimize.AssertionsRewriter$ConfigurationEntryWithDexString):31:31 -> a
    1:1:com.android.tools.r8.graph.DexString access$100(com.android.tools.r8.ir.optimize.AssertionsRewriter$ConfigurationEntryWithDexString):31:31 -> b
com.android.tools.r8.ir.optimize.AssumeDynamicTypeRemover -> com.android.tools.r8.ir.optimize.e:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set affectedValues -> c
    java.util.Set assumeDynamicTypeInstructionsToRemove -> d
    boolean mayHaveIntroducedTrivialPhi -> e
    boolean $assertionsDisabled -> f
    com.android.tools.r8.ir.code.IRCode code -> b
    1:1:void <clinit>():31:31 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):42:42 -> <init>
    2:10:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):36:44 -> <init>
    1:6:void markUsersForRemoval(com.android.tools.r8.ir.code.Value):56:61 -> a
    7:7:void markForRemoval(com.android.tools.r8.ir.code.Assume):52:52 -> a
    7:7:void markUsersForRemoval(com.android.tools.r8.ir.code.Value):61 -> a
    8:22:void removeIfMarked(com.android.tools.r8.ir.code.Assume,com.android.tools.r8.ir.code.InstructionListIterator):69:83 -> a
    23:32:void removeMarkedInstructions(java.util.Set):88:97 -> a
    33:34:void finish():105:106 -> a
    35:35:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    35:35:void finish():106 -> a
    36:36:void finish():106:106 -> a
    1:1:boolean mayHaveIntroducedTrivialPhi():48:48 -> b
com.android.tools.r8.ir.optimize.Assumer -> com.android.tools.r8.ir.optimize.f:
    void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate) -> a
    1:1:void insertAssumeInstructions(com.android.tools.r8.ir.code.IRCode):18:18 -> a
com.android.tools.r8.ir.optimize.BasicBlockInstructionsEquivalence -> com.android.tools.r8.ir.optimize.g:
    com.android.tools.r8.ir.regalloc.RegisterAllocator allocator -> a
    int[] hashes -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():16:16 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):22:25 -> <init>
    1:24:boolean hasIdenticalInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):29:52 -> a
    1:24:boolean doEquivalent(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):70 -> a
    25:29:boolean verifyAllSuccessors(java.util.List,java.util.List):57:61 -> a
    25:29:boolean hasIdenticalInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):52 -> a
    25:29:boolean doEquivalent(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):70 -> a
    30:30:boolean hasIdenticalInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):52:52 -> a
    30:30:boolean doEquivalent(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):70 -> a
    31:31:void clearComputedHash(com.android.tools.r8.ir.code.BasicBlock):74:74 -> a
    1:12:int computeHash(com.android.tools.r8.ir.code.BasicBlock):90:101 -> b
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):16:16 -> doEquivalent
    1:1:int doHash(java.lang.Object):16:16 -> doHash
    2:8:int doHash(com.android.tools.r8.ir.code.BasicBlock):79:85 -> doHash
    2:8:int doHash(java.lang.Object):16 -> doHash
com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator -> com.android.tools.r8.ir.optimize.i:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set revisitedMethods -> b
    boolean $assertionsDisabled -> d
    com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator$Mode mode -> c
    1:1:void <clinit>():36:36 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):54:54 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.AppView):51:58 -> <init>
    1:29:void collectCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode):76:104 -> a
    30:46:void collectCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode):102:118 -> a
    47:53:void collectCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode):117:123 -> a
    54:55:boolean hasLibraryOverrides(java.util.Collection):132:133 -> a
    56:61:boolean isLibraryMethodOrLibraryMethodOverride(com.android.tools.r8.graph.DexEncodedMethod):142:147 -> a
    62:63:void recordArgumentsIfNecessary(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):157:158 -> a
    64:76:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo computeCallSiteOptimizationInfoFromArguments(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):168:180 -> a
    64:76:void recordArgumentsIfNecessary(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):162 -> a
    77:87:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo computeCallSiteOptimizationInfoFromArguments(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):178:188 -> a
    77:87:void recordArgumentsIfNecessary(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):162 -> a
    88:99:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo computeCallSiteOptimizationInfoFromArguments(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):186:197 -> a
    88:99:void recordArgumentsIfNecessary(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):162 -> a
    100:100:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo computeCallSiteOptimizationInfoFromArguments(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):169:169 -> a
    100:100:void recordArgumentsIfNecessary(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):162 -> a
    101:101:void recordArgumentsIfNecessary(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):162:162 -> a
    102:102:void recordArgumentsIfNecessary(com.android.tools.r8.graph.DexEncodedMethod,java.util.List):161:161 -> a
    103:155:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):204:256 -> a
    156:156:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    156:156:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):256 -> a
    157:172:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):257:272 -> a
    173:173:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    173:173:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):271 -> a
    174:195:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):273:294 -> a
    196:196:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    196:196:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):294 -> a
    197:197:void applyCallSiteOptimizationInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo):294:294 -> a
    198:220:java.util.Set methodsToRevisit():300:322 -> a
    java.util.Collection codeOptimizationsForPostProcessing() -> b
    1:6:void logResults():63:68 -> c
    7:7:void logResults():67:67 -> c
com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator$Mode -> com.android.tools.r8.ir.optimize.h:
    com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator$Mode COLLECT -> a
    com.android.tools.r8.ir.optimize.CallSiteOptimizationInfoPropagator$Mode REVISIT -> b
    1:3:void <clinit>():44:46 -> <clinit>
    1:1:void <init>(java.lang.String,int):43:43 -> <init>
com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization -> com.android.tools.r8.ir.optimize.k:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$WaveDoneAction waveDoneAction -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ir.conversion.IRConverter converter -> b
    1:1:void <clinit>():61:61 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):100:100 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):98:103 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization):61:61 -> a
    2:6:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):107:111 -> a
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    7:7:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):111 -> a
    8:27:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):119:138 -> a
    28:52:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):259:283 -> a
    28:52:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138 -> a
    53:53:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):287:287 -> a
    53:53:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):283 -> a
    53:53:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138 -> a
    54:54:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    54:54:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):287 -> a
    54:54:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):283 -> a
    54:54:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138 -> a
    55:89:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):289:323 -> a
    55:89:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):283 -> a
    55:89:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138 -> a
    90:90:com.android.tools.r8.graph.DexString com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping.map(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexItemFactory):38:38 -> a
    90:90:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):323 -> a
    90:90:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):283 -> a
    90:90:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138 -> a
    91:93:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):323:325 -> a
    91:93:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):283 -> a
    91:93:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138 -> a
    94:94:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138:138 -> a
    95:95:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):325:325 -> a
    95:95:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):283 -> a
    95:95:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138 -> a
    96:104:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):139:147 -> a
    105:105:boolean com.android.tools.r8.ir.code.ConstNumber.getBooleanValue():74:74 -> a
    105:105:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):148 -> a
    106:122:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):148:164 -> a
    123:155:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):140:172 -> a
    156:156:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    156:156:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):176 -> a
    157:183:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):177:203 -> a
    184:184:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    184:184:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):204 -> a
    185:185:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):204:204 -> a
    186:186:void com.android.tools.r8.utils.IteratorUtils.removeIf(com.android.tools.r8.ir.code.InstructionListIterator,java.util.function.Predicate):96:96 -> a
    186:186:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):204 -> a
    187:231:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):210:254 -> a
    232:232:com.android.tools.r8.graph.DexField lambda$optimize$0(com.android.tools.r8.graph.DexEncodedField):222:222 -> a
    233:234:void lambda$optimize$1():243:244 -> a
    235:235:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):331:331 -> a
    236:236:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> a
    236:236:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):333 -> a
    237:237:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> a
    237:237:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):334 -> a
    238:359:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):335:456 -> a
    360:467:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):349:456 -> a
    468:566:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):358:456 -> a
    567:569:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):365:367 -> a
    570:571:boolean com.android.tools.r8.graph.DexClass.definesStaticField(com.android.tools.r8.graph.DexField):445:446 -> a
    570:571:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):368 -> a
    572:572:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):369:369 -> a
    573:577:boolean com.android.tools.r8.ir.code.Value.isDexItemBasedConstStringThatNeedsToComputeClassName():867:871 -> a
    573:577:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):374 -> a
    578:596:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):377:395 -> a
    597:604:boolean isClassNameConstantOf(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.StaticPut):490:497 -> a
    597:604:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):402 -> a
    605:657:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):404:456 -> a
    658:688:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):426:456 -> a
    689:713:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):432:456 -> a
    714:721:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):451:458 -> a
    722:722:java.util.Collection findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):456:456 -> a
    723:723:java.util.Set lambda$findFinalFieldPutsWhileCollectingUnnecessaryStaticPuts$2(com.android.tools.r8.graph.DexField):420:420 -> a
    724:725:java.util.Collection validateFinalFieldPuts(java.util.Map,java.util.Map):483:484 -> a
    726:734:boolean isClassNameConstantOf(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Instruction):501:509 -> a
com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$WaveDoneAction -> com.android.tools.r8.ir.optimize.j:
    java.util.Map fieldsWithStaticValues -> a
    com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization this$0 -> c
    java.util.Set noLongerWrittenFields -> b
    1:3:void <init>(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization,java.util.Map,java.util.Set):70:72 -> <init>
    1:2:void join(java.util.Map,java.util.Set):78:79 -> a
    3:5:void execute():85:87 -> a
    6:10:void execute():86:90 -> a
com.android.tools.r8.ir.optimize.CodeRewriter -> com.android.tools.r8.ir.optimize.l:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
    com.android.tools.r8.graph.AppView appView -> b
    boolean $assertionsDisabled -> e
    com.android.tools.r8.utils.InternalOptions options -> d
    com.android.tools.r8.ir.conversion.IRConverter converter -> a
    1:1:void <clinit>():135:135 -> <clinit>
    1:5:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):154:158 -> <init>
    boolean lambda$computeConstantArrayValues$9(com.android.tools.r8.ir.code.NewArrayEmpty,com.android.tools.r8.ir.code.Instruction) -> a
    1:3:void insertAssumeInstructions(com.android.tools.r8.ir.code.IRCode,java.util.Collection):162:164 -> a
    4:4:boolean lambda$removedTrivialGotos$0(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):239:239 -> a
    5:28:void collapseTrivialGoto(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,java.util.List):323:346 -> a
    29:29:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):413:413 -> a
    30:30:boolean com.android.tools.r8.utils.InternalOptions.canHaveDex2OatInliningIssue():1335:1335 -> a
    30:30:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):413 -> a
    31:32:boolean com.android.tools.r8.ir.code.IRCode.hasCatchHandlers():629:630 -> a
    31:32:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):413 -> a
    33:44:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):420:431 -> a
    45:45:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.previous():29:29 -> a
    45:45:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):431 -> a
    46:53:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):432:439 -> a
    54:90:void convertSwitchToSwitchAndIfs(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IntSwitch,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):591:627 -> a
    91:91:java.lang.Object com.android.tools.r8.ir.optimize.CodeRewriter$InstructionBuilder.setBlockNumber(int):455:455 -> a
    91:91:void convertSwitchToSwitchAndIfs(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IntSwitch,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):628 -> a
    92:106:void convertSwitchToSwitchAndIfs(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IntSwitch,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):629:643 -> a
    107:107:java.lang.Object com.android.tools.r8.ir.optimize.CodeRewriter$InstructionBuilder.setBlockNumber(int):455:455 -> a
    107:107:void convertSwitchToSwitchAndIfs(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IntSwitch,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):644 -> a
    108:117:void convertSwitchToSwitchAndIfs(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IntSwitch,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):645:654 -> a
    118:131:com.android.tools.r8.ir.optimize.CodeRewriter$Interval combineOrAddInterval(java.util.List,com.android.tools.r8.ir.optimize.CodeRewriter$Interval,com.android.tools.r8.ir.optimize.CodeRewriter$Interval):704:717 -> a
    132:132:com.android.tools.r8.ir.optimize.CodeRewriter$Interval combineOrAddInterval(java.util.List,com.android.tools.r8.ir.optimize.CodeRewriter$Interval,com.android.tools.r8.ir.optimize.CodeRewriter$Interval):714:714 -> a
    133:144:void tryAddToBiggestSavings(java.util.Set,java.util.PriorityQueue,com.android.tools.r8.ir.optimize.CodeRewriter$Interval,int):727:738 -> a
    145:152:int sizeForKeysWrittenAsIfs(com.android.tools.r8.ir.code.ValueType,java.util.Collection):743:750 -> a
    153:153:int codeUnitMargin():757:757 -> a
    154:154:int lambda$rewriteSwitch$1(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.optimize.CodeRewriter$Interval,com.android.tools.r8.ir.optimize.CodeRewriter$Interval):919:919 -> a
    155:155:void lambda$removeSwitchMaps$2(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):1096:1096 -> a
    156:170:void collapseTrivialGotos(com.android.tools.r8.ir.code.IRCode):1115:1129 -> a
    171:189:void collapseIfTrueTarget(com.android.tools.r8.ir.code.BasicBlock):366:384 -> a
    171:189:void collapseTrivialGotos(com.android.tools.r8.ir.code.IRCode):1130 -> a
    190:190:void collapseTrivialGotos(com.android.tools.r8.ir.code.IRCode):1132:1132 -> a
    191:204:void collapseNonFallthroughSwitchTargets(com.android.tools.r8.ir.code.BasicBlock):390:403 -> a
    191:204:void collapseTrivialGotos(com.android.tools.r8.ir.code.IRCode):1133 -> a
    205:221:void collapseTrivialGotos(com.android.tools.r8.ir.code.IRCode):1137:1153 -> a
    222:222:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1160:1160 -> a
    223:223:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1159:1159 -> a
    224:230:com.android.tools.r8.graph.DexType getArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1170:1176 -> a
    224:230:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1163 -> a
    231:231:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1163:1163 -> a
    232:236:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1162:1166 -> a
    237:268:boolean removeInstanceOfInstructionIfTrivial(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode):1416:1447 -> a
    269:306:boolean removeInstanceOfInstructionIfTrivial(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode):1446:1483 -> a
    307:307:boolean lambda$removeInstanceOfInstructionIfTrivial$3(com.android.tools.r8.ir.code.Value):1458:1458 -> a
    308:310:boolean isNeverInstantiatedDirectlyOrIndirectly(com.android.tools.r8.graph.DexType):1490:1492 -> a
    311:311:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    311:311:boolean isNeverInstantiatedDirectlyOrIndirectly(com.android.tools.r8.graph.DexType):1492 -> a
    312:314:boolean isNeverInstantiatedDirectlyOrIndirectly(com.android.tools.r8.graph.DexType):1492:1494 -> a
    315:325:void removeOrReplaceByDebugLocalWrite(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):1499:1509 -> a
    326:334:boolean isBinopWithLit8OrLit16(com.android.tools.r8.ir.code.Instruction):1630:1638 -> a
    335:340:com.android.tools.r8.ir.code.Value binopWithLit8OrLit16NonConstant(com.android.tools.r8.ir.code.Binop):1657:1662 -> a
    341:342:boolean lambda$shortenLiveRanges$5(com.android.tools.r8.ir.code.ConstInstruction):1725:1726 -> a
    343:349:void lambda$shortenLiveRanges$7(java.util.Map,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):1788:1794 -> a
    350:442:void shortenLiveRangesInsideBlock(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.com.google.common.base.Supplier,java.util.Map,java.util.function.Predicate):1822:1914 -> a
    443:490:com.android.tools.r8.ir.code.ConstInstruction[] computeConstantArrayValues(com.android.tools.r8.ir.code.NewArrayEmpty,com.android.tools.r8.ir.code.BasicBlock,int):1950:1997 -> a
    491:492:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.BasicBlock):2533:2534 -> a
    493:493:int negateBoolean(com.android.tools.r8.ir.code.ConstNumber):2699:2699 -> a
    494:494:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():959:959 -> a
    494:494:int negateBoolean(com.android.tools.r8.ir.code.ConstNumber):2699 -> a
    495:496:int negateBoolean(com.android.tools.r8.ir.code.ConstNumber):2699:2700 -> a
    497:524:boolean replaceDominatedConstNumbers(long,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.com.google.common.base.Supplier,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.base.Supplier):2710:2737 -> a
    525:525:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():959:959 -> a
    525:525:boolean replaceDominatedConstNumbers(long,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.com.google.common.base.Supplier,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.base.Supplier):2741 -> a
    526:540:boolean replaceDominatedConstNumbers(long,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.com.google.common.base.Supplier,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.base.Supplier):2756:2770 -> a
    541:566:boolean isBlockSupportedBySimplifyKnownBooleanCondition(com.android.tools.r8.ir.code.BasicBlock):2944:2969 -> a
    567:569:void rewriteIfToGoto(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):2980:2982 -> a
    570:572:void com.android.tools.r8.ir.code.BasicBlock.replaceLastInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):98:100 -> a
    570:572:void rewriteIfToGoto(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):2982 -> a
    573:574:void rewriteIfToGoto(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):2983:2984 -> a
    575:595:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):3144:3164 -> a
    596:596:void com.android.tools.r8.ir.code.InvokeDirect.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):37:37 -> a
    596:596:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):3164 -> a
    597:613:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):3164:3180 -> a
    614:614:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):3179:3179 -> a
    615:615:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    615:615:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):3178 -> a
    616:627:void rewriteAssertionErrorTwoArgumentConstructor(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):3178:3189 -> a
    628:650:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3200:3222 -> a
    651:651:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
    651:651:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3222 -> a
    652:652:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3223:3223 -> a
    653:687:java.util.Set computeUnneededMoves(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.DebugLocalsChange,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3260:3294 -> a
    653:687:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3227 -> a
    688:710:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3228:3250 -> a
    711:711:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap):168:168 -> a
    711:711:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3250 -> a
    712:716:void updateDebugLocalsRegisterMap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):3305:3309 -> a
    717:717:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
    717:717:void updateDebugLocalsRegisterMap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):3309 -> a
    718:722:void updateDebugLocalsRegisterMap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):3310:3314 -> a
    723:723:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3367:3367 -> a
    724:728:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3373:3377 -> a
    724:728:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3369 -> a
    729:729:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    729:729:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3377 -> a
    729:729:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3369 -> a
    730:730:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3382:3382 -> a
    730:730:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3369 -> a
    731:731:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3379:3379 -> a
    731:731:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3369 -> a
    732:732:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    732:732:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3379 -> a
    732:732:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3369 -> a
    733:733:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3379:3379 -> a
    733:733:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3369 -> a
    734:735:com.android.tools.r8.ir.code.Value addConstString(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,java.lang.String):3388:3389 -> a
    736:736:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    736:736:com.android.tools.r8.ir.code.Value addConstString(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,java.lang.String):3390 -> a
    737:737:com.android.tools.r8.ir.code.Value addConstString(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,java.lang.String):3392:3392 -> a
    738:738:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    738:738:com.android.tools.r8.ir.code.Value addConstString(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,java.lang.String):3392 -> a
    739:740:com.android.tools.r8.ir.code.Value addConstString(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,java.lang.String):3392:3393 -> a
    741:761:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3403:3423 -> a
    762:762:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    762:762:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3422 -> a
    763:769:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3425:3431 -> a
    770:808:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3429:3467 -> a
    809:812:com.android.tools.r8.ir.code.BasicBlock com.android.tools.r8.ir.code.BasicBlock.createIfBlock(int,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.IRMetadata):1392:1395 -> a
    809:812:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3467 -> a
    813:835:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3468:3490 -> a
    836:836:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    836:836:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3490 -> a
    837:838:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3491:3492 -> a
    839:854:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3491:3506 -> a
    855:862:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3510:3517 -> a
    863:873:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3530:3540 -> a
    863:873:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3517 -> a
    874:874:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3518:3518 -> a
    875:900:void replaceTrivialNewInstancePhis(com.android.tools.r8.ir.code.Value):3563:3588 -> a
    875:900:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3518 -> a
    901:905:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3519:3523 -> a
    906:906:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3520:3520 -> a
    907:907:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    907:907:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3520 -> a
    908:908:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    908:908:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    908:908:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3520 -> a
    909:909:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3520:3520 -> a
    910:910:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3538:3538 -> a
    910:910:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3517 -> a
    911:911:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    911:911:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3538 -> a
    911:911:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3517 -> a
    912:912:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    912:912:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    912:912:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3538 -> a
    912:912:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3517 -> a
    913:913:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3538:3538 -> a
    913:913:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3517 -> a
    914:914:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3534:3534 -> a
    914:914:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3517 -> a
    915:915:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    915:915:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3534 -> a
    915:915:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3517 -> a
    916:916:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    916:916:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    916:916:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3534 -> a
    916:916:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3517 -> a
    917:917:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3534:3534 -> a
    917:917:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexItemFactory):3517 -> a
    918:924:void recursiveAddOperands(com.android.tools.r8.ir.code.Phi,java.util.Set,java.util.Set):3544:3550 -> a
    1:1:void removeAssumeInstructions(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):178:178 -> b
    2:2:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> b
    2:2:void removeAssumeInstructions(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):180 -> b
    3:25:void removeAssumeInstructions(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):182:204 -> b
    26:26:boolean com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1126:1126 -> b
    26:26:void removeAssumeInstructions(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):216 -> b
    27:28:void removeAssumeInstructions(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):219:220 -> b
    29:29:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> b
    29:29:void removeAssumeInstructions(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):220 -> b
    30:33:void removeAssumeInstructions(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):220:223 -> b
    34:34:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> b
    34:34:void removeAssumeInstructions(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):180 -> b
    35:36:boolean isFallthroughBlock(com.android.tools.r8.ir.code.BasicBlock):311:312 -> b
    37:46:void unlinkTrivialGotoBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):351:360 -> b
    47:47:boolean lambda$shortenLiveRanges$6(com.android.tools.r8.ir.code.ConstInstruction):1734:1734 -> b
    48:53:boolean isCSEInstructionCandidate(com.android.tools.r8.ir.code.Instruction):2325:2330 -> b
    54:54:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2346:2346 -> b
    55:61:boolean hasCSECandidate(com.android.tools.r8.ir.code.IRCode,int):2334:2340 -> b
    55:61:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2347 -> b
    62:64:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2349:2351 -> b
    65:65:void com.android.tools.r8.ir.code.DominatorTree.<init>(com.android.tools.r8.ir.code.IRCode):37:37 -> b
    65:65:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2351 -> b
    66:79:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2352:2365 -> b
    80:89:boolean shareCatchHandlers(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):2312:2321 -> b
    80:89:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2366 -> b
    90:105:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2367:2382 -> b
    106:108:com.android.tools.r8.graph.DexMethod lambda$workaroundNumberConversionRegisterAllocationBug$13():3651:3653 -> b
    109:109:com.android.tools.r8.graph.DexMethod lambda$workaroundNumberConversionRegisterAllocationBug$13():3651:3651 -> b
    1:1:java.util.Map lambda$shortenLiveRangesInsideBlock$8(com.android.tools.r8.ir.code.BasicBlock):1908:1908 -> c
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap getConstantsByValue(com.android.tools.r8.ir.code.IRCode):2675:2675 -> c
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap lambda$redundantConstNumberRemoval$10(com.android.tools.r8.ir.code.IRCode):2570 -> c
    3:3:void com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap.<init>():119:119 -> c
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap getConstantsByValue(com.android.tools.r8.ir.code.IRCode):2675 -> c
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap lambda$redundantConstNumberRemoval$10(com.android.tools.r8.ir.code.IRCode):2570 -> c
    4:17:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap getConstantsByValue(com.android.tools.r8.ir.code.IRCode):2678:2691 -> c
    4:17:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap lambda$redundantConstNumberRemoval$10(com.android.tools.r8.ir.code.IRCode):2570 -> c
    18:18:boolean lambda$logArgumentTypes$12(com.android.tools.r8.ir.code.Instruction):3412:3412 -> c
    1:1:com.android.tools.r8.ir.code.DominatorTree lambda$redundantConstNumberRemoval$11(com.android.tools.r8.ir.code.IRCode):2571:2571 -> d
    2:2:void com.android.tools.r8.ir.code.DominatorTree.<init>(com.android.tools.r8.ir.code.IRCode):37:37 -> d
    2:2:com.android.tools.r8.ir.code.DominatorTree lambda$redundantConstNumberRemoval$11(com.android.tools.r8.ir.code.IRCode):2571 -> d
    1:1:com.android.tools.r8.ir.code.DominatorTree lambda$shortenLiveRanges$4(com.android.tools.r8.ir.code.IRCode):1713:1713 -> e
    2:2:void com.android.tools.r8.ir.code.DominatorTree.<init>(com.android.tools.r8.ir.code.IRCode):37:37 -> e
    2:2:com.android.tools.r8.ir.code.DominatorTree lambda$shortenLiveRanges$4(com.android.tools.r8.ir.code.IRCode):1713 -> e
    1:47:void processMethodsNeverReturningNormally(com.android.tools.r8.ir.code.IRCode):2781:2827 -> f
    48:49:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createConstNull(com.android.tools.r8.graph.DebugLocalInfo):1092:1093 -> f
    48:49:void processMethodsNeverReturningNormally(com.android.tools.r8.ir.code.IRCode):2827 -> f
    50:61:void processMethodsNeverReturningNormally(com.android.tools.r8.ir.code.IRCode):2828:2839 -> f
    1:51:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2559:2609 -> g
    52:52:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():959:959 -> g
    52:52:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2610 -> g
    53:62:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2612:2621 -> g
    63:63:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2620:2620 -> g
    64:64:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():959:959 -> g
    64:64:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2627 -> g
    65:65:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2630:2630 -> g
    66:79:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2629:2642 -> g
    80:80:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2641:2641 -> g
    81:81:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():959:959 -> g
    81:81:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2648 -> g
    82:82:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2651:2651 -> g
    83:102:void redundantConstNumberRemoval(com.android.tools.r8.ir.code.IRCode):2650:2669 -> g
    1:6:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):1063:1068 -> h
    7:45:com.android.tools.r8.ir.optimize.SwitchUtils$EnumSwitchInfo com.android.tools.r8.ir.optimize.SwitchUtils.analyzeSwitchOverEnum(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView):63:101 -> h
    7:45:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):1068 -> h
    46:53:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):1070:1077 -> h
    54:54:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray(int[]):167:167 -> h
    54:54:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.toIntArray():155 -> h
    54:54:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):1077 -> h
    55:66:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):1078:1089 -> h
    67:67:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298:298 -> h
    67:67:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):1091 -> h
    68:68:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> h
    68:68:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298 -> h
    68:68:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):1091 -> h
    69:77:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):1094:1102 -> h
    1:31:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1281:1311 -> i
    32:32:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> i
    32:32:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1311 -> i
    33:33:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1312:1312 -> i
    34:34:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> i
    34:34:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1313 -> i
    35:40:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1315:1320 -> i
    41:57:com.android.tools.r8.ir.optimize.CodeRewriter$RemoveCheckCastInstructionIfTrivialResult removeCheckCastInstructionIfTrivial(com.android.tools.r8.ir.code.CheckCast,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):1352:1368 -> i
    41:57:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1320 -> i
    58:58:boolean com.android.tools.r8.graph.DexType.isFloatType():224:224 -> i
    58:58:com.android.tools.r8.ir.optimize.CodeRewriter$RemoveCheckCastInstructionIfTrivialResult removeCheckCastInstructionIfTrivial(com.android.tools.r8.ir.code.CheckCast,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):1368 -> i
    58:58:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1320 -> i
    59:98:com.android.tools.r8.ir.optimize.CodeRewriter$RemoveCheckCastInstructionIfTrivialResult removeCheckCastInstructionIfTrivial(com.android.tools.r8.ir.code.CheckCast,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):1369:1408 -> i
    59:98:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1320 -> i
    99:107:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1321:1329 -> i
    108:108:boolean com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1126:1126 -> i
    108:108:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1341 -> i
    109:113:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode):1342:1346 -> i
    1:13:boolean removedTrivialGotos(com.android.tools.r8.ir.code.IRCode):227:239 -> j
    14:20:boolean removedTrivialGotos(com.android.tools.r8.ir.code.IRCode):236:242 -> j
    1:1:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):3035:3035 -> k
    2:2:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> k
    2:2:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):3039 -> k
    3:45:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):3040:3082 -> k
    46:46:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> k
    46:46:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):3082 -> k
    47:47:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):3084:3084 -> k
    48:48:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> k
    48:48:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):3084 -> k
    49:62:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):3087:3100 -> k
    63:63:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> k
    63:63:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):3100 -> k
    64:64:void rewriteConstantEnumMethodCalls(com.android.tools.r8.ir.code.IRCode):3105:3105 -> k
    1:1:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> l
    1:1:void rewriteKnownArrayLengthCalls(com.android.tools.r8.ir.code.IRCode):3109 -> l
    2:26:void rewriteKnownArrayLengthCalls(com.android.tools.r8.ir.code.IRCode):3110:3134 -> l
    27:27:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1059:1059 -> l
    27:27:void rewriteKnownArrayLengthCalls(com.android.tools.r8.ir.code.IRCode):3135 -> l
    28:28:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> l
    28:28:void rewriteKnownArrayLengthCalls(com.android.tools.r8.ir.code.IRCode):3136 -> l
    29:29:void rewriteKnownArrayLengthCalls(com.android.tools.r8.ir.code.IRCode):3140:3140 -> l
    1:1:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1181:1181 -> m
    2:2:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> m
    2:2:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1181 -> m
    3:36:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1184:1217 -> m
    37:84:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1216:1263 -> m
    85:85:boolean com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1126:1126 -> m
    85:85:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1264 -> m
    86:87:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1265:1266 -> m
    88:88:boolean com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1126:1126 -> m
    88:88:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1267 -> m
    89:90:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1269:1270 -> m
    91:91:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> m
    91:91:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1270 -> m
    92:94:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1270:1272 -> m
    1:14:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):854:867 -> n
    15:22:com.android.tools.r8.ir.optimize.SwitchCaseEliminator removeUnnecessarySwitchCases(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.ir.code.InstructionListIterator):1015:1022 -> n
    15:22:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):869 -> n
    23:25:boolean switchCaseIsUnreachable(com.android.tools.r8.ir.code.IntSwitch,int):1041:1043 -> n
    23:25:com.android.tools.r8.ir.optimize.SwitchCaseEliminator removeUnnecessarySwitchCases(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.ir.code.InstructionListIterator):1026 -> n
    23:25:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):869 -> n
    26:34:com.android.tools.r8.ir.optimize.SwitchCaseEliminator removeUnnecessarySwitchCases(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.ir.code.InstructionListIterator):1027:1035 -> n
    26:34:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):869 -> n
    35:59:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):871:895 -> n
    60:60:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1059:1059 -> n
    60:60:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):895 -> n
    61:88:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):896:923 -> n
    89:89:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> n
    89:89:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):923 -> n
    90:104:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):924:938 -> n
    105:105:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> n
    105:105:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):938 -> n
    106:142:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):940:976 -> n
    143:143:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> n
    143:143:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):976 -> n
    144:144:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):978:978 -> n
    145:176:int findIfsForCandidates(java.util.List,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):762:793 -> n
    145:176:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):979 -> n
    177:177:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> n
    177:177:int findIfsForCandidates(java.util.List,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):793 -> n
    177:177:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):979 -> n
    178:233:int findIfsForCandidates(java.util.List,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):794:849 -> n
    178:233:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):979 -> n
    234:258:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):983:1007 -> n
    259:259:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> n
    259:259:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):1007 -> n
    260:263:boolean rewriteSwitch(com.android.tools.r8.ir.code.IRCode):1007:1010 -> n
    1:58:void rewriteThrowNullPointerException(com.android.tools.r8.ir.code.IRCode):250:307 -> o
    1:17:void rewriteThrowableAddAndGetSuppressed(com.android.tools.r8.ir.code.IRCode):3324:3340 -> p
    18:18:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1059:1059 -> p
    18:18:void rewriteThrowableAddAndGetSuppressed(com.android.tools.r8.ir.code.IRCode):3347 -> p
    19:34:void rewriteThrowableAddAndGetSuppressed(com.android.tools.r8.ir.code.IRCode):3348:3363 -> p
    1:54:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1712:1765 -> q
    55:55:java.lang.Object com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.previous():29:29 -> q
    55:55:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1765 -> q
    56:56:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):29:29 -> q
    56:56:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1766 -> q
    57:71:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1767:1781 -> q
    72:72:boolean com.android.tools.r8.utils.InternalOptions.canHaveCmpIfFloatBug():1296:1296 -> q
    72:72:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1782 -> q
    73:76:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1782:1785 -> q
    77:78:void forEachUse(com.android.tools.r8.ir.code.Instruction,java.util.function.Consumer):1812:1813 -> q
    77:78:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1785 -> q
    79:88:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):1799:1808 -> q
    1:1:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2027:2027 -> r
    2:2:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> r
    2:2:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2027 -> r
    3:11:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2030:2038 -> r
    12:28:boolean allowNewFilledArrayConstruction(com.android.tools.r8.ir.code.Instruction):2003:2019 -> r
    12:28:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2039 -> r
    29:45:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2042:2058 -> r
    46:63:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2057:2074 -> r
    64:80:short[] computeArrayFilledData(com.android.tools.r8.ir.code.ConstInstruction[],int,int):1923:1939 -> r
    64:80:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2075 -> r
    81:127:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2079:2125 -> r
    1:1:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2386:2386 -> s
    2:7:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2392:2397 -> s
    2:7:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    8:22:boolean flipIfBranchesIfNeeded(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3014:3028 -> s
    8:22:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2398 -> s
    8:22:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    23:25:void com.android.tools.r8.ir.code.BasicBlock.replaceLastInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):98:100 -> s
    23:25:boolean flipIfBranchesIfNeeded(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3029 -> s
    23:25:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2398 -> s
    23:25:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    26:26:boolean flipIfBranchesIfNeeded(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3030:3030 -> s
    26:26:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2398 -> s
    26:26:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    27:38:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2988:2999 -> s
    27:38:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2399 -> s
    27:38:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    39:52:com.android.tools.r8.ir.code.If$Type com.android.tools.r8.ir.code.If$Type.forSwappedOperands():27:40 -> s
    39:52:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2999 -> s
    39:52:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2399 -> s
    39:52:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    53:53:com.android.tools.r8.ir.code.If$Type com.android.tools.r8.ir.code.If$Type.forSwappedOperands():38:38 -> s
    53:53:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2999 -> s
    53:53:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2399 -> s
    53:53:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    54:54:com.android.tools.r8.ir.code.If$Type com.android.tools.r8.ir.code.If$Type.forSwappedOperands():36:36 -> s
    54:54:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2999 -> s
    54:54:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2399 -> s
    54:54:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    55:55:com.android.tools.r8.ir.code.If$Type com.android.tools.r8.ir.code.If$Type.forSwappedOperands():34:34 -> s
    55:55:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2999 -> s
    55:55:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2399 -> s
    55:55:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    56:56:com.android.tools.r8.ir.code.If$Type com.android.tools.r8.ir.code.If$Type.forSwappedOperands():32:32 -> s
    56:56:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2999 -> s
    56:56:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2399 -> s
    56:56:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    57:57:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2999:2999 -> s
    57:57:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2399 -> s
    57:57:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    58:60:void com.android.tools.r8.ir.code.BasicBlock.replaceLastInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):98:100 -> s
    58:60:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3000 -> s
    58:60:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2399 -> s
    58:60:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    61:65:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3001:3005 -> s
    61:65:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2399 -> s
    61:65:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    66:68:void com.android.tools.r8.ir.code.BasicBlock.replaceLastInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):98:100 -> s
    66:68:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3006 -> s
    66:68:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2399 -> s
    66:68:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    69:69:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3007:3007 -> s
    69:69:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2399 -> s
    69:69:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    70:72:boolean simplifyKnownBooleanCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2873:2875 -> s
    70:72:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2401 -> s
    70:72:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    73:73:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():959:959 -> s
    73:73:boolean simplifyKnownBooleanCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2875 -> s
    73:73:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2401 -> s
    73:73:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    74:108:boolean simplifyKnownBooleanCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2876:2910 -> s
    74:108:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2401 -> s
    74:108:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    109:109:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> s
    109:109:boolean simplifyKnownBooleanCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2911 -> s
    109:109:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2401 -> s
    109:109:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    110:131:boolean simplifyKnownBooleanCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):2913:2934 -> s
    110:131:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2401 -> s
    110:131:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    132:155:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2406:2429 -> s
    132:155:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    156:156:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2538:2538 -> s
    156:156:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2430 -> s
    156:156:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    157:171:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2433:2447 -> s
    157:171:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    172:172:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2538:2538 -> s
    172:172:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2448 -> s
    172:172:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    173:173:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2439:2439 -> s
    173:173:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    174:174:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2538:2538 -> s
    174:174:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2440 -> s
    174:174:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    175:185:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2455:2465 -> s
    175:185:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    186:186:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2538:2538 -> s
    186:186:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2466 -> s
    186:186:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    187:202:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2469:2484 -> s
    187:202:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    203:203:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2538:2538 -> s
    203:203:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2485 -> s
    203:203:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    204:204:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2475:2475 -> s
    204:204:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    205:205:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2538:2538 -> s
    205:205:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2476 -> s
    205:205:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    206:210:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2495:2499 -> s
    206:210:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    211:211:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2538:2538 -> s
    211:211:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2500 -> s
    211:211:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    212:212:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2502:2502 -> s
    212:212:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    213:213:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2538:2538 -> s
    213:213:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2503 -> s
    213:213:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    214:217:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2508:2511 -> s
    214:217:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    218:218:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2538:2538 -> s
    218:218:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2513 -> s
    218:218:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    219:219:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2514:2514 -> s
    219:219:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    220:220:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2538:2538 -> s
    220:220:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2515 -> s
    220:220:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    221:223:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2522:2524 -> s
    221:223:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    224:224:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> s
    224:224:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2524 -> s
    224:224:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    225:228:boolean simplifyIf(com.android.tools.r8.ir.code.IRCode):2524:2527 -> s
    225:228:boolean simplifyControlFlow(com.android.tools.r8.ir.code.IRCode):2387 -> s
    1:6:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2162:2167 -> t
    7:25:void removeDebugWriteOfPhi(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.DebugLocalWrite):2206:2224 -> t
    7:25:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2167 -> t
    26:36:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2172:2182 -> t
    37:59:boolean hasLocalOrLineChangeBetween(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexString):2131:2153 -> t
    37:59:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2184 -> t
    60:73:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2185:2198 -> t
    74:74:boolean hasLocalOrLineChangeBetween(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexString):2158:2158 -> t
    74:74:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2184 -> t
    1:30:void splitRangeInvokeConstants(com.android.tools.r8.ir.code.IRCode):1517:1546 -> u
    1:31:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1557:1587 -> v
    32:32:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> v
    32:32:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1587 -> v
    33:51:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1587:1605 -> v
    52:65:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1673:1686 -> v
    52:65:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1606 -> v
    66:66:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable):449:449 -> v
    66:66:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1686 -> v
    66:66:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1606 -> v
    67:67:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1687:1687 -> v
    67:67:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1606 -> v
    68:68:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> v
    68:68:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1687 -> v
    68:68:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1606 -> v
    69:76:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1688:1695 -> v
    69:76:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1606 -> v
    77:89:boolean com.android.tools.r8.ir.code.BasicBlock.hasPathTo(com.android.tools.r8.ir.code.BasicBlock):1884:1896 -> v
    77:89:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1698 -> v
    77:89:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1606 -> v
    90:90:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1701:1701 -> v
    90:90:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1606 -> v
    91:91:boolean com.android.tools.r8.ir.code.BasicBlock.hasPathTo(com.android.tools.r8.ir.code.BasicBlock):1884:1884 -> v
    91:91:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1698 -> v
    91:91:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1606 -> v
    92:97:com.android.tools.r8.ir.code.Value binopWithLit8OrLit16Constant(com.android.tools.r8.ir.code.Instruction):1644:1649 -> v
    92:97:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1608 -> v
    98:108:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1609:1619 -> v
    109:109:com.android.tools.r8.ir.code.Value binopWithLit8OrLit16Constant(com.android.tools.r8.ir.code.Instruction):1651:1651 -> v
    109:109:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1608 -> v
    110:110:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):1625:1625 -> v
    1:46:void workaroundNumberConversionRegisterAllocationBug(com.android.tools.r8.ir.code.IRCode):3650:3695 -> w
com.android.tools.r8.ir.optimize.CodeRewriter$1 -> com.android.tools.r8.ir.optimize.l$a:
com.android.tools.r8.ir.optimize.CodeRewriter$CSEExpressionEquivalence -> com.android.tools.r8.ir.optimize.l$b:
    com.android.tools.r8.utils.InternalOptions options -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():2228:2228 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.optimize.CodeRewriter$1):2228:2228 -> <init>
    2:3:void <init>(com.android.tools.r8.utils.InternalOptions):2232:2233 -> <init>
    1:6:boolean identicalValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):2292:2297 -> a
    7:11:int getHashCode(com.android.tools.r8.ir.code.Value):2303:2307 -> a
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):2228:2228 -> doEquivalent
    2:2:boolean doEquivalent(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):2241:2241 -> doEquivalent
    2:2:boolean doEquivalent(java.lang.Object,java.lang.Object):2228 -> doEquivalent
    3:3:boolean com.android.tools.r8.utils.InternalOptions.canHaveCmpLongBug():1268:1268 -> doEquivalent
    3:3:boolean doEquivalent(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):2241 -> doEquivalent
    3:3:boolean doEquivalent(java.lang.Object,java.lang.Object):2228 -> doEquivalent
    4:19:boolean doEquivalent(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):2245:2260 -> doEquivalent
    4:19:boolean doEquivalent(java.lang.Object,java.lang.Object):2228 -> doEquivalent
    1:1:int doHash(java.lang.Object):2228:2228 -> doHash
    2:16:int doHash(com.android.tools.r8.ir.code.Instruction):2271:2285 -> doHash
    2:16:int doHash(java.lang.Object):2228 -> doHash
com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder -> com.android.tools.r8.ir.optimize.l$c:
    com.android.tools.r8.ir.code.BasicBlock fallthrough -> g
    com.android.tools.r8.ir.code.BasicBlock target -> f
    com.android.tools.r8.ir.code.Value left -> d
    com.android.tools.r8.ir.code.IRCode code -> c
    boolean $assertionsDisabled -> h
    int right -> e
    1:1:void <clinit>():520:520 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.IRCode):528:529 -> <init>
    1:1:com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder setLeft(com.android.tools.r8.ir.code.Value):538:538 -> a
    2:2:com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder setRight(int):543:543 -> a
    3:3:com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder setFallthrough(com.android.tools.r8.ir.code.BasicBlock):553:553 -> a
    4:9:com.android.tools.r8.ir.code.BasicBlock build():558:563 -> a
    10:10:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1059:1059 -> a
    10:10:com.android.tools.r8.ir.code.BasicBlock build():563 -> a
    11:16:com.android.tools.r8.ir.code.BasicBlock build():564:569 -> a
    17:20:com.android.tools.r8.ir.code.BasicBlock com.android.tools.r8.ir.code.BasicBlock.createIfBlock(int,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.IRMetadata):1392:1395 -> a
    17:20:com.android.tools.r8.ir.code.BasicBlock build():569 -> a
    21:23:com.android.tools.r8.ir.code.BasicBlock build():571:573 -> a
    1:1:com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder setTarget(com.android.tools.r8.ir.code.BasicBlock):548:548 -> b
com.android.tools.r8.ir.optimize.CodeRewriter$InstanceOfResult -> com.android.tools.r8.ir.optimize.l$d:
    com.android.tools.r8.ir.optimize.CodeRewriter$InstanceOfResult FALSE -> c
    com.android.tools.r8.ir.optimize.CodeRewriter$InstanceOfResult TRUE -> b
    com.android.tools.r8.ir.optimize.CodeRewriter$InstanceOfResult UNKNOWN -> a
    1:3:void <clinit>():138:140 -> <clinit>
    1:1:void <init>(java.lang.String,int):137:137 -> <init>
com.android.tools.r8.ir.optimize.CodeRewriter$InstructionBuilder -> com.android.tools.r8.ir.optimize.l$e:
    com.android.tools.r8.ir.code.Position position -> b
    int blockNumber -> a
    1:2:void <init>(com.android.tools.r8.ir.code.Position):448:449 -> <init>
com.android.tools.r8.ir.optimize.CodeRewriter$Interval -> com.android.tools.r8.ir.optimize.l$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList keys -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():657:657 -> <clinit>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList[]):661:661 -> <init>
    2:8:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList[]):659:665 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList access$000(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):657:657 -> a
    2:2:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode):695:695 -> a
    1:1:int getMax():674:674 -> b
    1:1:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):683 -> b
    2:2:int getMin():670:670 -> b
    2:2:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):683 -> b
    3:3:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):684:684 -> b
    4:4:int com.android.tools.r8.ir.code.IntSwitch.baseSparseSize(com.android.tools.r8.utils.InternalOutputMode):114:114 -> b
    4:4:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):688 -> b
    5:5:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):688:688 -> b
    6:6:int com.android.tools.r8.ir.code.IntSwitch.basePackedSize(com.android.tools.r8.utils.InternalOutputMode):103:103 -> b
    6:6:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):690 -> b
    7:7:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):690:690 -> b
    8:8:void addInterval(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):678:678 -> b
    9:9:int getMax():674:674 -> b
    9:9:void addInterval(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):678 -> b
    10:10:int getMin():670:670 -> b
    10:10:void addInterval(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):678 -> b
    11:12:void addInterval(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):678:679 -> b
com.android.tools.r8.ir.optimize.CodeRewriter$RemoveCheckCastInstructionIfTrivialResult -> com.android.tools.r8.ir.optimize.l$g:
    com.android.tools.r8.ir.optimize.CodeRewriter$RemoveCheckCastInstructionIfTrivialResult NO_REMOVALS -> a
    com.android.tools.r8.ir.optimize.CodeRewriter$RemoveCheckCastInstructionIfTrivialResult REMOVED_CAST_DO_NARROW -> b
    1:2:void <clinit>():1276:1277 -> <clinit>
    1:1:void <init>(java.lang.String,int):1275:1275 -> <init>
com.android.tools.r8.ir.optimize.CodeRewriter$SCC -> com.android.tools.r8.ir.optimize.l$h:
    java.util.Deque unassignedStack -> d
    java.util.Set unassignedSet -> c
    java.util.List components -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap discoverTime -> b
    java.util.Deque preorderStack -> e
    boolean $assertionsDisabled -> g
    int currentTime -> a
    1:1:void <clinit>():3595:3595 -> <clinit>
    1:8:void <init>():3595:3602 -> <init>
    9:9:void <init>(com.android.tools.r8.ir.optimize.CodeRewriter$1):3595:3595 -> <init>
    1:3:java.util.List computeSCC(com.android.tools.r8.ir.code.Value):3605:3607 -> a
    1:33:void dfs(com.android.tools.r8.ir.code.Value):3611:3643 -> b
com.android.tools.r8.ir.optimize.CodeRewriter$SwitchBuilder -> com.android.tools.r8.ir.optimize.l$i:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap keyToTarget -> d
    com.android.tools.r8.ir.code.BasicBlock fallthrough -> e
    com.android.tools.r8.ir.code.Value value -> c
    1:1:void <init>(com.android.tools.r8.ir.code.Position):466:466 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.Position):462:462 -> <init>
    1:1:com.android.tools.r8.ir.optimize.CodeRewriter$SwitchBuilder setValue(com.android.tools.r8.ir.code.Value):475:475 -> a
    2:2:com.android.tools.r8.ir.optimize.CodeRewriter$SwitchBuilder addKeyAndTarget(int,com.android.tools.r8.ir.code.BasicBlock):480:480 -> a
    3:3:com.android.tools.r8.ir.optimize.CodeRewriter$SwitchBuilder setFallthrough(com.android.tools.r8.ir.code.BasicBlock):485:485 -> a
    4:25:com.android.tools.r8.ir.code.BasicBlock build(com.android.tools.r8.ir.code.IRMetadata):491:512 -> a
    26:29:com.android.tools.r8.ir.code.BasicBlock com.android.tools.r8.ir.code.BasicBlock.createSwitchBlock(int,com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.ir.code.IRMetadata):1422:1425 -> a
    26:29:com.android.tools.r8.ir.code.BasicBlock build(com.android.tools.r8.ir.code.IRMetadata):512 -> a
    30:31:com.android.tools.r8.ir.code.BasicBlock build(com.android.tools.r8.ir.code.IRMetadata):513:514 -> a
    32:32:java.lang.Integer lambda$build$0(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,com.android.tools.r8.ir.code.BasicBlock):503:503 -> a
    1:1:java.lang.Integer lambda$build$1(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,com.android.tools.r8.ir.code.BasicBlock):509:509 -> b
com.android.tools.r8.ir.optimize.ConstantCanonicalizer -> com.android.tools.r8.ir.optimize.n:
    com.android.tools.r8.ir.optimize.CodeRewriter codeRewriter -> a
    int numberOfEffectivelyFinalFieldCanonicalization -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfCanonicalizationCandidatesPerMethod -> g
    int numberOfDexItemBasedConstStringCanonicalization -> d
    boolean $assertionsDisabled -> h
    int numberOfConstClassCanonicalization -> e
    int numberOfConstNumberCanonicalization -> b
    int numberOfConstStringCanonicalization -> c
    1:1:void <clinit>():42:42 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.CodeRewriter):55:55 -> <init>
    2:14:void <init>(com.android.tools.r8.ir.optimize.CodeRewriter):48:60 -> <init>
    1:3:void logResults():65:67 -> a
    4:7:void logResults():66:69 -> a
    8:12:void logResults():68:72 -> a
    13:17:void logResults():70:74 -> a
    18:23:void logResults():73:78 -> a
    24:30:void logResults():75:81 -> a
    31:32:void lambda$logResults$0(java.lang.Long,java.lang.Integer):82:83 -> a
    33:33:void lambda$logResults$0(java.lang.Long,java.lang.Integer):82:82 -> a
    34:35:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):88:89 -> a
    36:36:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy):184:184 -> a
    36:36:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):89 -> a
    37:67:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):123:153 -> a
    68:69:boolean constantUsedByInvokeRange(com.android.tools.r8.ir.code.Instruction):270:271 -> a
    68:69:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):161 -> a
    70:144:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):164:238 -> a
    145:168:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):212:235 -> a
    169:174:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):224:229 -> a
    175:175:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):228:228 -> a
    176:210:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):206:240 -> a
    211:222:void insertCanonicalizedConstant(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):255:266 -> a
    211:222:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):241 -> a
    223:232:void canonicalize(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):242:251 -> a
    233:233:java.util.List lambda$canonicalize$1(com.android.tools.r8.ir.code.Instruction):165:165 -> a
    234:234:boolean lambda$canonicalize$2(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):182:182 -> a
    235:235:int lambda$canonicalize$4(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):192:192 -> a
    1:1:boolean lambda$canonicalize$3(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):191:191 -> b
com.android.tools.r8.ir.optimize.ConstantCanonicalizer$1 -> com.android.tools.r8.ir.optimize.m:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():91:91 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.ConstantCanonicalizer):91:91 -> <init>
    1:1:boolean equals(java.lang.Object,java.lang.Object):91:91 -> a
    2:4:boolean equals(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):116:118 -> a
    2:4:boolean equals(java.lang.Object,java.lang.Object):91 -> a
    5:5:int hashCode(java.lang.Object):91:91 -> a
    6:20:int hashCode(com.android.tools.r8.ir.code.Instruction):95:109 -> a
    6:20:int hashCode(java.lang.Object):91 -> a
    21:28:int hashCode(com.android.tools.r8.ir.code.Instruction):100:107 -> a
    21:28:int hashCode(java.lang.Object):91 -> a
    29:29:int hashCode(com.android.tools.r8.ir.code.Instruction):105:105 -> a
    29:29:int hashCode(java.lang.Object):91 -> a
    30:30:int hashCode(com.android.tools.r8.ir.code.Instruction):98:98 -> a
    30:30:int hashCode(java.lang.Object):91 -> a
com.android.tools.r8.ir.optimize.DeadCodeRemover -> com.android.tools.r8.ir.optimize.o:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.optimize.CodeRewriter codeRewriter -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():27:27 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter):32:34 -> <init>
    1:7:void updateWorklist(java.util.Queue,com.android.tools.r8.ir.code.Value):58:64 -> a
    8:11:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):121:124 -> a
    12:37:java.util.Collection getDeadCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):153:178 -> a
    12:37:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):125 -> a
    38:38:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    38:38:java.util.Collection getDeadCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):178 -> a
    38:38:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):125 -> a
    39:46:java.util.Collection getDeadCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):178:185 -> a
    39:46:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):125 -> a
    47:66:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):126:145 -> a
    1:9:void run(com.android.tools.r8.ir.code.IRCode):38:46 -> b
    10:23:void removeDeadInstructions(java.util.Queue,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):93:106 -> b
    10:23:void run(com.android.tools.r8.ir.code.IRCode):47 -> b
    24:28:void updateWorklist(java.util.Queue,com.android.tools.r8.ir.code.Instruction):70:74 -> b
    24:28:void removeDeadInstructions(java.util.Queue,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):109 -> b
    24:28:void run(com.android.tools.r8.ir.code.IRCode):47 -> b
    29:31:void removeDeadInstructions(java.util.Queue,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):113:115 -> b
    29:31:void run(com.android.tools.r8.ir.code.IRCode):47 -> b
    32:39:void removeDeadPhis(java.util.Queue,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):79:86 -> b
    32:39:void run(com.android.tools.r8.ir.code.IRCode):48 -> b
    40:42:void run(com.android.tools.r8.ir.code.IRCode):50:52 -> b
com.android.tools.r8.ir.optimize.DefaultInliningOracle -> com.android.tools.r8.ir.optimize.p:
    com.android.tools.r8.ir.conversion.MethodProcessor methodProcessor -> d
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> i
    int instructionAllowance -> h
    com.android.tools.r8.ir.optimize.Inliner inliner -> b
    int inliningInstructionLimit -> g
    com.android.tools.r8.graph.DexEncodedMethod method -> c
    java.util.function.Predicate isProcessedConcurrently -> e
    com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy reasonStrategy -> f
    1:1:void <clinit>():50:50 -> <clinit>
    1:10:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.Inliner,com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor,int,int):70:79 -> <init>
    com.android.tools.r8.graph.DexType getReceiverTypeIfKnown(com.android.tools.r8.ir.code.InvokeMethod) -> a
    boolean isForcedInliningOracle() -> a
    1:13:boolean isSingleTargetInvalid(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):96:108 -> a
    1:13:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):331 -> a
    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    14:14:boolean isSingleTargetInvalid(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):108 -> a
    14:14:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):331 -> a
    15:30:boolean isSingleTargetInvalid(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):109:124 -> a
    15:30:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):331 -> a
    31:41:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):335:345 -> a
    42:51:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):344:353 -> a
    52:54:boolean isSingleTargetInvalid(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):97:99 -> a
    52:54:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):331 -> a
    55:59:boolean canInlineStaticInvoke(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):144:148 -> a
    60:60:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    60:60:boolean canInlineStaticInvoke(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):148 -> a
    61:71:boolean canInlineStaticInvoke(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):149:159 -> a
    72:92:boolean canInlineStaticInvoke(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):155:175 -> a
    93:93:boolean com.android.tools.r8.graph.DexClass.classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView):786:786 -> a
    93:93:boolean canInlineStaticInvoke(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):175 -> a
    94:98:boolean canInlineStaticInvoke(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):179:183 -> a
    99:99:java.lang.Boolean lambda$canInlineStaticInvoke$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.analysis.InitializedClassesInInstanceMethodsAnalysis$InitializedClassesInInstanceMethods):157:157 -> a
    100:108:boolean passesInliningConstraints(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):193:201 -> a
    109:109:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    109:109:boolean passesInliningConstraints(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):201 -> a
    110:184:boolean passesInliningConstraints(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):201:275 -> a
    185:185:boolean passesInliningConstraints(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):274:274 -> a
    186:190:boolean inlineeRefersToClassesNotInMainDex(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):280:284 -> a
    191:191:boolean inlineeRefersToClassesNotInMainDex(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):283:283 -> a
    192:192:boolean satisfiesRequirementsForSimpleInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):290:290 -> a
    193:204:int computeInstructionLimit(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):299:310 -> a
    193:204:boolean satisfiesRequirementsForSimpleInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):291 -> a
    205:205:boolean satisfiesRequirementsForSimpleInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):292:292 -> a
    206:206:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType):321:321 -> a
    207:227:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvokeWithReceiver(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):362:382 -> a
    228:232:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvokeStatic(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):395:399 -> a
    233:235:void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):405:407 -> a
    236:236:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
    236:236:void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):407 -> a
    237:237:void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):409:409 -> a
    238:238:void com.android.tools.r8.ir.optimize.Inliner.performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):846:846 -> a
    238:238:void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):409 -> a
    239:239:void com.android.tools.r8.ir.optimize.Inliner.performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):841:841 -> a
    239:239:void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):409 -> a
    240:251:boolean allowInliningOfInvokeInInlinee(com.android.tools.r8.ir.optimize.Inliner$InlineAction,int,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):418:429 -> a
    252:343:boolean canInlineInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):445:536 -> a
    344:349:boolean stillHasBudget(com.android.tools.r8.ir.optimize.Inliner$InlineAction,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):543:548 -> a
    350:350:boolean willExceedBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):560:560 -> a
    351:353:boolean willExceedInstructionBudget(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):571:573 -> a
    351:353:boolean willExceedBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):563 -> a
    354:354:boolean willExceedBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):564:564 -> a
    355:371:boolean willExceedControlFlowResolutionBlocksBudget(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):658:674 -> a
    355:371:boolean willExceedBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):565 -> a
    372:404:boolean willExceedMonitorEnterValuesBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):593:625 -> a
    405:405:void markInlined(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason):684:684 -> a
com.android.tools.r8.ir.optimize.Devirtualizer -> com.android.tools.r8.ir.optimize.q:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():37:37 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.AppView):41:42 -> <init>
    1:3:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):46:48 -> a
    4:4:void com.android.tools.r8.ir.code.DominatorTree.<init>(com.android.tools.r8.ir.code.IRCode):37:37 -> a
    4:4:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):48 -> a
    5:31:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):49:75 -> a
    32:32:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Assume.getAliasForOutValue():199:199 -> a
    32:32:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):75 -> a
    33:59:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):76:102 -> a
    60:76:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):101:117 -> a
    77:77:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    77:77:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):117 -> a
    78:108:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):119:149 -> a
    109:128:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):148:167 -> a
    129:129:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    129:129:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):174 -> a
    130:152:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):176:198 -> a
    153:153:void com.android.tools.r8.ir.code.DominatorTree.<init>(com.android.tools.r8.ir.code.IRCode):37:37 -> a
    153:153:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):198 -> a
    154:169:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):200:215 -> a
    170:181:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):214:225 -> a
    182:182:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    182:182:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):225 -> a
    183:185:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):225:227 -> a
com.android.tools.r8.ir.optimize.DynamicTypeOptimization -> com.android.tools.r8.ir.optimize.r:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():31:31 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.AppView):35:36 -> <init>
    1:3:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):42:44 -> a
    4:82:void insertAssumeDynamicTypeInstructionsInBlock(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):54:132 -> a
    4:82:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):45 -> a
    83:88:void insertAssumeDynamicTypeInstructionsInBlock(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):131:136 -> a
    83:88:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):45 -> a
    89:104:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement computeDynamicLowerBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):161:176 -> a
    1:10:com.android.tools.r8.ir.analysis.type.TypeLatticeElement computeDynamicReturnType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):147:156 -> b
com.android.tools.r8.ir.optimize.EnumInfoMapCollector -> com.android.tools.r8.ir.optimize.s:
    java.util.Map valueInfoMaps -> b
    com.android.tools.r8.graph.AppView appView -> a
    1:1:void <init>(com.android.tools.r8.graph.AppView):35:35 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView):33:36 -> <init>
    1:1:com.android.tools.r8.shaking.AppInfoWithLiveness run():40:40 -> a
    2:44:void processClasses(com.android.tools.r8.graph.DexProgramClass):51:93 -> a
    2:44:com.android.tools.r8.shaking.AppInfoWithLiveness run():41 -> a
    45:48:com.android.tools.r8.shaking.AppInfoWithLiveness run():43:46 -> a
com.android.tools.r8.ir.optimize.ForcedInliningOracle -> com.android.tools.r8.ir.optimize.t:
    java.util.Map invokesToInline -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.DexEncodedMethod method -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():22:22 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):31:34 -> <init>
    boolean allowInliningOfInvokeInInlinee(com.android.tools.r8.ir.optimize.Inliner$InlineAction,int,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
    boolean canInlineInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
    void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback) -> a
    boolean isForcedInliningOracle() -> a
    void markInlined(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason) -> a
    boolean passesInliningConstraints(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
    boolean stillHasBudget(com.android.tools.r8.ir.optimize.Inliner$InlineAction,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
    boolean willExceedBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
    1:5:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType):53:57 -> a
    6:18:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvoke(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):72:84 -> a
    6:18:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):67 -> a
    19:22:com.android.tools.r8.graph.DexType getReceiverTypeIfKnown(com.android.tools.r8.ir.code.InvokeMethod):130:133 -> a
com.android.tools.r8.ir.optimize.IdempotentFunctionCallCanonicalizer -> com.android.tools.r8.ir.optimize.v:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfCanonicalizationCandidatesPerMethod -> e
    boolean $assertionsDisabled -> f
    int numberOfProgramCallCanonicalization -> d
    int numberOfLibraryCallCanonicalization -> c
    1:1:void <clinit>():54:54 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):66:66 -> <init>
    2:12:void <init>(com.android.tools.r8.graph.AppView):62:72 -> <init>
    1:3:void logResults():77:79 -> a
    4:7:void logResults():78:81 -> a
    8:12:void logResults():80:84 -> a
    13:16:void lambda$logResults$0(java.lang.Long,java.lang.Integer):87:90 -> a
    17:17:void lambda$logResults$0(java.lang.Long,java.lang.Integer):86:86 -> a
    18:18:void canonicalize(com.android.tools.r8.ir.code.IRCode):95:95 -> a
    19:19:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy):184:184 -> a
    19:19:void canonicalize(com.android.tools.r8.ir.code.IRCode):95 -> a
    20:33:void canonicalize(com.android.tools.r8.ir.code.IRCode):113:126 -> a
    34:40:boolean isIdempotentLibraryMethodInvoke(com.android.tools.r8.ir.code.InvokeMethod):256:262 -> a
    34:40:void canonicalize(com.android.tools.r8.ir.code.IRCode):130 -> a
    41:91:void canonicalize(com.android.tools.r8.ir.code.IRCode):131:181 -> a
    92:92:java.util.HashMap com.android.tools.r8.com.google.common.collect.Maps.newHashMap():283:283 -> a
    92:92:void canonicalize(com.android.tools.r8.ir.code.IRCode):184 -> a
    93:159:void canonicalize(com.android.tools.r8.ir.code.IRCode):186:252 -> a
    160:160:java.util.List lambda$canonicalize$1(com.android.tools.r8.ir.code.InvokeMethod):171:171 -> a
    161:161:boolean lambda$canonicalize$2(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):188:188 -> a
    162:162:int lambda$canonicalize$4(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):196:196 -> a
    163:173:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):199:209 -> a
    174:182:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):208:216 -> a
    183:183:com.android.tools.r8.ir.code.Invoke com.android.tools.r8.ir.code.Invoke.create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):66:66 -> a
    183:183:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):211 -> a
    184:187:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):220:223 -> a
    188:198:void insertCanonicalizedInvokeWithoutInValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Invoke):290:300 -> a
    188:198:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):225 -> a
    199:200:void lambda$canonicalize$5(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):227:228 -> a
    201:219:void insertCanonicalizedInvokeWithInValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Invoke):267:285 -> a
    220:220:boolean lambda$insertCanonicalizedInvokeWithInValues$6(com.android.tools.r8.ir.code.Instruction):280:280 -> a
    1:1:boolean lambda$canonicalize$3(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):195:195 -> b
com.android.tools.r8.ir.optimize.IdempotentFunctionCallCanonicalizer$1 -> com.android.tools.r8.ir.optimize.u:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():97:97 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.IdempotentFunctionCallCanonicalizer):97:97 -> <init>
    1:1:boolean equals(java.lang.Object,java.lang.Object):97:97 -> a
    2:6:boolean equals(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InvokeMethod):105:109 -> a
    2:6:boolean equals(java.lang.Object,java.lang.Object):97 -> a
    7:7:int hashCode(java.lang.Object):97:97 -> a
    8:8:int hashCode(com.android.tools.r8.ir.code.InvokeMethod):100:100 -> a
    8:8:int hashCode(java.lang.Object):97 -> a
com.android.tools.r8.ir.optimize.Inliner -> com.android.tools.r8.ir.optimize.w:
    java.util.Set doubleInlineCallers -> g
    com.android.tools.r8.shaking.MainDexClasses mainDexClasses -> e
    java.util.Set doubleInlineSelectedTargets -> h
    com.android.tools.r8.ir.optimize.lambda.LambdaMerger lambdaMerger -> c
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> j
    com.android.tools.r8.ir.conversion.LensCodeRewriter lensCodeRewriter -> d
    java.util.Map doubleInlineeCandidates -> i
    boolean applyDoubleInlining -> f
    java.util.Set blacklist -> b
    1:1:void <clinit>():73:73 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.MainDexClasses,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):91:91 -> <init>
    2:20:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.MainDexClasses,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):82:100 -> <init>
    boolean lambda$performInliningImpl$1(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock) -> a
    1:19:boolean isBlacklisted(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):105:123 -> a
    20:20:boolean isBlacklisted(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter):118:118 -> a
    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):145:145 -> a
    22:22:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    22:22:boolean com.android.tools.r8.utils.InternalOptions.canHaveDalvikCatchHandlerVerificationBug():1487 -> a
    22:22:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):145 -> a
    23:23:boolean com.android.tools.r8.utils.InternalOptions.canHaveDalvikCatchHandlerVerificationBug():1487:1487 -> a
    23:23:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):145 -> a
    24:29:boolean useReflectiveOperationExceptionOrUnknownClassInCatch(com.android.tools.r8.ir.code.IRCode):1060:1065 -> a
    24:29:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):146 -> a
    30:30:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    30:30:boolean useReflectiveOperationExceptionOrUnknownClassInCatch(com.android.tools.r8.ir.code.IRCode):1065 -> a
    30:30:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):146 -> a
    31:43:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):147:159 -> a
    44:46:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget instructionAllowedForInlining(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):137:139 -> a
    44:46:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):160 -> a
    47:52:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):161:166 -> a
    53:57:boolean hasInliningAccess(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):188:192 -> a
    58:58:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    58:58:boolean hasInliningAccess(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):192 -> a
    59:59:boolean hasInliningAccess(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):193:193 -> a
    60:67:boolean isVisibleWithFlags(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags):197:204 -> a
    68:68:boolean com.android.tools.r8.graph.DexType.isSamePackage(com.android.tools.r8.graph.DexType):98:98 -> a
    68:68:boolean isVisibleWithFlags(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags):204 -> a
    69:69:boolean com.android.tools.r8.graph.DexType.isSamePackage(com.android.tools.r8.graph.DexType):98:98 -> a
    69:69:boolean isVisibleWithFlags(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags):207 -> a
    70:70:boolean isDoubleInlineSelectedTarget(com.android.tools.r8.graph.DexEncodedMethod):211:211 -> a
    71:72:java.util.Set methodsToRevisit():245:246 -> a
    73:97:int numberOfInstructions(com.android.tools.r8.ir.code.IRCode):775:799 -> a
    98:98:void performForcedInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Map):823:823 -> a
    99:101:void performForcedInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):832:834 -> a
    102:102:void performForcedInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):833:833 -> a
    103:110:void performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy):855:862 -> a
    111:111:com.android.tools.r8.ir.optimize.DefaultInliningOracle createDefaultOracle(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor,int,int,com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy):900:900 -> a
    111:111:void performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy):857 -> a
    112:114:void performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy):864:866 -> a
    115:117:com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy createDefaultInliningReasonStrategy(com.android.tools.r8.ir.conversion.MethodProcessor):871:873 -> a
    118:118:com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy lambda$createDefaultInliningReasonStrategy$0(com.android.tools.r8.ir.optimize.inliner.DefaultInliningReasonStrategy,com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteShrinker):874:874 -> a
    119:119:com.android.tools.r8.ir.optimize.DefaultInliningOracle createDefaultOracle(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor,int,int):890:890 -> a
    120:120:com.android.tools.r8.ir.optimize.DefaultInliningOracle createDefaultOracle(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor,int,int,com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy):900:900 -> a
    120:120:com.android.tools.r8.ir.optimize.DefaultInliningOracle createDefaultOracle(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.MethodProcessor,int,int):884 -> a
    121:166:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):918:963 -> a
    167:212:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):962:1007 -> a
    213:223:com.android.tools.r8.graph.DexType getDowncastTypeIfNeeded(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1075:1085 -> a
    213:223:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):1013 -> a
    224:259:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):1007:1042 -> a
    260:262:java.lang.Object com.android.tools.r8.utils.IteratorUtils.previousUntil(java.util.ListIterator,java.util.function.Predicate):71:73 -> a
    260:262:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):1042 -> a
    263:263:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):1043:1043 -> a
    264:264:java.lang.Object com.android.tools.r8.utils.IteratorUtils.previousUntil(java.util.ListIterator,java.util.function.Predicate):77:77 -> a
    264:264:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):1042 -> a
    265:276:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):1045:1056 -> a
    277:310:void applyAssumersToInlinee(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):1093:1126 -> a
    311:317:void applyAssumerToInlinee(com.android.tools.r8.ir.optimize.Assumer,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,java.util.ListIterator,java.util.Set):1138:1144 -> a
    java.util.Collection codeOptimizationsForPostProcessing() -> b
    1:7:boolean returnsIntAsBoolean(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):172:178 -> b
    8:8:boolean com.android.tools.r8.ir.code.Value.knownToBeBoolean():959:959 -> b
    8:8:boolean returnsIntAsBoolean(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):178 -> b
    9:20:void recordDoubleInliningCandidate(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):228:239 -> b
    1:1:boolean isDoubleInliningEnabled():131:131 -> c
    2:8:boolean satisfiesRequirementsForDoubleInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):216:222 -> c
com.android.tools.r8.ir.optimize.Inliner$Constraint -> com.android.tools.r8.ir.optimize.w$a:
    com.android.tools.r8.ir.optimize.Inliner$Constraint PACKAGE -> e
    com.android.tools.r8.ir.optimize.Inliner$Constraint SAMENEST -> d
    com.android.tools.r8.ir.optimize.Inliner$Constraint[] $VALUES -> h
    com.android.tools.r8.ir.optimize.Inliner$Constraint SAMECLASS -> c
    com.android.tools.r8.ir.optimize.Inliner$Constraint NEVER -> b
    boolean $assertionsDisabled -> i
    com.android.tools.r8.ir.optimize.Inliner$Constraint ALWAYS -> g
    com.android.tools.r8.ir.optimize.Inliner$Constraint SUBCLASS -> f
    int value -> a
    1:17:void <clinit>():262:278 -> <clinit>
    18:47:void <clinit>():262:291 -> <clinit>
    1:2:void <init>(java.lang.String,int,int):282:283 -> <init>
    1:1:boolean isSet(int):295:295 -> b
com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget -> com.android.tools.r8.ir.optimize.w$b:
    com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget ALWAYS -> d
    com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget NEVER -> c
    com.android.tools.r8.ir.optimize.Inliner$Constraint constraint -> a
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.DexType targetHolder -> b
    1:9:void <clinit>():313:321 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.optimize.Inliner$Constraint):323:326 -> <init>
    5:9:void <init>(com.android.tools.r8.ir.optimize.Inliner$Constraint,com.android.tools.r8.graph.DexType):329:333 -> <init>
    1:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget deriveConstraint(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AppView):356:358 -> a
    4:4:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget deriveConstraint(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AppView):359 -> a
    5:13:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget deriveConstraint(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AppView):360:368 -> a
    14:14:boolean com.android.tools.r8.graph.DexType.isSamePackage(com.android.tools.r8.graph.DexType):98:98 -> a
    14:14:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget deriveConstraint(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AppView):369 -> a
    15:19:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget deriveConstraint(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AppView):371:375 -> a
    20:20:boolean com.android.tools.r8.graph.DexType.isSamePackage(com.android.tools.r8.graph.DexType):98:98 -> a
    20:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget deriveConstraint(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AppView):378 -> a
    21:21:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget deriveConstraint(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AppView):379:379 -> a
    22:27:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget classIsVisible(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):385:390 -> a
    28:28:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    28:28:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget classIsVisible(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):393 -> a
    29:30:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget classIsVisible(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):395:396 -> a
    31:81:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):401:451 -> a
    82:82:boolean verifyAllNestInSamePackage(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):528:528 -> a
    82:82:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):451 -> a
    83:83:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    83:83:boolean verifyAllNestInSamePackage(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):529 -> a
    83:83:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):451 -> a
    84:89:boolean verifyAllNestInSamePackage(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):530:535 -> a
    84:89:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):451 -> a
    90:90:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    90:90:boolean verifyAllNestInSamePackage(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):535 -> a
    90:90:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):451 -> a
    91:93:boolean verifyAllNestInSamePackage(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):536:538 -> a
    91:93:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):451 -> a
    94:101:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):452:459 -> a
    102:102:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    102:102:boolean allNestMembersSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):505 -> a
    102:102:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):459 -> a
    103:110:boolean allNestMembersSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):507:514 -> a
    103:110:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):459 -> a
    111:111:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    111:111:boolean allNestMembersSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):514 -> a
    111:111:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):459 -> a
    112:116:boolean allNestMembersSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):516:520 -> a
    112:116:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):459 -> a
    117:154:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.AppView):463:500 -> a
    1:5:boolean equals(java.lang.Object):346:350 -> equals
    1:4:int hashCode():338:341 -> hashCode
    5:5:int com.android.tools.r8.graph.DexType.computeHashCode():51:51 -> hashCode
    5:5:int hashCode():341 -> hashCode
com.android.tools.r8.ir.optimize.Inliner$InlineAction -> com.android.tools.r8.ir.optimize.w$c:
    com.android.tools.r8.graph.DexEncodedMethod target -> a
    com.android.tools.r8.ir.optimize.Inliner$Reason reason -> b
    boolean shouldSynthesizeNullCheckForReceiver -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():564:564 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.optimize.Inliner$Reason):572:575 -> <init>
    1:1:void setShouldSynthesizeNullCheckForReceiver():579:579 -> a
    2:16:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):589:603 -> a
    17:17:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    17:17:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):603 -> a
    18:42:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):604:628 -> a
    43:45:void com.android.tools.r8.ir.code.BasicBlock.replaceLastInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):98:100 -> a
    43:45:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):629 -> a
    46:63:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):630:647 -> a
    64:88:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):646:670 -> a
    89:94:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):669:674 -> a
    95:95:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    95:95:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):676 -> a
    96:96:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):676:676 -> a
    97:106:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):674:683 -> a
    107:107:java.lang.Object com.android.tools.r8.utils.ListUtils.first(java.util.List):16:16 -> a
    107:107:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):685 -> a
    108:108:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):685:685 -> a
    109:109:com.android.tools.r8.ir.code.Phi com.android.tools.r8.ir.code.IRCode.createPhi(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1073:1073 -> a
    109:109:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):687 -> a
    110:111:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):688:689 -> a
    112:112:void com.android.tools.r8.ir.code.Phi.addOperands(java.util.List):136:136 -> a
    112:112:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):691 -> a
    113:142:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):695:724 -> a
    143:143:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):723:723 -> a
    144:144:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    144:144:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):722 -> a
    145:178:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason buildInliningIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.conversion.LensCodeRewriter):725:758 -> a
    179:179:com.android.tools.r8.ir.code.Value lambda$buildInliningIR$0(com.android.tools.r8.ir.code.BasicBlock):690:690 -> a
com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason -> com.android.tools.r8.ir.optimize.x:
    com.android.tools.r8.ir.optimize.Inliner$Reason reason -> a
    com.android.tools.r8.ir.code.IRCode code -> b
    1:3:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.Inliner$Reason):767:769 -> <init>
com.android.tools.r8.ir.optimize.Inliner$InliningInfo -> com.android.tools.r8.ir.optimize.y:
    com.android.tools.r8.graph.DexEncodedMethod target -> a
    com.android.tools.r8.graph.DexType receiverType -> b
    1:3:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):813:815 -> <init>
com.android.tools.r8.ir.optimize.Inliner$Reason -> com.android.tools.r8.ir.optimize.w$d:
    com.android.tools.r8.ir.optimize.Inliner$Reason SIMPLE -> e
    com.android.tools.r8.ir.optimize.Inliner$Reason NEVER -> f
    com.android.tools.r8.ir.optimize.Inliner$Reason SINGLE_CALLER -> c
    com.android.tools.r8.ir.optimize.Inliner$Reason DUAL_CALLER -> d
    com.android.tools.r8.ir.optimize.Inliner$Reason FORCE -> a
    com.android.tools.r8.ir.optimize.Inliner$Reason ALWAYS -> b
    1:6:void <clinit>():551:556 -> <clinit>
    1:1:void <init>(java.lang.String,int):550:550 -> <init>
    1:1:boolean mustBeInlined():560:560 -> a
com.android.tools.r8.ir.optimize.InliningConstraints -> com.android.tools.r8.ir.optimize.z:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.GraphLense graphLense -> c
    boolean allowStaticInterfaceMethodCalls -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense):46:46 -> <init>
    2:20:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense):32:50 -> <init>
    1:1:void disallowStaticInterfaceMethodCalls():62:62 -> a
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forCheckCast(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):99:99 -> a
    3:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstanceGet(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):131:133 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstanceGet(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):132:132 -> a
    7:23:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):147:163 -> a
    24:24:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokePolymorphic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):232:232 -> a
    24:24:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):161 -> a
    25:25:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeCustom():169:169 -> a
    25:25:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):159 -> a
    26:27:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):253:254 -> a
    26:27:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):157 -> a
    28:28:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeSuper(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):249:249 -> a
    28:28:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):155 -> a
    29:29:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):153:153 -> a
    30:31:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):216:217 -> a
    30:31:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):151 -> a
    32:32:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):149:149 -> a
    33:53:com.android.tools.r8.graph.DexEncodedMethod lookupWhileVerticalClassMerging(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,java.util.function.BiFunction):176:196 -> a
    54:54:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):204:204 -> a
    55:55:boolean isVerticalClassMerging():66:66 -> a
    55:55:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):206 -> a
    56:61:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):207:212 -> a
    62:62:com.android.tools.r8.graph.DexEncodedMethod lambda$forInvokeDirect$0(com.android.tools.r8.graph.ResolutionResult$SingleResolutionResult,com.android.tools.r8.graph.DexProgramClass):210:210 -> a
    63:63:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeSuper(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):249:249 -> a
    64:65:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forFieldInstruction(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexType):343:344 -> a
    66:66:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    66:66:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forFieldInstruction(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexType):344 -> a
    67:80:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forFieldInstruction(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexType):346:359 -> a
    81:94:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forFieldInstruction(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexType):357:370 -> a
    95:100:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forSingleTargetInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):375:380 -> a
    101:101:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    101:101:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forSingleTargetInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):380 -> a
    102:118:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forSingleTargetInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):382:398 -> a
    119:138:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):405:424 -> a
    139:139:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    139:139:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):424 -> a
    140:161:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):425:446 -> a
    162:162:java.util.Set com.android.tools.r8.graph.ResolutionResult.lookupVirtualDispatchTargets(boolean,com.android.tools.r8.graph.AppInfoWithSubtyping):80:80 -> a
    162:162:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):446 -> a
    163:165:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):447:449 -> a
    166:166:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    166:166:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):449 -> a
    167:172:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,boolean):449:454 -> a
    1:1:com.android.tools.r8.graph.AppView getAppView():54:54 -> b
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forConstClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):103:103 -> b
    3:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstancePut(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):141:143 -> b
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstancePut(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):142:142 -> b
    7:8:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):216:217 -> b
    9:9:com.android.tools.r8.graph.DexEncodedMethod lambda$forInvokeStatic$1(com.android.tools.r8.graph.ResolutionResult$SingleResolutionResult,com.android.tools.r8.graph.DexProgramClass):242:242 -> b
    1:1:com.android.tools.r8.graph.GraphLense getGraphLense():58:58 -> c
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstanceOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):137:137 -> c
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):236:236 -> c
    4:4:boolean isVerticalClassMerging():66:66 -> c
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):238 -> c
    5:10:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):239:244 -> c
    11:13:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStaticGet(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):305:307 -> c
    14:14:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStaticGet(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):306:306 -> c
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeMultiNewArray(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):224:224 -> d
    2:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):253:254 -> d
    4:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStaticPut(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):311:313 -> d
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStaticPut(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):312:312 -> d
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeNewArray(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):228:228 -> e
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forNewArrayEmpty(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):281:281 -> f
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forNewInstance(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):289:289 -> g
com.android.tools.r8.ir.optimize.InliningOracle -> com.android.tools.r8.ir.optimize.A:
    com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
    boolean isForcedInliningOracle() -> a
    com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType) -> a
    boolean passesInliningConstraints(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
com.android.tools.r8.ir.optimize.InliningStrategy -> com.android.tools.r8.ir.optimize.B:
    boolean allowInliningOfInvokeInInlinee(com.android.tools.r8.ir.optimize.Inliner$InlineAction,int,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
    boolean canInlineInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
    void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback) -> a
    com.android.tools.r8.graph.DexType getReceiverTypeIfKnown(com.android.tools.r8.ir.code.InvokeMethod) -> a
    void markInlined(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason) -> a
    boolean stillHasBudget(com.android.tools.r8.ir.optimize.Inliner$InlineAction,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
    boolean willExceedBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter) -> a
com.android.tools.r8.ir.optimize.InstructionEquivalence -> com.android.tools.r8.ir.optimize.C:
    com.android.tools.r8.ir.regalloc.RegisterAllocator allocator -> a
    1:2:void <init>(com.android.tools.r8.ir.regalloc.RegisterAllocator):14:15 -> <init>
    1:2:boolean doEquivalent(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):20:21 -> a
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):11:11 -> doEquivalent
    1:1:int doHash(java.lang.Object):11:11 -> doHash
    2:11:int doHash(com.android.tools.r8.ir.code.Instruction):27:36 -> doHash
    2:11:int doHash(java.lang.Object):11 -> doHash
com.android.tools.r8.ir.optimize.MemberPoolCollection -> com.android.tools.r8.ir.optimize.D:
    java.util.Map memberPools -> c
    com.android.tools.r8.graph.AppView appView -> b
    com.android.tools.r8.com.google.common.base.Equivalence equivalence -> a
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():31:31 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.com.google.common.base.Equivalence):38:38 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.com.google.common.base.Equivalence):35:40 -> <init>
    java.lang.Runnable computeMemberPoolForClass(com.android.tools.r8.graph.DexClass) -> a
    1:13:void buildAll(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):44:56 -> a
    14:18:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):62:66 -> a
    19:19:void submitAll(java.lang.Iterable,java.util.List,java.util.concurrent.ExecutorService):98:98 -> a
    19:19:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):65 -> a
    20:20:void submit(com.android.tools.r8.graph.DexClass,java.util.List,java.util.concurrent.ExecutorService):104:104 -> a
    20:20:void submitAll(java.lang.Iterable,java.util.List,java.util.concurrent.ExecutorService):99 -> a
    20:20:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):65 -> a
    21:21:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):67:67 -> a
    22:22:void submitAll(java.lang.Iterable,java.util.List,java.util.concurrent.ExecutorService):98:98 -> a
    22:22:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):67 -> a
    23:23:void submit(com.android.tools.r8.graph.DexClass,java.util.List,java.util.concurrent.ExecutorService):104:104 -> a
    23:23:void submitAll(java.lang.Iterable,java.util.List,java.util.concurrent.ExecutorService):99 -> a
    23:23:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):67 -> a
    24:28:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):68:72 -> a
    29:29:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):70:70 -> a
    30:35:boolean markIfNotSeen(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Descriptor):85:90 -> a
    36:36:void submit(com.android.tools.r8.graph.DexClass,java.util.List,java.util.concurrent.ExecutorService):104:104 -> a
    36:36:void lambda$buildAll$0(java.util.List,java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexClass):53 -> a
    37:59:java.util.Set getAllSubTypesExclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):135:157 -> a
    60:60:void lambda$getAllSubTypesExclusive$1(java.util.Deque,com.android.tools.r8.graph.DexType):140:140 -> a
    61:61:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    61:61:void lambda$getAllSubTypesExclusive$1(java.util.Deque,com.android.tools.r8.graph.DexType):140 -> a
    62:62:void addNonNull(java.util.Collection,java.lang.Object):236:236 -> a
    62:62:void lambda$getAllSubTypesExclusive$1(java.util.Deque,com.android.tools.r8.graph.DexType):140 -> a
    1:1:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool get(com.android.tools.r8.graph.DexClass):80:80 -> b
    2:2:boolean hasPool(com.android.tools.r8.graph.DexClass):76:76 -> b
    2:2:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool get(com.android.tools.r8.graph.DexClass):80 -> b
    3:4:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool get(com.android.tools.r8.graph.DexClass):80:81 -> b
    5:15:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):112:122 -> b
    16:16:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    16:16:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):122 -> b
    17:17:void addNonNull(java.util.Collection,java.lang.Object):236:236 -> b
    17:17:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):122 -> b
    18:19:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):124:125 -> b
    20:20:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    20:20:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):125 -> b
    21:21:void addNonNull(java.util.Collection,java.lang.Object):236:236 -> b
    21:21:java.util.Set getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):125 -> b
    22:22:void lambda$getAllSubTypesExclusive$2(java.util.Deque,com.android.tools.r8.graph.DexType):144:144 -> b
    23:23:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    23:23:void lambda$getAllSubTypesExclusive$2(java.util.Deque,com.android.tools.r8.graph.DexType):144 -> b
    24:24:void addNonNull(java.util.Collection,java.lang.Object):236:236 -> b
    24:24:void lambda$getAllSubTypesExclusive$2(java.util.Deque,com.android.tools.r8.graph.DexType):144 -> b
    1:1:void lambda$getAllSubTypesExclusive$3(java.util.Deque,com.android.tools.r8.graph.DexType):154:154 -> c
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> c
    2:2:void lambda$getAllSubTypesExclusive$3(java.util.Deque,com.android.tools.r8.graph.DexType):154 -> c
    3:3:void addNonNull(java.util.Collection,java.lang.Object):236:236 -> c
    3:3:void lambda$getAllSubTypesExclusive$3(java.util.Deque,com.android.tools.r8.graph.DexType):154 -> c
    1:1:void lambda$getAllSubTypesExclusive$4(java.util.Deque,com.android.tools.r8.graph.DexType):158:158 -> d
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> d
    2:2:void lambda$getAllSubTypesExclusive$4(java.util.Deque,com.android.tools.r8.graph.DexType):158 -> d
    3:3:void addNonNull(java.util.Collection,java.lang.Object):236:236 -> d
    3:3:void lambda$getAllSubTypesExclusive$4(java.util.Deque,com.android.tools.r8.graph.DexType):158 -> d
com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool -> com.android.tools.r8.ir.optimize.D$a:
    java.util.Set interfaces -> c
    java.util.Set subTypes -> d
    java.util.Set memberPool -> e
    com.android.tools.r8.com.google.common.base.Equivalence equivalence -> a
    com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool superType -> b
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():164:164 -> <clinit>
    1:1:void <init>(com.android.tools.r8.com.google.common.base.Equivalence):172:172 -> <init>
    2:7:void <init>(com.android.tools.r8.com.google.common.base.Equivalence):168:173 -> <init>
    1:2:void linkInterface(com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):187:188 -> a
    3:3:void seen(java.lang.Object):192:192 -> a
    4:4:boolean hasSeen(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):201:201 -> a
    5:5:boolean hasSeenStrictlyBelow(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):221:221 -> a
    5:5:boolean hasSeen(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):201 -> a
    6:6:boolean hasSeenDirectly(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):205:205 -> a
    6:6:boolean hasSeenAbove(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,boolean):213 -> a
    7:8:boolean hasSeenAbove(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,boolean):216:217 -> a
    9:9:boolean lambda$hasSeenAbove$0(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):217:217 -> a
    1:2:void linkSubtype(com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):182:183 -> b
    3:3:boolean hasSeenDirectly(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):205:205 -> b
    3:3:boolean hasSeenBelow(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,boolean):226 -> b
    4:8:boolean hasSeenBelow(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,boolean):226:230 -> b
    9:9:boolean hasSeenDirectly(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):205:205 -> b
    10:10:boolean lambda$hasSeenBelow$1(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):227:227 -> b
    1:2:void linkSupertype(com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):177:178 -> c
    3:3:boolean hasSeenStrictlyAbove(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):209:209 -> c
    4:4:boolean lambda$hasSeenBelow$2(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):230:230 -> c
    1:1:boolean hasSeenStrictlyBelow(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):221:221 -> d
    1:2:void seen(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):196:197 -> e
com.android.tools.r8.ir.optimize.MemberValuePropagation -> com.android.tools.r8.ir.optimize.G:
    com.android.tools.r8.ir.optimize.info.OptimizationFeedback feedback -> d
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set warnedFields -> c
    boolean $assertionsDisabled -> e
    com.android.tools.r8.utils.Reporter reporter -> b
    1:3:void <clinit>():39:41 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):80:80 -> <init>
    2:37:void <init>(com.android.tools.r8.graph.AppView):47:82 -> <init>
    1:5:boolean mayPropagateValueFor(com.android.tools.r8.graph.DexEncodedField):86:90 -> a
    6:13:com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup lookupMemberRule(com.android.tools.r8.graph.DexDefinition):105:112 -> a
    14:14:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):187:187 -> a
    15:32:com.android.tools.r8.ir.code.Instruction constantReplacementFromProguardRule(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):119:136 -> a
    15:32:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):187 -> a
    33:42:com.android.tools.r8.ir.code.Instruction constantReplacementFromProguardRule(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):135:144 -> a
    33:42:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):187 -> a
    43:61:com.android.tools.r8.ir.code.Instruction constantReplacementFromProguardRule(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):141:159 -> a
    43:61:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):187 -> a
    62:73:com.android.tools.r8.ir.code.Instruction constantReplacementFromProguardRule(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):154:165 -> a
    62:73:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):187 -> a
    74:74:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):190:190 -> a
    75:77:void setValueRangeFromProguardRule(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.ir.code.Value):174:176 -> a
    75:77:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):190 -> a
    78:91:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):193:206 -> a
    92:99:void rewriteStaticGetWithConstantValues(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.StaticGet):303:310 -> a
    100:146:void rewriteStaticGetWithConstantValues(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.StaticGet):309:355 -> a
    147:147:java.lang.Boolean lambda$rewriteStaticGetWithConstantValues$0(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):310:310 -> a
    148:162:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):395:409 -> a
    163:212:void rewriteInvokeMethodWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):219:268 -> a
    163:212:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):408 -> a
    213:217:boolean mayPropagateValueFor(com.android.tools.r8.graph.DexEncodedMethod):94:98 -> a
    213:217:void rewriteInvokeMethodWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):272 -> a
    213:217:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):408 -> a
    218:234:void rewriteInvokeMethodWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):276:292 -> a
    218:234:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):408 -> a
    235:241:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):410:416 -> a
    242:250:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):411:419 -> a
    251:272:void rewriteInstanceGetWithConstantValues(com.android.tools.r8.ir.code.IRCode,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InstanceGet):364:385 -> a
    251:272:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):418 -> a
    273:274:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):423:424 -> a
    275:275:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    275:275:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):424 -> a
    276:278:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):424:426 -> a
com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup -> com.android.tools.r8.ir.optimize.E:
    com.android.tools.r8.shaking.ProguardMemberRule rule -> b
    com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType type -> a
    1:3:void <init>(com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType,com.android.tools.r8.shaking.ProguardMemberRule):60:62 -> <init>
    1:5:boolean equals(java.lang.Object):67:71 -> equals
    1:1:int hashCode():76:76 -> hashCode
com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType -> com.android.tools.r8.ir.optimize.F:
    com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType ASSUME_VALUES -> c
    com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType NONE -> a
    com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType ASSUME_NO_SIDE_EFFECTS -> b
    1:3:void <clinit>():50:52 -> <clinit>
    1:1:void <init>(java.lang.String,int):49:49 -> <init>
com.android.tools.r8.ir.optimize.MethodPoolCollection -> com.android.tools.r8.ir.optimize.H:
    java.util.function.Predicate methodTester -> e
    1:2:void <init>(com.android.tools.r8.graph.AppView):37:38 -> <init>
    3:4:void <init>(com.android.tools.r8.graph.AppView,java.util.function.Predicate):43:44 -> <init>
    1:1:boolean excludesPrivateInstanceMethod(com.android.tools.r8.graph.DexEncodedMethod):48:48 -> a
    2:2:java.lang.Runnable computeMemberPoolForClass(com.android.tools.r8.graph.DexClass):53:53 -> a
    3:4:void lambda$computeMemberPoolForClass$1(com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool,com.android.tools.r8.graph.DexEncodedMethod):58:59 -> a
    1:1:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool lambda$computeMemberPoolForClass$0(com.android.tools.r8.graph.DexClass):55:55 -> c
    1:1:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool lambda$computeMemberPoolForClass$2(com.android.tools.r8.graph.DexClass):66:66 -> d
    1:1:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool lambda$computeMemberPoolForClass$3(com.android.tools.r8.graph.DexClass):76:76 -> e
    1:10:void lambda$computeMemberPoolForClass$4(com.android.tools.r8.graph.DexClass):54:63 -> f
    11:11:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> f
    11:11:void lambda$computeMemberPoolForClass$4(com.android.tools.r8.graph.DexClass):63 -> f
    12:20:void lambda$computeMemberPoolForClass$4(com.android.tools.r8.graph.DexClass):65:73 -> f
    21:21:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> f
    21:21:void lambda$computeMemberPoolForClass$4(com.android.tools.r8.graph.DexClass):73 -> f
    22:25:void lambda$computeMemberPoolForClass$4(com.android.tools.r8.graph.DexClass):75:78 -> f
com.android.tools.r8.ir.optimize.MoveEliminator -> com.android.tools.r8.ir.optimize.I:
    com.android.tools.r8.ir.regalloc.RegisterAllocator allocator -> b
    java.util.Set activeMoves -> a
    1:1:void <init>(com.android.tools.r8.ir.regalloc.RegisterAllocator):17:17 -> <init>
    2:6:void <init>(com.android.tools.r8.ir.regalloc.RegisterAllocator):14:18 -> <init>
    1:12:boolean shouldBeEliminated(com.android.tools.r8.ir.code.Instruction):22:33 -> a
    13:51:boolean shouldBeEliminated(com.android.tools.r8.ir.code.Instruction):32:70 -> a
    52:56:boolean lambda$shouldBeEliminated$0(com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.code.Move):55:59 -> a
com.android.tools.r8.ir.optimize.NestReducer -> com.android.tools.r8.ir.optimize.J:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():29:29 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.AppView):33:34 -> <init>
    1:2:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):38:39 -> a
    3:3:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    3:3:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):39 -> a
    4:15:void run(java.util.concurrent.ExecutorService):43:54 -> a
    16:24:void run(java.util.concurrent.ExecutorService):53:61 -> a
    25:25:void processNestFrom(com.android.tools.r8.graph.DexClass):65:65 -> a
    25:25:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
    26:27:void reportMissingNestHost(com.android.tools.r8.graph.DexClass):93:94 -> a
    26:27:void processNestFrom(com.android.tools.r8.graph.DexClass):67 -> a
    26:27:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
    28:28:void processNestFrom(com.android.tools.r8.graph.DexClass):68:68 -> a
    28:28:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
    29:29:void reportMissingNestHost(com.android.tools.r8.graph.DexClass):96:96 -> a
    29:29:void processNestFrom(com.android.tools.r8.graph.DexClass):67 -> a
    29:29:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
    30:35:void processNestFrom(com.android.tools.r8.graph.DexClass):71:76 -> a
    30:35:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
    36:44:void reportIncompleteNest(com.android.tools.r8.graph.DexClass):101:109 -> a
    36:44:void processNestFrom(com.android.tools.r8.graph.DexClass):80 -> a
    36:44:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
    45:50:void processNestFrom(com.android.tools.r8.graph.DexClass):82:87 -> a
    45:50:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
    51:54:void clearNestAttributes(com.android.tools.r8.graph.DexClass):114:117 -> a
    51:54:void processNestFrom(com.android.tools.r8.graph.DexClass):88 -> a
    51:54:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
    55:55:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    55:55:void clearNestAttributes(com.android.tools.r8.graph.DexClass):117 -> a
    55:55:void processNestFrom(com.android.tools.r8.graph.DexClass):88 -> a
    55:55:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
    56:56:void clearNestAttributes(com.android.tools.r8.graph.DexClass):118:118 -> a
    56:56:void processNestFrom(com.android.tools.r8.graph.DexClass):88 -> a
    56:56:java.lang.Object lambda$run$0(com.android.tools.r8.graph.DexProgramClass):56 -> a
    57:63:boolean hasPrivateMembers(com.android.tools.r8.graph.DexClass):123:129 -> a
com.android.tools.r8.ir.optimize.NestUtils -> com.android.tools.r8.ir.optimize.K:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():21:21 -> <clinit>
    1:14:boolean sameNest(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinitionSupplier):27:40 -> a
    15:15:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    15:15:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):46 -> a
    16:16:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    16:16:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):47 -> a
    17:23:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):48:54 -> a
    24:24:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    24:24:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):55 -> a
    25:31:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):56:62 -> a
    32:32:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    32:32:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):61 -> a
    33:34:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):64:65 -> a
    35:35:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    35:35:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):64 -> a
    36:39:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):68:71 -> a
    40:40:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    40:40:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):72 -> a
    41:47:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):73:79 -> a
    48:48:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    48:48:void rewriteNestCallsForInlining(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):77 -> a
com.android.tools.r8.ir.optimize.NonNullTracker -> com.android.tools.r8.ir.optimize.L:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
    com.android.tools.r8.graph.AppView appView -> a
    java.util.function.Consumer splitBlockConsumer -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():44:44 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):51:51 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView,java.util.function.Consumer):54:57 -> <init>
    boolean lambda$addNonNullForValues$0(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> a
    1:86:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):63:148 -> a
    87:161:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):147:221 -> a
    162:182:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):219:239 -> a
    183:183:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    183:183:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):239 -> a
    184:184:void insertAssumeInstructionsInBlocks(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):239:239 -> a
    185:245:void addNonNullForValues(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,java.util.Set,java.util.Set):264:324 -> a
    246:264:void addNonNullForValues(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,java.util.Set,java.util.Set):322:340 -> a
    265:270:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList findDominatedPredecessorIndexesInPhi(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Value,java.util.Set):348:353 -> a
    271:271:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> a
    271:271:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList findDominatedPredecessorIndexesInPhi(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Value,java.util.Set):353 -> a
    272:280:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList findDominatedPredecessorIndexesInPhi(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Value,java.util.Set):355:363 -> a
    281:284:boolean isNullableReferenceTypeWithUsers(com.android.tools.r8.ir.code.Value):372:375 -> a
com.android.tools.r8.ir.optimize.Outliner -> com.android.tools.r8.ir.optimize.Q:
    java.util.List candidateMethodLists -> a
    java.util.Map outlineSites -> c
    java.util.Map generatedOutlines -> d
    com.android.tools.r8.graph.AppView appView -> e
    java.util.function.Consumer outlineMethodIdentifierGenerator -> g
    boolean $assertionsDisabled -> h
    java.util.Set methodsSelectedForOutlining -> b
    com.android.tools.r8.ir.optimize.InliningConstraints inliningConstraints -> f
    1:1:void <clinit>():105:105 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):1268:1268 -> <init>
    2:1164:void <init>(com.android.tools.r8.graph.AppView):108:1270 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.ir.optimize.Outliner):105:105 -> a
    2:4:void lambda$createOutlineMethodIdentifierGenerator$0(java.util.Map,com.android.tools.r8.ir.code.IRCode):1283:1285 -> a
    5:10:java.util.List selectOutlines():1386:1391 -> a
    5:10:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1327 -> a
    11:19:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1328:1336 -> a
    20:20:com.android.tools.r8.graph.DexMethod com.android.tools.r8.ir.optimize.Outliner$Outline.buildMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):580:580 -> a
    20:20:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1337 -> a
    21:28:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1338:1345 -> a
    29:29:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    29:29:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1345 -> a
    30:33:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1345:1348 -> a
    34:34:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    34:34:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1348 -> a
    35:67:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1349:1381 -> a
    68:74:void applyOutliningCandidate(com.android.tools.r8.ir.code.IRCode):1398:1404 -> a
    75:76:boolean checkAllOutlineSitesFoundAgain():1409:1410 -> a
    1:1:com.android.tools.r8.ir.optimize.InliningConstraints access$100(com.android.tools.r8.ir.optimize.Outliner):105:105 -> b
    2:5:void createOutlineMethodIdentifierGenerator():1278:1281 -> b
    6:8:void identifyOutlineSites(com.android.tools.r8.ir.code.IRCode):1298:1300 -> b
    1:1:java.util.List access$200(com.android.tools.r8.ir.optimize.Outliner):105:105 -> c
    2:2:java.util.Set getMethodsSelectedForOutlining():1320:1320 -> c
    1:1:java.util.Map access$300(com.android.tools.r8.ir.optimize.Outliner):105:105 -> d
    2:3:java.util.function.Consumer getOutlineMethodIdentifierGenerator():1293:1294 -> d
    1:1:java.util.Map access$400(com.android.tools.r8.ir.optimize.Outliner):105:105 -> e
    2:8:boolean selectMethodsForOutlining():1305:1311 -> e
    9:15:boolean selectMethodsForOutlining():1310:1316 -> e
com.android.tools.r8.ir.optimize.Outliner$BinOpOutlineInstruction -> com.android.tools.r8.ir.optimize.M:
    com.android.tools.r8.ir.code.NumericType numericType -> c
    1:2:void <init>(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType,com.android.tools.r8.ir.code.NumericType):208:209 -> <init>
    java.lang.String getDetailsString() -> a
    1:1:com.android.tools.r8.ir.optimize.Outliner$BinOpOutlineInstruction fromInstruction(com.android.tools.r8.ir.code.Binop):213:213 -> a
    2:21:com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType.fromInstruction(com.android.tools.r8.ir.code.Instruction):136:155 -> a
    2:21:com.android.tools.r8.ir.optimize.Outliner$BinOpOutlineInstruction fromInstruction(com.android.tools.r8.ir.code.Binop):214 -> a
    22:22:com.android.tools.r8.ir.optimize.Outliner$BinOpOutlineInstruction fromInstruction(com.android.tools.r8.ir.code.Binop):215:215 -> a
    23:23:com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType.fromInstruction(com.android.tools.r8.ir.code.Instruction):157:157 -> a
    23:23:com.android.tools.r8.ir.optimize.Outliner$BinOpOutlineInstruction fromInstruction(com.android.tools.r8.ir.code.Binop):214 -> a
    24:24:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):234:234 -> a
    25:25:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):184:184 -> a
    25:25:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):235 -> a
    26:31:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):237:242 -> a
    32:36:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):267:271 -> a
    37:37:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():567:567 -> a
    37:37:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):273 -> a
    38:39:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):275:276 -> a
    40:43:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):275:278 -> a
    44:44:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():567:567 -> a
    44:44:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):280 -> a
    45:64:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):280:299 -> a
    65:65:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):296:296 -> a
    66:66:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):293:293 -> a
    67:67:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):290:290 -> a
    68:68:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):287:287 -> a
    69:86:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):284:301 -> a
    1:1:java.lang.String getInstructionName():252:252 -> b
    boolean hasOutValue() -> c
    int numberOfInputs() -> d
    1:5:boolean equals(java.lang.Object):225:229 -> equals
    1:1:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.hashCode():180:180 -> hashCode
    1:1:int hashCode():220 -> hashCode
    2:2:int hashCode():220:220 -> hashCode
com.android.tools.r8.ir.optimize.Outliner$InvokeOutlineInstruction -> com.android.tools.r8.ir.optimize.N:
    com.android.tools.r8.ir.code.Invoke$Type invokeType -> d
    com.android.tools.r8.graph.DexProto proto -> f
    boolean hasOutValue -> e
    boolean hasReceiver -> g
    boolean $assertionsDisabled -> h
    com.android.tools.r8.graph.DexMethod method -> c
    1:1:void <clinit>():370:370 -> <clinit>
    1:7:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,boolean,com.android.tools.r8.ir.code.ValueType[],com.android.tools.r8.graph.DexProto):383:389 -> <init>
    1:11:com.android.tools.r8.ir.optimize.Outliner$InvokeOutlineInstruction fromInstruction(com.android.tools.r8.ir.code.InvokeMethod):393:403 -> a
    12:12:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):429:429 -> a
    13:13:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):184:184 -> a
    13:13:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):430 -> a
    14:33:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):432:451 -> a
    34:34:java.lang.String getDetailsString():457:457 -> a
    35:37:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):486:488 -> a
    38:38:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():567:567 -> a
    38:38:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):490 -> a
    39:44:com.android.tools.r8.ir.code.ValueTypeConstraint getArgumentConstraint(int):476:481 -> a
    39:44:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):492 -> a
    45:50:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):492:497 -> a
    51:51:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():567:567 -> a
    51:51:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):499 -> a
    52:55:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):499:502 -> a
    56:56:com.android.tools.r8.ir.code.Invoke com.android.tools.r8.ir.code.Invoke.create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):66:66 -> a
    56:56:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):502 -> a
    57:57:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):503:503 -> a
    1:1:java.lang.String getInstructionName():462:462 -> b
    1:1:boolean hasOutValue():467:467 -> c
    1:1:int numberOfInputs():472:472 -> d
    1:8:boolean equals(java.lang.Object):417:424 -> equals
    1:1:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.hashCode():180:180 -> hashCode
    1:1:int hashCode():408 -> hashCode
    2:6:int hashCode():408:412 -> hashCode
com.android.tools.r8.ir.optimize.Outliner$NewInstanceOutlineInstruction -> com.android.tools.r8.ir.optimize.O:
    com.android.tools.r8.graph.DexType clazz -> c
    1:2:void <init>(com.android.tools.r8.graph.DexType):310:311 -> <init>
    1:1:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):331:331 -> a
    2:2:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):184:184 -> a
    2:2:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):332 -> a
    3:4:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):334:335 -> a
    5:5:java.lang.String getDetailsString():340:340 -> a
    6:7:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):360:361 -> a
    8:8:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():567:567 -> a
    8:8:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):363 -> a
    9:11:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):363:365 -> a
    1:1:java.lang.String getInstructionName():345:345 -> b
    boolean hasOutValue() -> c
    int numberOfInputs() -> d
    1:5:boolean equals(java.lang.Object):316:320 -> equals
    1:1:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.hashCode():180:180 -> hashCode
    1:1:int hashCode():326 -> hashCode
    2:2:int hashCode():326:326 -> hashCode
com.android.tools.r8.ir.optimize.Outliner$Outline -> com.android.tools.r8.ir.optimize.P:
    java.util.List argumentMap -> b
    java.util.List argumentTypes -> a
    com.android.tools.r8.graph.DexProto proto -> e
    com.android.tools.r8.ir.optimize.Outliner this$0 -> f
    java.util.List templateInstructions -> c
    com.android.tools.r8.graph.DexType returnType -> d
    boolean $assertionsDisabled -> g
    1:1:void <clinit>():530:530 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.Outliner,java.util.List,java.util.List,java.util.List,com.android.tools.r8.graph.DexType,int,int):547:547 -> <init>
    2:29:void <init>(com.android.tools.r8.ir.optimize.Outliner,java.util.List,java.util.List,java.util.List,com.android.tools.r8.graph.DexType,int,int):534:561 -> <init>
    30:30:void <init>(com.android.tools.r8.ir.optimize.Outliner,java.util.List,java.util.List,java.util.List,com.android.tools.r8.graph.DexType,int,int):555:555 -> <init>
    1:5:com.android.tools.r8.graph.DexProto buildProto():571:575 -> a
    1:1:int compareTo(java.lang.Object):530:530 -> compareTo
    2:7:int compareTo(com.android.tools.r8.ir.optimize.Outliner$Outline):628:633 -> compareTo
    2:7:int compareTo(java.lang.Object):530 -> compareTo
    8:8:int argumentCount():567:567 -> compareTo
    8:8:int compareTo(com.android.tools.r8.ir.optimize.Outliner$Outline):633 -> compareTo
    8:8:int compareTo(java.lang.Object):530 -> compareTo
    9:40:int compareTo(com.android.tools.r8.ir.optimize.Outliner$Outline):633:664 -> compareTo
    9:40:int compareTo(java.lang.Object):530 -> compareTo
    1:18:boolean equals(java.lang.Object):585:602 -> equals
    1:6:int hashCode():610:615 -> hashCode
    1:37:java.lang.String toString():671:707 -> toString
com.android.tools.r8.ir.optimize.Outliner$OutlineCode -> com.android.tools.r8.ir.optimize.Q$a:
    com.android.tools.r8.ir.optimize.Outliner this$0 -> b
    com.android.tools.r8.ir.optimize.Outliner$Outline outline -> a
    1:2:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.ir.optimize.Outliner$Outline):1568:1569 -> <init>
    1:2:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):1595:1596 -> buildIR
    3:3:void com.android.tools.r8.ir.conversion.IRBuilder.<init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.SourceCode,com.android.tools.r8.origin.Origin):428:428 -> buildIR
    3:3:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):1596 -> buildIR
    4:4:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):1596:1596 -> buildIR
    1:1:boolean computeEquals(java.lang.Object):1616:1616 -> computeEquals
    1:1:int computeHashCode():1611:1611 -> computeHashCode
    1:1:void registerCodeReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry):1606:1606 -> registerCodeReferences
    1:1:java.lang.String toString():1601:1601 -> toString
com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction -> com.android.tools.r8.ir.optimize.T:
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType type -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():121:121 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType):163:164 -> <init>
    int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction) -> a
    int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int) -> a
    java.lang.String getDetailsString() -> a
    1:8:com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction fromInstruction(com.android.tools.r8.ir.code.Instruction):168:175 -> a
    java.lang.String getInstructionName() -> b
    boolean hasOutValue() -> c
    int numberOfInputs() -> d
com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType -> com.android.tools.r8.ir.optimize.S:
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType[] $VALUES -> h
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType ADD -> a
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType SUB -> b
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType MUL -> c
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType DIV -> d
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType REM -> e
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType INVOKE -> f
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType NEW -> g
    1:7:void <clinit>():127:133 -> <clinit>
    8:8:void <clinit>():126:126 -> <clinit>
    1:1:void <init>(java.lang.String,int):126:126 -> <init>
com.android.tools.r8.ir.optimize.Outliner$OutlineMethodIdentifier -> com.android.tools.r8.ir.optimize.U:
    java.util.Map candidateMap -> q
    com.android.tools.r8.ir.optimize.Outliner this$0 -> r
    1:3:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock,java.util.Map):1141:1143 -> <init>
    1:3:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1148:1150 -> a
    4:5:java.util.List addOutlineMethodList(com.android.tools.r8.ir.optimize.Outliner$Outline):1154:1155 -> a
com.android.tools.r8.ir.optimize.Outliner$OutlineRewriter -> com.android.tools.r8.ir.optimize.V:
    java.util.ListIterator blocksIterator -> r
    java.util.List toRemove -> s
    com.android.tools.r8.ir.code.IRCode code -> q
    boolean $assertionsDisabled -> v
    com.android.tools.r8.ir.optimize.Outliner this$0 -> u
    int argumentsMapIndex -> t
    1:1:void <clinit>():1175:1175 -> <clinit>
    1:5:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,java.util.List):1186:1190 -> <init>
    1:3:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1195:1197 -> a
    4:6:boolean removeMethodFromOutlineList(com.android.tools.r8.ir.optimize.Outliner$Outline):1261:1263 -> a
    4:6:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1197 -> a
    7:63:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1198:1254 -> a
com.android.tools.r8.ir.optimize.Outliner$OutlineSiteIdentifier -> com.android.tools.r8.ir.optimize.W:
    com.android.tools.r8.ir.optimize.Outliner this$0 -> q
    1:2:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):1162:1163 -> <init>
    1:3:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1168:1170 -> a
    4:4:java.util.List lambda$handle$0(com.android.tools.r8.ir.optimize.Outliner$Outline):1169:1169 -> a
com.android.tools.r8.ir.optimize.Outliner$OutlineSourceCode -> com.android.tools.r8.ir.optimize.X:
    com.android.tools.r8.ir.optimize.Outliner this$0 -> d
    com.android.tools.r8.ir.code.Position position -> b
    com.android.tools.r8.ir.optimize.Outliner$Outline outline -> a
    int argumentMapIndex -> c
    1:1:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.ir.optimize.Outliner$Outline,com.android.tools.r8.graph.DexMethod):1421:1421 -> <init>
    2:6:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.ir.optimize.Outliner$Outline,com.android.tools.r8.graph.DexMethod):1419:1423 -> <init>
    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,int) -> a
    boolean verifyLocalInScope(com.android.tools.r8.graph.DebugLocalInfo) -> a
    1:1:int instructionCount():1428:1428 -> a
    2:2:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):1459:1459 -> a
    3:12:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):1473:1482 -> a
    13:13:void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean):1488:1488 -> a
    14:18:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):1499:1503 -> a
    19:19:int com.android.tools.r8.ir.optimize.Outliner$Outline.argumentCount():567:567 -> a
    19:19:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):1503 -> a
    20:29:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):1503:1512 -> a
    30:30:void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder):1518:1518 -> a
    31:31:void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder):1524:1524 -> a
    32:32:int getMoveExceptionRegister(int):1534:1534 -> a
    void buildPostlude(com.android.tools.r8.ir.conversion.IRBuilder) -> b
    int instructionOffset(int) -> b
    void setUp() -> b
    com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder) -> c
    com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int) -> c
    boolean verifyCurrentInstructionCanThrow() -> c
    1:1:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):1539:1539 -> d
    2:2:com.android.tools.r8.ir.code.Position getCurrentPosition():1544:1544 -> d
    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int) -> e
    boolean verifyRegister(int) -> f
    int instructionIndex(int) -> g
com.android.tools.r8.ir.optimize.Outliner$OutlineSpotter -> com.android.tools.r8.ir.optimize.Y:
    int pendingNewInstanceIndex -> n
    com.android.tools.r8.graph.DexType returnType -> k
    boolean $assertionsDisabled -> p
    int returnValueUsersLeft -> m
    com.android.tools.r8.graph.DexEncodedMethod method -> a
    int argumentRegisters -> j
    int actualInstructions -> f
    int start -> d
    int index -> e
    com.android.tools.r8.ir.code.Value returnValue -> l
    java.util.List instructionArrayCache -> c
    java.util.List argumentsMap -> i
    java.util.List argumentTypes -> h
    java.util.List arguments -> g
    com.android.tools.r8.ir.code.BasicBlock block -> b
    com.android.tools.r8.ir.optimize.Outliner this$0 -> o
    1:1:void <clinit>():715:715 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):734:734 -> <init>
    2:19:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):720:737 -> <init>
    void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline) -> a
    1:4:java.util.List getInstructionArray():741:744 -> a
    5:10:java.util.List orderedInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):766:771 -> a
    11:23:com.android.tools.r8.graph.DexType argumentTypeFromInvoke(com.android.tools.r8.ir.code.InvokeMethod,int):917:929 -> a
    24:30:boolean supportedArgumentType(com.android.tools.r8.ir.code.Value):934:940 -> a
    31:31:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    31:31:boolean supportedArgumentType(com.android.tools.r8.ir.code.Value):940 -> a
    32:38:boolean supportedArgumentType(com.android.tools.r8.ir.code.Value):944:950 -> a
    39:71:com.android.tools.r8.graph.DexType argumentTypeFromValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.InvokeMethod,int):956:988 -> a
    72:79:void updateReturnValueState(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):1070:1077 -> a
    80:109:void candidate(int,int,int):1084:1113 -> a
    110:120:void reset(int):1118:1128 -> a
    1:1:void invalidateInstructionArray():749:749 -> b
    1:5:void process():755:759 -> c
    6:16:void processInstruction(com.android.tools.r8.ir.code.Instruction):782:792 -> c
    6:16:void process():759 -> c
    17:103:boolean canIncludeInstruction(com.android.tools.r8.ir.code.Instruction):825:911 -> c
    17:103:void processInstruction(com.android.tools.r8.ir.code.Instruction):799 -> c
    17:103:void process():759 -> c
    104:104:void processInstruction(com.android.tools.r8.ir.code.Instruction):803:803 -> c
    104:104:void process():759 -> c
    105:133:void includeInstruction(com.android.tools.r8.ir.code.Instruction):996:1024 -> c
    105:133:void processInstruction(com.android.tools.r8.ir.code.Instruction):806 -> c
    105:133:void process():759 -> c
    134:161:void includeInstruction(com.android.tools.r8.ir.code.Instruction):1022:1049 -> c
    134:161:void processInstruction(com.android.tools.r8.ir.code.Instruction):806 -> c
    134:161:void process():759 -> c
    162:165:void includeInstruction(com.android.tools.r8.ir.code.Instruction):1048:1051 -> c
    162:165:void processInstruction(com.android.tools.r8.ir.code.Instruction):806 -> c
    162:165:void process():759 -> c
    166:193:void includeInstruction(com.android.tools.r8.ir.code.Instruction):1033:1060 -> c
    166:193:void processInstruction(com.android.tools.r8.ir.code.Instruction):806 -> c
    166:193:void process():759 -> c
    194:200:void includeInstruction(com.android.tools.r8.ir.code.Instruction):1058:1064 -> c
    194:200:void processInstruction(com.android.tools.r8.ir.code.Instruction):806 -> c
    194:200:void process():759 -> c
    201:201:void includeInstruction(com.android.tools.r8.ir.code.Instruction):1062:1062 -> c
    201:201:void processInstruction(com.android.tools.r8.ir.code.Instruction):806 -> c
    201:201:void process():759 -> c
    202:212:void processInstruction(com.android.tools.r8.ir.code.Instruction):808:818 -> c
    202:212:void process():759 -> c
com.android.tools.r8.ir.optimize.PeepholeOptimizer -> com.android.tools.r8.ir.optimize.Z:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():35:35 -> <clinit>
    1:1:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):40:40 -> a
    2:17:void removeRedundantInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):489:504 -> a
    2:17:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):41 -> a
    18:23:boolean constantSpilledAtDefinition(com.android.tools.r8.ir.code.ConstNumber):551:556 -> a
    18:23:void removeRedundantInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):504 -> a
    18:23:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):41 -> a
    24:52:void removeRedundantInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):507:535 -> a
    24:52:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):41 -> a
    53:59:void shareIdenticalBlockPrefix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):49:55 -> a
    53:59:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):42 -> a
    60:61:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):43:44 -> a
    62:198:void shareIdenticalBlockPrefixFromNormalSuccessors(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Set,com.android.tools.r8.ir.optimize.InstructionEquivalence):63:199 -> a
    199:201:boolean lambda$shareIdenticalBlockPrefixFromNormalSuccessors$0(com.android.tools.r8.ir.regalloc.RegisterAllocator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction,int,com.android.tools.r8.ir.code.Value):134:136 -> a
    202:231:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):235:264 -> a
    232:241:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):263:272 -> a
    242:257:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):271:286 -> a
    258:269:int sharedSuffixSize(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):409:420 -> a
    258:269:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):288 -> a
    270:279:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):288:297 -> a
    280:282:com.android.tools.r8.ir.code.BasicBlock createAndInsertBlockForSuffix(int,int,java.util.List,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):326:328 -> a
    280:282:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):299 -> a
    283:290:com.android.tools.r8.ir.code.BasicBlock createAndInsertBlockForSuffix(int,int,java.util.List,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):327:334 -> a
    283:290:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):299 -> a
    291:291:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
    291:291:com.android.tools.r8.ir.code.BasicBlock createAndInsertBlockForSuffix(int,int,java.util.List,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):334 -> a
    291:291:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):299 -> a
    292:314:com.android.tools.r8.ir.code.BasicBlock createAndInsertBlockForSuffix(int,int,java.util.List,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):335:357 -> a
    292:314:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):299 -> a
    315:315:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> a
    315:315:com.android.tools.r8.ir.code.BasicBlock createAndInsertBlockForSuffix(int,int,java.util.List,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):358 -> a
    315:315:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):299 -> a
    316:345:com.android.tools.r8.ir.code.BasicBlock createAndInsertBlockForSuffix(int,int,java.util.List,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):359:388 -> a
    316:345:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):299 -> a
    346:358:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):305:317 -> a
    359:359:java.util.List lambda$shareIdenticalBlockSuffix$1(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):264:264 -> a
    360:364:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap localsAtBlockExit(com.android.tools.r8.ir.code.BasicBlock):394:398 -> a
    365:365:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
    365:365:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap localsAtBlockExit(com.android.tools.r8.ir.code.BasicBlock):398 -> a
    366:368:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap localsAtBlockExit(com.android.tools.r8.ir.code.BasicBlock):399:401 -> a
    369:389:void removeIdenticalPredecessorBlocks(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):433:453 -> a
    390:390:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> a
    390:390:void removeIdenticalPredecessorBlocks(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):454 -> a
    391:391:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> a
    391:391:void removeIdenticalPredecessorBlocks(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):454 -> a
    392:392:void removeIdenticalPredecessorBlocks(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):454:454 -> a
    393:407:void removeIdenticalPredecessorBlocks(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):453:467 -> a
    408:408:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> a
    408:408:void removeIdenticalPredecessorBlocks(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):468 -> a
    409:412:void removeIdenticalPredecessorBlocks(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):468:471 -> a
    413:415:void removeWideConstantCovering(java.util.Map,int):544:546 -> a
    1:19:boolean mayShareIdenticalBlockPrefix(com.android.tools.r8.ir.code.BasicBlock):207:225 -> b
    20:20:boolean mayShareIdenticalBlockPrefix(com.android.tools.r8.ir.code.BasicBlock):224:224 -> b
    21:21:java.util.List lambda$shareIdenticalBlockSuffix$2(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):272:272 -> b
com.android.tools.r8.ir.optimize.PhiOptimizations -> com.android.tools.r8.ir.optimize.a0:
    1:1:void <init>():21:21 -> <init>
    1:1:boolean optimize(com.android.tools.r8.ir.code.IRCode):24:24 -> a
    1:6:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):112:117 -> b
    7:8:boolean predecessorsHaveNormalFlow(com.android.tools.r8.ir.code.BasicBlock):28:29 -> b
    7:8:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):138 -> b
    7:8:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> b
    9:13:boolean singleUseOfPhiAndOperands(com.android.tools.r8.ir.code.Phi):37:41 -> b
    9:13:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):138 -> b
    9:13:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> b
    14:15:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):141:142 -> b
    14:15:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> b
    16:30:int getRelativeStackHeightForInstruction(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):58:72 -> b
    16:30:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):145 -> b
    16:30:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> b
    31:38:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):148:155 -> b
    31:38:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> b
    39:50:int getStackHeightAtInstructionBackwards(com.android.tools.r8.ir.code.Instruction):88:99 -> b
    39:50:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):155 -> b
    39:50:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> b
    51:64:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):160:173 -> b
    51:64:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> b
com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination -> com.android.tools.r8.ir.optimize.d0:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.code.DominatorTree dominatorTree -> d
    boolean $assertionsDisabled -> j
    java.util.Set affectedValues -> e
    java.util.Map activeStaticFields -> i
    com.android.tools.r8.ir.code.IRCode code -> c
    com.android.tools.r8.graph.DexEncodedMethod method -> b
    java.util.Map activeInstanceFieldsAtEntry -> f
    java.util.Map activeStaticFieldsAtEntry -> g
    java.util.Map activeInstanceFields -> h
    1:1:void <clinit>():42:42 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):63:63 -> <init>
    2:19:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):50:67 -> <init>
    1:2:boolean shouldRun(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):71:72 -> a
    3:7:boolean couldBeVolatile(com.android.tools.r8.graph.DexField):101:105 -> a
    8:8:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):180:180 -> a
    8:8:boolean couldBeVolatile(com.android.tools.r8.graph.DexField):105 -> a
    9:12:boolean couldBeVolatile(com.android.tools.r8.graph.DexField):106:109 -> a
    13:13:boolean lambda$run$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):189:189 -> a
    14:15:void killAllActiveFields():257:258 -> a
    16:42:void killActiveFields(com.android.tools.r8.ir.code.FieldInstruction):262:288 -> a
    43:46:void eliminateRedundantRead(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.ir.code.FieldInstruction):309:312 -> a
    1:113:void run():113:225 -> b
    114:140:void run():200:226 -> b
    141:141:void run():183:183 -> b
    142:149:void propagateActiveFieldsFrom(com.android.tools.r8.ir.code.BasicBlock):238:245 -> b
    142:149:void run():229 -> b
    150:156:void killActiveFieldsForExceptionalExit(com.android.tools.r8.ir.code.FieldInstruction):297:303 -> b
    150:156:void propagateActiveFieldsFrom(com.android.tools.r8.ir.code.BasicBlock):245 -> b
    150:156:void run():229 -> b
    157:160:void propagateActiveFieldsFrom(com.android.tools.r8.ir.code.BasicBlock):248:251 -> b
    157:160:void run():229 -> b
    161:162:void run():231:232 -> b
    163:163:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> b
    163:163:void run():232 -> b
    164:166:void run():232:234 -> b
com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination$1 -> com.android.tools.r8.ir.optimize.b0:
com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination$FieldAndObject -> com.android.tools.r8.ir.optimize.c0:
    com.android.tools.r8.graph.DexField field -> a
    com.android.tools.r8.ir.code.Value object -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():75:75 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination$1):75:75 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Value):79:82 -> <init>
    1:1:com.android.tools.r8.graph.DexField access$100(com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination$FieldAndObject):75:75 -> a
    1:5:boolean equals(java.lang.Object):92:96 -> equals
    1:1:int hashCode():87:87 -> hashCode
com.android.tools.r8.ir.optimize.ReflectionOptimizer -> com.android.tools.r8.ir.optimize.e0:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():32:32 -> <clinit>
    1:19:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):38:56 -> a
    20:43:com.android.tools.r8.graph.DexType getTypeForGetClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InvokeVirtual):83:106 -> a
    20:43:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):56 -> a
    44:44:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    44:44:com.android.tools.r8.graph.DexType getTypeForGetClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InvokeVirtual):111 -> a
    44:44:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):56 -> a
    45:58:com.android.tools.r8.graph.DexType getTypeForGetClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InvokeVirtual):111:124 -> a
    45:58:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):56 -> a
    59:61:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):57:59 -> a
    62:112:com.android.tools.r8.graph.DexType getTypeForClassForName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InvokeStatic):135:185 -> a
    62:112:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):58 -> a
    113:113:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    113:113:com.android.tools.r8.graph.DexType getTypeForClassForName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InvokeStatic):186 -> a
    113:113:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):58 -> a
    114:135:com.android.tools.r8.graph.DexType getTypeForClassForName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.InvokeStatic):187:208 -> a
    114:135:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):58 -> a
    136:138:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):62:64 -> a
    139:140:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement com.android.tools.r8.ir.analysis.type.TypeLatticeElement.classClassType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.Nullability):357:358 -> a
    139:140:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):64 -> a
    141:150:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):65:74 -> a
    151:151:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    151:151:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):74 -> a
    152:154:void rewriteGetClassOrForNameToConstClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):74:76 -> a
com.android.tools.r8.ir.optimize.ServiceLoaderRewriter -> com.android.tools.r8.ir.optimize.g0:
    com.android.tools.r8.graph.AppView appView -> c
    java.util.concurrent.ConcurrentHashMap synthesizedServiceLoaders -> b
    com.android.tools.r8.graph.DexProgramClass synthesizedClass -> a
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():66:66 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):77:77 -> <init>
    2:8:void <init>(com.android.tools.r8.graph.AppView):72:78 -> <init>
    1:1:com.android.tools.r8.graph.DexProgramClass getSynthesizedClass():82:82 -> a
    2:2:void rewrite(com.android.tools.r8.ir.code.IRCode):86:86 -> a
    3:3:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    3:3:void rewrite(com.android.tools.r8.ir.code.IRCode):87 -> a
    4:71:void rewrite(com.android.tools.r8.ir.code.IRCode):88:155 -> a
    72:72:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    72:72:void rewrite(com.android.tools.r8.ir.code.IRCode):155 -> a
    73:83:void rewrite(com.android.tools.r8.ir.code.IRCode):159:169 -> a
    84:95:void rewrite(com.android.tools.r8.ir.code.IRCode):168:179 -> a
    96:97:com.android.tools.r8.graph.DexEncodedMethod lambda$rewrite$0(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):171:172 -> a
    98:98:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    98:98:com.android.tools.r8.graph.DexEncodedMethod lambda$rewrite$0(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):172 -> a
    99:99:com.android.tools.r8.graph.DexEncodedMethod lambda$rewrite$0(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):173:173 -> a
    100:135:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):184:219 -> a
    136:148:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):216:228 -> a
    149:157:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode.generate(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):46:54 -> a
    149:157:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
    158:173:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode.generate(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):51:66 -> a
    158:173:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
    174:174:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode.generate(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):64:64 -> a
    174:174:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
    175:197:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode.generate(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):57:79 -> a
    175:197:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
    198:198:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode.generate(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):76:76 -> a
    198:198:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
    199:225:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode.generate(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):72:98 -> a
    199:225:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
    226:226:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode.generate(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):96:96 -> a
    226:226:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
    227:252:com.android.tools.r8.graph.CfCode com.android.tools.r8.ir.desugar.ServiceLoaderSourceCode.generate(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):86:111 -> a
    227:252:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
    253:253:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> a
    253:253:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):228 -> a
    254:254:com.android.tools.r8.graph.DexEncodedMethod createSynthesizedMethod(com.android.tools.r8.graph.DexType,java.util.List):230:230 -> a
com.android.tools.r8.ir.optimize.ServiceLoaderRewriter$Rewriter -> com.android.tools.r8.ir.optimize.f0:
    com.android.tools.r8.ir.code.IRCode code -> a
    com.android.tools.r8.ir.code.InstructionListIterator iterator -> c
    com.android.tools.r8.ir.code.InvokeStatic serviceLoaderLoad -> b
    1:4:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeStatic):264:267 -> <init>
    boolean lambda$perform$1(com.android.tools.r8.ir.code.InvokeVirtual,com.android.tools.r8.ir.code.Instruction) -> a
    1:1:boolean lambda$perform$0(com.android.tools.r8.ir.code.Instruction):274:274 -> a
    2:5:void clearGetClassLoader(com.android.tools.r8.ir.code.InvokeVirtual):290:293 -> a
    2:5:void perform(com.android.tools.r8.ir.code.InvokeVirtual,com.android.tools.r8.graph.DexMethod):273 -> a
    6:18:void perform(com.android.tools.r8.ir.code.InvokeVirtual,com.android.tools.r8.graph.DexMethod):274:286 -> a
com.android.tools.r8.ir.optimize.SwitchCaseEliminator -> com.android.tools.r8.ir.optimize.h0:
    com.android.tools.r8.ir.code.IntSwitch theSwitch -> d
    com.android.tools.r8.ir.code.InstructionListIterator iterator -> c
    boolean mayHaveIntroducedUnreachableBlocks -> e
    boolean $assertionsDisabled -> g
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet switchCasesToBeRemoved -> f
    com.android.tools.r8.ir.code.BasicBlock defaultTarget -> b
    com.android.tools.r8.ir.code.BasicBlock block -> a
    1:1:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.ir.code.InstructionListIterator):29:29 -> <init>
    2:9:void <init>(com.android.tools.r8.ir.code.IntSwitch,com.android.tools.r8.ir.code.InstructionListIterator):26:33 -> <init>
    1:4:void markSwitchCaseForRemoval(int):51:54 -> a
    5:16:java.util.function.IntPredicate computeSuccessorHasBecomeDeadPredicate():91:102 -> a
    17:17:boolean lambda$computeSuccessorHasBecomeDeadPredicate$0(int[],int):102:102 -> a
    1:1:boolean mayHaveIntroducedUnreachableBlocks():47:47 -> b
    1:2:boolean canBeOptimized():42:43 -> c
    1:2:boolean optimize():58 -> c
    3:3:boolean optimize():59:59 -> c
    4:5:void unlinkDeadSuccessors():74:75 -> c
    4:5:boolean optimize():60 -> c
    6:6:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.<init>():90:90 -> c
    6:6:void unlinkDeadSuccessors():75 -> c
    6:6:boolean optimize():60 -> c
    7:18:void unlinkDeadSuccessors():76:87 -> c
    7:18:boolean optimize():60 -> c
    19:20:boolean allSwitchCasesMarkedForRemoval():37:38 -> c
    19:20:boolean optimize():61 -> c
    21:21:void replaceSwitchByGoto():106:106 -> c
    21:21:boolean optimize():63 -> c
    22:23:void com.android.tools.r8.ir.code.Goto.<init>(com.android.tools.r8.ir.code.BasicBlock):21:22 -> c
    22:23:void replaceSwitchByGoto():106 -> c
    22:23:boolean optimize():63 -> c
    24:24:void replaceSwitchByGoto():106:106 -> c
    24:24:boolean optimize():63 -> c
    25:60:void replaceSwitchByOptimizedSwitch(int):110:145 -> c
    25:60:boolean optimize():66 -> c
    61:61:void replaceSwitchByOptimizedSwitch(int):140:140 -> c
    61:61:boolean optimize():66 -> c
com.android.tools.r8.ir.optimize.SwitchMapCollector -> com.android.tools.r8.ir.optimize.i0:
    com.android.tools.r8.graph.DexString switchMapPrefix -> b
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.DexString kotlinSwitchMapPrefix -> c
    com.android.tools.r8.graph.DexType intArrayType -> d
    java.util.Map switchMaps -> e
    1:1:void <init>(com.android.tools.r8.graph.AppView):70:70 -> <init>
    2:10:void <init>(com.android.tools.r8.graph.AppView):68:76 -> <init>
    1:7:com.android.tools.r8.shaking.AppInfoWithLiveness run():80:86 -> a
    8:15:void processClasses(com.android.tools.r8.graph.DexProgramClass):91:98 -> a
    16:16:void lambda$processClasses$0(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedField):98:98 -> a
    17:52:void extractSwitchMap(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.IRCode):103:138 -> a
    53:53:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    53:53:void extractSwitchMap(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.IRCode):138 -> a
    54:64:void extractSwitchMap(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.IRCode):139:149 -> a
    65:65:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    65:65:void extractSwitchMap(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.IRCode):149 -> a
    66:77:void extractSwitchMap(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.IRCode):149:160 -> a
    78:78:boolean lambda$extractSwitchMap$1(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Instruction):122:122 -> a
    79:81:boolean maybeIsSwitchMap(com.android.tools.r8.graph.DexEncodedField):165:167 -> a
com.android.tools.r8.ir.optimize.SwitchUtils$1 -> com.android.tools.r8.ir.optimize.j0:
com.android.tools.r8.ir.optimize.SwitchUtils$EnumSwitchInfo -> com.android.tools.r8.ir.optimize.k0:
    com.android.tools.r8.ir.code.Instruction arrayGet -> b
    com.android.tools.r8.ir.code.Instruction staticGet -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap indexMap -> d
    com.android.tools.r8.ir.code.Instruction ordinalInvoke -> a
    java.util.Map valueInfoMap -> e
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.Map,com.android.tools.r8.ir.optimize.SwitchUtils$1):23:23 -> <init>
    2:8:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.Map):35:41 -> <init>
com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization -> com.android.tools.r8.ir.optimize.n0:
    com.android.tools.r8.utils.MethodSignatureEquivalence equivalence -> h
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> i
    int numberOfInvokesWithNullReceiver -> f
    int numberOfMonitorWithNullReceiver -> g
    int numberOfArrayInstructionsWithNullArray -> d
    int numberOfInvokesWithNullArgument -> e
    int numberOfInstanceGetOrInstancePutWithNullReceiver -> c
    com.android.tools.r8.ir.analysis.TypeChecker typeChecker -> b
    1:46:void <clinit>():58:103 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):114:114 -> <init>
    2:10:void <init>(com.android.tools.r8.graph.AppView):108:116 -> <init>
    1:12:com.android.tools.r8.graph.GraphLense run(com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):123:134 -> a
    13:27:com.android.tools.r8.graph.GraphLense run(com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):133:147 -> a
    28:28:com.android.tools.r8.graph.GraphLense run(com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):125:125 -> a
    29:29:void lambda$run$0(java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map,com.android.tools.r8.graph.DexProgramClass):136:136 -> a
    30:77:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):156:203 -> a
    78:92:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):202:216 -> a
    93:93:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):214:214 -> a
    94:137:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):212:255 -> a
    138:138:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):253:253 -> a
    139:168:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):251:280 -> a
    169:169:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):278:278 -> a
    170:181:void processClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.Map):276:287 -> a
    182:182:boolean lambda$processClass$1(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):244:244 -> a
    183:183:java.util.Set lambda$processClass$2(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):285:285 -> a
    184:191:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription getPrototypeChanges(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):295:302 -> a
    192:192:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription getPrototypeChanges(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):297:297 -> a
    193:228:com.android.tools.r8.graph.DexMethod getNewMethodSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription):335:370 -> a
    229:229:com.android.tools.r8.graph.DexMethod getNewMethodSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription):369:369 -> a
    230:243:void rewrite(com.android.tools.r8.ir.code.IRCode):374:387 -> a
    244:253:boolean isThrowNullCandidate(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):439:448 -> a
    244:253:void rewrite(com.android.tools.r8.ir.code.IRCode):387 -> a
    254:265:void rewrite(com.android.tools.r8.ir.code.IRCode):389:400 -> a
    266:266:void rewrite(com.android.tools.r8.ir.code.IRCode):396:396 -> a
    267:286:void rewrite(com.android.tools.r8.ir.code.IRCode):390:409 -> a
    287:295:void rewrite(com.android.tools.r8.ir.code.IRCode):408:416 -> a
    296:316:void rewriteInvoke(com.android.tools.r8.ir.code.InvokeMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.Set):536:556 -> a
    296:316:void rewrite(com.android.tools.r8.ir.code.IRCode):415 -> a
    317:317:void rewrite(com.android.tools.r8.ir.code.IRCode):425:425 -> a
    318:318:boolean com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1126:1126 -> a
    318:318:void rewrite(com.android.tools.r8.ir.code.IRCode):426 -> a
    319:321:void rewrite(com.android.tools.r8.ir.code.IRCode):427:429 -> a
    322:322:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    322:322:void rewrite(com.android.tools.r8.ir.code.IRCode):429 -> a
    323:325:void rewrite(com.android.tools.r8.ir.code.IRCode):429:431 -> a
    326:330:void logResults():458:462 -> a
    331:338:void logResults():459:466 -> a
    339:344:void logResults():463:468 -> a
    345:348:void logResults():467:470 -> a
    349:352:void logResults():469:472 -> a
    353:353:void logResults():471:471 -> a
    354:391:void rewriteFieldInstruction(com.android.tools.r8.ir.code.FieldInstruction,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):483:520 -> a
    392:399:void replaceOutValueByNull(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):565:572 -> a
    400:402:void replaceOutValueByNull(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):571:573 -> a
    1:12:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):307:318 -> b
    13:13:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo.builder():119:119 -> b
    13:13:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):321 -> b
    14:17:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):322:325 -> b
    18:28:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):320:330 -> b
com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy -> com.android.tools.r8.ir.optimize.l0:
    com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy ALLOW_ARGUMENT_REMOVAL -> a
    com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy DISALLOW_ARGUMENT_REMOVAL -> b
    1:2:void <clinit>():61:62 -> <clinit>
    1:1:void <init>(java.lang.String,int):60:60 -> <init>
com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$UninstantiatedTypeOptimizationGraphLense -> com.android.tools.r8.ir.optimize.m0:
    java.util.Map removedArgumentsInfoPerMethod -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():65:65 -> <clinit>
    1:7:void <init>(com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,com.android.tools.r8.graph.AppView):74:80 -> <init>
    8:16:void <init>(com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,com.android.tools.r8.graph.AppView):73:81 -> <init>
    1:12:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):86:97 -> lookupPrototypeChanges
com.android.tools.r8.ir.optimize.UnusedArgumentsCollector -> com.android.tools.r8.ir.optimize.t0:
    com.android.tools.r8.ir.optimize.MethodPoolCollection methodPoolCollection -> b
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Map removedArguments -> d
    com.android.tools.r8.com.google.common.collect.BiMap methodMapping -> c
    com.android.tools.r8.utils.MethodSignatureEquivalence equivalence -> e
    boolean $assertionsDisabled -> f
    1:3:void <clinit>():45:47 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.MethodPoolCollection):92:92 -> <init>
    2:44:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.MethodPoolCollection):52:94 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector):45:45 -> a
    2:2:com.android.tools.r8.utils.MethodSignatureEquivalence access$100():45:45 -> a
    3:9:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):98:104 -> a
    10:36:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):98:124 -> a
    37:47:void processDirectMethods(com.android.tools.r8.graph.DexProgramClass):221:231 -> a
    37:47:void lambda$runnableForClass$0(com.android.tools.r8.graph.DexProgramClass):217 -> a
    48:48:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo collectUnusedArguments(com.android.tools.r8.graph.DexEncodedMethod):281:281 -> a
    48:48:void processDirectMethods(com.android.tools.r8.graph.DexProgramClass):235 -> a
    48:48:void lambda$runnableForClass$0(com.android.tools.r8.graph.DexProgramClass):217 -> a
    49:61:void processDirectMethods(com.android.tools.r8.graph.DexProgramClass):236:248 -> a
    49:61:void lambda$runnableForClass$0(com.android.tools.r8.graph.DexProgramClass):217 -> a
    62:93:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo collectUnusedArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):286:317 -> a
    94:94:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo.builder():119:119 -> a
    94:94:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo collectUnusedArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):319 -> a
    95:97:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo collectUnusedArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):320:322 -> a
    98:105:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo collectUnusedArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):318:325 -> a
    106:124:com.android.tools.r8.graph.DexProto createProtoWithRemovedArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):332:350 -> a
    1:18:void processVirtualMethods(com.android.tools.r8.graph.DexProgramClass):254:271 -> b
    19:24:void processVirtualMethods(com.android.tools.r8.graph.DexProgramClass):270:275 -> b
    1:1:java.lang.Runnable runnableForClass(com.android.tools.r8.graph.DexProgramClass):217:217 -> c
com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$1 -> com.android.tools.r8.ir.optimize.o0:
com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$CollectUsedArguments -> com.android.tools.r8.ir.optimize.p0:
    java.util.BitSet used -> a
    1:3:void <init>():353:355 -> <init>
    4:4:void <init>(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$1):353:353 -> <init>
    1:1:java.util.BitSet getUsedArguments():358:358 -> a
    2:2:boolean register(int):363:363 -> a
com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$GloballyUsedSignatures -> com.android.tools.r8.ir.optimize.q0:
    com.android.tools.r8.ir.optimize.UnusedArgumentsCollector this$0 -> b
    com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool methodPool -> a
    1:2:void <init>(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):183:184 -> <init>
    1:12:com.android.tools.r8.graph.DexMethod getNewSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProto):193:204 -> a
    13:15:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):210:212 -> a
    16:16:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):211:211 -> a
com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$UnusedArgumentsGraphLense -> com.android.tools.r8.ir.optimize.r0:
    java.util.Map removedArguments -> a
    1:9:void <init>(java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory,java.util.Map):68:76 -> <init>
    1:6:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):82:87 -> lookupPrototypeChanges
com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$UsedSignatures -> com.android.tools.r8.ir.optimize.s0:
    com.android.tools.r8.ir.optimize.UnusedArgumentsCollector this$0 -> c
    com.android.tools.r8.utils.MethodSignatureEquivalence equivalence -> a
    java.util.Set usedSignatures -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():127:127 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector):127:130 -> <init>
    5:5:void <init>(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector,com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$1):127:127 -> <init>
    1:1:void markSignatureAsUsed(com.android.tools.r8.graph.DexMethod):137:137 -> a
    1:1:void access$300(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$UsedSignatures,com.android.tools.r8.graph.DexMethod):127 -> a
    2:11:com.android.tools.r8.graph.DexMethod getNewSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProto):146:155 -> a
    12:12:java.lang.String com.android.tools.r8.utils.SymbolGenerationUtils.numberToIdentifier(int,com.android.tools.r8.utils.SymbolGenerationUtils$MixedCasing,char[]):35:35 -> a
    12:12:com.android.tools.r8.graph.DexMethod getNewSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProto):152 -> a
    13:23:com.android.tools.r8.graph.DexMethod getNewSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProto):151:161 -> a
    24:24:boolean isMethodSignatureAvailable(com.android.tools.r8.graph.DexMethod):133:133 -> a
    24:24:com.android.tools.r8.graph.DexMethod getNewSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProto):163 -> a
    25:26:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):169:170 -> a
    27:27:void markSignatureAsUsed(com.android.tools.r8.graph.DexMethod):137:137 -> a
    27:27:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):172 -> a
    28:28:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):175:175 -> a
    29:29:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):174:174 -> a
com.android.tools.r8.ir.optimize.classinliner.ClassInliner -> com.android.tools.r8.ir.optimize.u0.b:
    java.util.concurrent.ConcurrentHashMap knownClasses -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():39:39 -> <clinit>
    1:29:void <init>():39:67 -> <init>
    1:3:void logEligibilityStatus(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus):72:74 -> a
    4:49:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):176:221 -> a
    50:52:void logIneligibleUser(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionOrPhi):80:82 -> a
    50:52:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):221 -> a
    53:64:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):225:236 -> a
    65:76:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):232:243 -> a
    77:77:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    77:77:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):244 -> a
    78:103:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):244:269 -> a
    104:104:boolean com.android.tools.r8.ir.code.IRCode.removeAllTrivialPhis(java.util.Set):1126:1126 -> a
    104:104:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):270 -> a
    105:106:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):271:272 -> a
    107:107:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    107:107:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):272 -> a
    108:137:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):272:301 -> a
    138:138:boolean lambda$processMethodCode$0(com.android.tools.r8.ir.code.Instruction):177:177 -> a
    139:139:void lambda$processMethodCode$2(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.ir.optimize.Inliner,com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteBuilderShrinker):284:284 -> a
    140:140:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):307:307 -> a
    140:140:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):196 -> a
    141:144:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):324:327 -> a
    141:144:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):309 -> a
    141:144:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):196 -> a
    145:145:boolean com.android.tools.r8.graph.DexClass.isAbstract():626:626 -> a
    145:145:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):329 -> a
    145:145:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):309 -> a
    145:145:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):196 -> a
    146:161:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):329:344 -> a
    146:161:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):309 -> a
    146:161:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):196 -> a
    162:162:boolean com.android.tools.r8.graph.DexClass.initializationOfParentTypesMayHaveSideEffects(com.android.tools.r8.graph.AppView):833:833 -> a
    162:162:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):349 -> a
    162:162:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):309 -> a
    162:162:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):196 -> a
    163:165:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):350:352 -> a
    163:165:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):309 -> a
    163:165:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):196 -> a
    166:166:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):330:330 -> a
    166:166:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):309 -> a
    166:166:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):196 -> a
    167:168:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):310:311 -> a
    167:168:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):196 -> a
com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus -> com.android.tools.r8.ir.optimize.u0.a:
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus RETRIEVAL_MAY_HAVE_SIDE_EFFECTS -> c
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus UNKNOWN_TYPE -> d
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NON_CLASS_TYPE -> a
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NOT_A_SINGLETON_FIELD -> b
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus ABSTRACT_OR_INTERFACE -> g
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NEVER_CLASS_INLINE -> h
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus UNUSED_INSTANCE -> e
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NON_PROGRAM_CLASS -> f
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus TRIGGER_CLINIT -> k
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus HAS_CLINIT -> l
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus IS_PINNED_TYPE -> i
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus HAS_FINALIZER -> j
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NOT_INITIALIZED_AT_INIT -> o
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus PINNED_FIELD -> p
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus HAS_INSTANCE_FIELDS -> m
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus NON_FINAL_TYPE -> n
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus ELIGIBLE -> q
    1:22:void <clinit>():43:64 -> <clinit>
    1:1:void <init>(java.lang.String,int):41:41 -> <init>
com.android.tools.r8.ir.optimize.classinliner.ClassInlinerCostAnalysis -> com.android.tools.r8.ir.optimize.u0.c:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set definiteReceiverAliases -> c
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ir.optimize.inliner.InliningIRProvider inliningIRProvider -> b
    int estimatedCost -> d
    1:1:void <clinit>():27:27 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,java.util.Set):38:38 -> <init>
    2:10:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider,java.util.Set):33:41 -> <init>
    1:29:boolean willExceedInstructionBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexProgramClass,java.util.Map,java.util.List):49:77 -> a
    30:44:int estimateNumberOfNonMaterializingInstructions(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.IRCode):107:121 -> a
    30:44:boolean willExceedInstructionBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexProgramClass,java.util.Map,java.util.List):78 -> a
    45:52:java.util.Set getReceiverAliasesInInlinee(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.IRCode):144:151 -> a
    45:52:int estimateNumberOfNonMaterializingInstructions(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.IRCode):123 -> a
    45:52:boolean willExceedInstructionBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexProgramClass,java.util.Map,java.util.List):78 -> a
    53:53:int estimateNumberOfNonMaterializingInstructions(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.IRCode):125:125 -> a
    53:53:boolean willExceedInstructionBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexProgramClass,java.util.Map,java.util.List):78 -> a
    54:64:boolean willExceedInstructionBudget(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexProgramClass,java.util.Map,java.util.List):79:89 -> a
    65:66:boolean exceedsInstructionBudgetAfterIncrement(int):95:96 -> a
com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo -> com.android.tools.r8.ir.optimize.u0.d:
    java.util.List callsReceiver -> a
    com.android.tools.r8.utils.OptionalBool returnsReceiver -> b
    boolean hasMonitorOnReceiver -> c
    1:4:void <init>(java.util.List,com.android.tools.r8.utils.OptionalBool,boolean):29:32 -> <init>
com.android.tools.r8.ir.optimize.classinliner.ClassInlinerReceiverAnalysis -> com.android.tools.r8.ir.optimize.u0.e:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.code.Value receiver -> d
    boolean $assertionsDisabled -> f
    com.android.tools.r8.ir.code.IRCode code -> c
    com.android.tools.r8.graph.DexEncodedMethod method -> b
    java.util.Map isReceiverAliasCache -> e
    1:1:void <clinit>():35:35 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):44:44 -> <init>
    2:10:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):42:50 -> <init>
    1:21:com.android.tools.r8.utils.OptionalBool computeReturnsReceiver():54:74 -> a
    22:35:com.android.tools.r8.utils.OptionalBool computeIsReceiverAlias(com.android.tools.r8.ir.code.Value):83:96 -> a
    36:37:boolean com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement.isRelatedTo(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement,com.android.tools.r8.graph.AppView):87:88 -> a
    36:37:com.android.tools.r8.utils.OptionalBool computeIsReceiverAlias(com.android.tools.r8.ir.code.Value):96 -> a
    38:73:com.android.tools.r8.utils.OptionalBool computeIsReceiverAlias(com.android.tools.r8.ir.code.Value):98:133 -> a
    74:74:com.android.tools.r8.utils.OptionalBool computeIsReceiverAlias(com.android.tools.r8.ir.code.Value):115:115 -> a
    75:75:com.android.tools.r8.utils.OptionalBool computeIsReceiverAlias(com.android.tools.r8.ir.code.Value):110:110 -> a
    1:2:com.android.tools.r8.utils.OptionalBool getOrComputeIsReceiverAlias(com.android.tools.r8.ir.code.Value):78:79 -> b
com.android.tools.r8.ir.optimize.classinliner.ClassInlinerReceiverSet -> com.android.tools.r8.ir.optimize.u0.f:
    java.util.Set maybeReceiverAliases -> c
    java.util.Set illegalReceiverAliases -> d
    boolean $assertionsDisabled -> f
    com.android.tools.r8.ir.code.Value root -> a
    java.util.Set definiteReceiverAliases -> b
    java.util.Map deferredAliasValidityChecks -> e
    1:1:void <clinit>():18:18 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value):32:32 -> <init>
    2:13:void <init>(com.android.tools.r8.ir.code.Value):23:34 -> <init>
    1:1:java.util.Set getDefiniteReceiverAliases():38:38 -> a
    2:8:boolean addIllegalReceiverAlias(com.android.tools.r8.ir.code.Value):66:72 -> a
    9:17:void addDeferredAliasValidityCheck(com.android.tools.r8.ir.code.Value,java.util.function.BooleanSupplier):77:85 -> a
    18:24:boolean isIllegalReceiverAlias(com.android.tools.r8.ir.code.Value):102:108 -> a
    18:24:boolean addReceiverAlias(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.optimize.classinliner.InlineCandidateProcessor$AliasKind):46 -> a
    25:36:boolean addReceiverAlias(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.optimize.classinliner.InlineCandidateProcessor$AliasKind):50:61 -> a
    1:1:boolean isDefiniteReceiverAlias(com.android.tools.r8.ir.code.Value):94:94 -> b
    2:5:void reset():117:120 -> b
    1:1:boolean isDefiniteReceiverAlias(com.android.tools.r8.ir.code.Value):94:94 -> c
    1:1:boolean isReceiverAlias(com.android.tools.r8.ir.code.Value):90 -> c
    2:2:boolean isMaybeReceiverAlias(com.android.tools.r8.ir.code.Value):98:98 -> c
    2:2:boolean isReceiverAlias(com.android.tools.r8.ir.code.Value):90 -> c
    3:3:boolean verifyReceiverSetsAreDisjoint():124:124 -> c
    4:4:java.util.Set getMaybeReceiverAliases():42:42 -> c
    4:4:boolean verifyReceiverSetsAreDisjoint():124 -> c
    5:5:java.util.Set getDefiniteReceiverAliases():38:38 -> c
    5:5:boolean verifyReceiverSetsAreDisjoint():124 -> c
    6:6:boolean verifyReceiverSetsAreDisjoint():124:124 -> c
    1:1:java.util.List lambda$addDeferredAliasValidityCheck$0(com.android.tools.r8.ir.code.Value):84:84 -> d
com.android.tools.r8.ir.optimize.classinliner.FieldValueHelper -> com.android.tools.r8.ir.optimize.u0.g:
    com.android.tools.r8.ir.code.Instruction root -> c
    com.android.tools.r8.graph.AppView appView -> d
    com.android.tools.r8.ir.code.Value defaultValue -> e
    com.android.tools.r8.graph.DexField field -> a
    boolean $assertionsDisabled -> h
    com.android.tools.r8.ir.code.IRCode code -> b
    java.util.Map ins -> f
    java.util.Map outs -> g
    1:1:void <clinit>():29:29 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView):39:39 -> <init>
    2:13:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView):35:46 -> <init>
    1:8:void replaceValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):50:57 -> a
    9:45:com.android.tools.r8.ir.code.Value getOrCreateInValue(com.android.tools.r8.ir.code.BasicBlock):86:122 -> a
    46:75:com.android.tools.r8.ir.code.Value getValueDefinedInTheBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):128:157 -> a
    76:76:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    76:76:com.android.tools.r8.ir.code.Value getValueDefinedInTheBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):156 -> a
    77:81:com.android.tools.r8.ir.code.Value getValueDefinedInTheBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):156:160 -> a
    82:82:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):29:29 -> a
    82:82:com.android.tools.r8.ir.code.Value getValueDefinedInTheBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):160 -> a
    83:86:com.android.tools.r8.ir.code.Value getValueDefinedInTheBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):162:165 -> a
    1:3:com.android.tools.r8.ir.code.Value getValueForFieldRead(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):63:65 -> b
    4:16:com.android.tools.r8.ir.code.Value getOrCreateOutValue(com.android.tools.r8.ir.code.BasicBlock):69:81 -> b
com.android.tools.r8.ir.optimize.classinliner.InlineCandidateProcessor -> com.android.tools.r8.ir.optimize.u0.j:
    com.android.tools.r8.com.google.common.collect.ImmutableSet ALLOWED_ZERO_TEST_TYPES -> p
    com.android.tools.r8.ir.optimize.classinliner.ClassInlinerReceiverSet receivers -> o
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Map directInlinees -> m
    com.android.tools.r8.ir.code.AliasedValueConfiguration aliasesThroughAssumeAndCheckCasts -> q
    com.android.tools.r8.ir.optimize.Inliner inliner -> b
    java.util.function.Function isClassEligible -> c
    com.android.tools.r8.graph.DexProgramClass eligibleClass -> h
    boolean $assertionsDisabled -> r
    com.android.tools.r8.ir.conversion.MethodProcessor methodProcessor -> d
    com.android.tools.r8.ir.code.Instruction root -> f
    java.util.Set indirectMethodCallsOnInstance -> j
    com.android.tools.r8.ir.code.Value eligibleInstance -> g
    com.android.tools.r8.graph.DexEncodedMethod method -> e
    java.util.Map methodCallsOnInstance -> i
    java.util.Map extraMethodCalls -> k
    java.util.List indirectInlinees -> n
    java.util.List unusedArguments -> l
    1:11:void <clinit>():74:84 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Function,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):118:118 -> <init>
    2:31:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Function,com.android.tools.r8.ir.conversion.MethodProcessor,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):96:125 -> <init>
    1:1:java.util.Map getDirectInlinees():133:133 -> a
    2:2:boolean lambda$isInstanceEligible$0(com.android.tools.r8.graph.DexType):160:160 -> a
    3:32:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):210:239 -> a
    33:33:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():139:139 -> a
    33:33:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):240 -> a
    34:39:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):246:251 -> a
    40:40:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():139:139 -> a
    40:40:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):252 -> a
    41:56:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):258:273 -> a
    57:83:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod):675:701 -> a
    57:83:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):275 -> a
    84:84:boolean com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo.receiverMayEscapeOutsideConstructorChain():50:50 -> a
    84:84:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod):702 -> a
    84:84:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):275 -> a
    85:91:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod):707:713 -> a
    85:91:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):275 -> a
    92:92:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    92:92:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod):713 -> a
    92:92:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):275 -> a
    93:97:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod):717:721 -> a
    93:97:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):275 -> a
    98:108:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod):717:727 -> a
    98:108:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):275 -> a
    109:133:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):277:301 -> a
    134:174:boolean isExtraMethodCallEligible(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):978:1018 -> a
    134:174:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):302 -> a
    175:178:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):311:314 -> a
    179:179:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):343:343 -> a
    180:186:void replaceUsagesAsUnusedArgument(com.android.tools.r8.ir.code.IRCode):381:387 -> a
    180:186:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):344 -> a
    187:187:void com.android.tools.r8.ir.code.BasicBlockInstructionListIterator.add(java.lang.Object):29:29 -> a
    187:187:void replaceUsagesAsUnusedArgument(com.android.tools.r8.ir.code.IRCode):387 -> a
    187:187:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):344 -> a
    188:193:void replaceUsagesAsUnusedArgument(com.android.tools.r8.ir.code.IRCode):388:393 -> a
    188:193:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):344 -> a
    194:198:boolean forceInlineExtraMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):398:402 -> a
    194:198:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):346 -> a
    199:203:void clear():373:377 -> a
    199:203:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):349 -> a
    204:211:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):352:359 -> a
    212:220:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):354:362 -> a
    221:243:boolean forceInlineIndirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):467:489 -> a
    221:243:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):363 -> a
    244:244:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Value.getAliasedValue(com.android.tools.r8.ir.code.AliasedValueConfiguration):273:273 -> a
    244:244:boolean forceInlineIndirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):489 -> a
    244:244:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):363 -> a
    245:255:boolean forceInlineIndirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):490:500 -> a
    245:255:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):363 -> a
    256:256:boolean forceInlineIndirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):497:497 -> a
    256:256:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):363 -> a
    257:287:boolean forceInlineIndirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):478:508 -> a
    257:287:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):363 -> a
    288:288:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):364:364 -> a
    289:342:void removeMiscUsages(com.android.tools.r8.ir.code.IRCode):537:590 -> a
    289:342:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):365 -> a
    343:343:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):366:366 -> a
    344:362:void removeFieldWrites():651:669 -> a
    344:362:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):367 -> a
    363:365:void removeFieldWrites():663:665 -> a
    363:365:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):367 -> a
    366:368:void removeFieldWrites():653:655 -> a
    366:368:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):367 -> a
    369:369:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):368:368 -> a
    370:376:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):408:414 -> a
    377:406:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):412:441 -> a
    407:407:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    407:407:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):441 -> a
    408:413:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):442:447 -> a
    414:423:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):443:452 -> a
    424:424:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):451:451 -> a
    425:425:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):448:448 -> a
    426:447:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.inliner.InliningIRProvider):438:459 -> a
    448:476:void removeFieldReads(com.android.tools.r8.ir.code.IRCode):596:624 -> a
    477:477:int lambda$removeFieldReads$1(com.android.tools.r8.ir.code.InstanceGet):597:597 -> a
    478:482:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):630:634 -> a
    483:494:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):633:644 -> a
    495:495:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    495:495:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):644 -> a
    496:496:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):645:645 -> a
    497:497:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
    497:497:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):645 -> a
    498:501:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):644:647 -> a
    502:502:com.android.tools.r8.ir.optimize.classinliner.FieldValueHelper lambda$replaceFieldRead$2(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField):634:634 -> a
    503:551:boolean isEligibleInvokeWithAllUsersAsReceivers(com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo,com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set):741:789 -> a
    503:551:boolean lambda$isEligibleDirectVirtualMethodCall$3(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):839 -> a
    552:552:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Value.getAliasedValue(com.android.tools.r8.ir.code.AliasedValueConfiguration):273:273 -> a
    552:552:boolean isEligibleInvokeWithAllUsersAsReceivers(com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo,com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set):789 -> a
    552:552:boolean lambda$isEligibleDirectVirtualMethodCall$3(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):839 -> a
    553:555:boolean isEligibleInvokeWithAllUsersAsReceivers(com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo,com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set):792:794 -> a
    553:555:boolean lambda$isEligibleDirectVirtualMethodCall$3(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):839 -> a
    556:556:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Value.getAliasedValue(com.android.tools.r8.ir.code.AliasedValueConfiguration):273:273 -> a
    556:556:boolean isEligibleInvokeWithAllUsersAsReceivers(com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo,com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set):794 -> a
    556:556:boolean lambda$isEligibleDirectVirtualMethodCall$3(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):839 -> a
    557:557:boolean isEligibleInvokeWithAllUsersAsReceivers(com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo,com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set):798:798 -> a
    557:557:boolean lambda$isEligibleDirectVirtualMethodCall$3(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):839 -> a
    558:571:boolean isEligibleInvokeWithAllUsersAsReceivers(com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo,com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set):770:783 -> a
    558:571:boolean lambda$isEligibleDirectVirtualMethodCall$3(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):839 -> a
    572:586:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleDirectVirtualMethodCall(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set,java.util.function.Supplier):815:829 -> a
    587:595:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleDirectVirtualMethodCall(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set,java.util.function.Supplier):828:836 -> a
    596:624:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleDirectVirtualMethodCall(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set,java.util.function.Supplier):834:862 -> a
    625:628:boolean isEligibleIndirectVirtualMethodCall(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):873:876 -> a
    629:629:boolean lambda$isEligibleIndirectVirtualMethodCall$4(com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):881:881 -> a
    630:673:boolean isEligibleVirtualMethodCall(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate):889:932 -> a
    674:687:boolean isExtraMethodCall(com.android.tools.r8.ir.code.InvokeMethod):937:950 -> a
    688:700:boolean isEligibleParameterUsages(com.android.tools.r8.ir.code.InvokeMethod,java.util.List,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):1028:1040 -> a
    701:742:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):1053:1094 -> a
    743:746:boolean isInstanceInitializerEligibleForClassInlining(com.android.tools.r8.graph.DexMethod):1126:1129 -> a
    743:746:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):1095 -> a
    747:747:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    747:747:boolean isInstanceInitializerEligibleForClassInlining(com.android.tools.r8.graph.DexMethod):1129 -> a
    747:747:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):1095 -> a
    748:749:boolean isInstanceInitializerEligibleForClassInlining(com.android.tools.r8.graph.DexMethod):1134:1135 -> a
    748:749:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):1095 -> a
    750:752:boolean isEligibleIndirectVirtualMethodCall(com.android.tools.r8.graph.DexMethod):866:868 -> a
    750:752:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):1091 -> a
    753:765:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):1105:1117 -> a
    766:766:boolean isEligibleParameterUsage(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):1112:1112 -> a
    767:767:void markSizeForInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1150:1150 -> a
    768:769:boolean exemptFromInstructionLimit(com.android.tools.r8.graph.DexEncodedMethod):1139:1140 -> a
    768:769:void markSizeForInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1151 -> a
    770:770:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    770:770:boolean exemptFromInstructionLimit(com.android.tools.r8.graph.DexEncodedMethod):1140 -> a
    770:770:void markSizeForInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1151 -> a
    771:776:boolean exemptFromInstructionLimit(com.android.tools.r8.graph.DexEncodedMethod):1141:1146 -> a
    771:776:void markSizeForInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1151 -> a
    777:777:boolean com.android.tools.r8.kotlin.KotlinSyntheticClass.isLambda():66:66 -> a
    777:777:boolean exemptFromInstructionLimit(com.android.tools.r8.graph.DexEncodedMethod):1146 -> a
    777:777:void markSizeForInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1151 -> a
    778:780:void markSizeForInlining(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):1153:1155 -> a
    781:788:boolean isEligibleSingleTarget(com.android.tools.r8.graph.DexEncodedMethod):1164:1171 -> a
    789:789:boolean isEligibleSingleTarget(com.android.tools.r8.graph.DexEncodedMethod):1170:1170 -> a
    790:790:void lambda$removeInstruction$6(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):1185:1185 -> a
    791:792:void removeInstruction(com.android.tools.r8.ir.code.Instruction):1185:1186 -> a
    1:1:com.android.tools.r8.graph.DexProgramClass getEligibleClass():129:129 -> b
    2:2:boolean lambda$isEligibleParameterUsages$5(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):1041:1041 -> b
    1:1:java.util.List getIndirectInlinees():137:137 -> c
    1:1:com.android.tools.r8.ir.optimize.classinliner.ClassInlinerReceiverSet getReceivers():141:141 -> d
    1:1:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isClassAndUsageEligible():199:199 -> e
    1:7:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():147:153 -> f
    8:8:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> f
    8:8:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():153 -> f
    9:25:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():153:169 -> f
    26:26:boolean com.android.tools.r8.ir.code.StaticGet.instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):139:139 -> f
    26:26:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():169 -> f
    27:37:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():170:180 -> f
    38:38:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> f
    38:38:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():180 -> f
    39:43:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():180:184 -> f
    44:44:com.android.tools.r8.ir.optimize.classinliner.ClassInliner$EligibilityStatus isInstanceEligible():177:177 -> f
    1:6:void removeAliasIntroducingInstructionsLinkedToEligibleInstance():513:518 -> g
    7:7:java.lang.Object com.android.tools.r8.utils.ListUtils.first(java.util.List):16:16 -> g
    7:7:void removeAliasIntroducingInstructionsLinkedToEligibleInstance():518 -> g
    8:21:void removeAliasIntroducingInstructionsLinkedToEligibleInstance():518:531 -> g
com.android.tools.r8.ir.optimize.classinliner.InlineCandidateProcessor$AliasKind -> com.android.tools.r8.ir.optimize.u0.h:
    com.android.tools.r8.ir.optimize.classinliner.InlineCandidateProcessor$AliasKind MAYBE -> b
    com.android.tools.r8.ir.optimize.classinliner.InlineCandidateProcessor$AliasKind DEFINITE -> a
    1:2:void <clinit>():77:78 -> <clinit>
    1:1:void <init>(java.lang.String,int):76:76 -> <init>
com.android.tools.r8.ir.optimize.classinliner.InlineCandidateProcessor$IllegalClassInlinerStateException -> com.android.tools.r8.ir.optimize.u0.i:
    1:1:void <init>():1189:1189 -> <init>
com.android.tools.r8.ir.optimize.info.BottomCallSiteOptimizationInfo -> com.android.tools.r8.ir.optimize.info.a:
    com.android.tools.r8.ir.optimize.info.BottomCallSiteOptimizationInfo INSTANCE -> d
    1:1:void <clinit>():8:8 -> <clinit>
    1:1:void <init>():10:10 -> <init>
    boolean isBottom() -> b
com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo -> com.android.tools.r8.ir.optimize.info.b:
    com.android.tools.r8.ir.optimize.info.TopCallSiteOptimizationInfo TOP -> b
    com.android.tools.r8.ir.optimize.info.BottomCallSiteOptimizationInfo BOTTOM -> a
    boolean $assertionsDisabled -> c
    1:3:void <clinit>():15:17 -> <clinit>
    1:1:void <init>():15:15 -> <init>
    com.android.tools.r8.ir.optimize.info.ConcreteCallSiteOptimizationInfo asConcreteCallSiteOptimizationInfo() -> a
    boolean hasUsefulOptimizationInfo(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod) -> a
    1:12:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo join(com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):37:48 -> a
    13:13:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo join(com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):44:44 -> a
    14:14:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractArgumentValue(int):72:72 -> a
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType(int) -> b
    boolean isBottom() -> b
    boolean isConcreteCallSiteOptimizationInfo() -> c
    boolean isTop() -> d
com.android.tools.r8.ir.optimize.info.ConcreteCallSiteOptimizationInfo -> com.android.tools.r8.ir.optimize.info.c:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap constants -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap dynamicUpperBoundTypes -> e
    boolean $assertionsDisabled -> g
    int size -> d
    1:1:void <clinit>():24:24 -> <clinit>
    1:5:void <init>(int,boolean):38:42 -> <init>
    com.android.tools.r8.ir.optimize.info.ConcreteCallSiteOptimizationInfo asConcreteCallSiteOptimizationInfo() -> a
    1:10:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo join(com.android.tools.r8.ir.optimize.info.ConcreteCallSiteOptimizationInfo,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):47:56 -> a
    11:14:com.android.tools.r8.ir.analysis.value.AbstractValue com.android.tools.r8.ir.analysis.value.AbstractValue.join(com.android.tools.r8.ir.analysis.value.AbstractValue):60:63 -> a
    11:14:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo join(com.android.tools.r8.ir.optimize.info.ConcreteCallSiteOptimizationInfo,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):56 -> a
    15:30:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo join(com.android.tools.r8.ir.optimize.info.ConcreteCallSiteOptimizationInfo,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):57:72 -> a
    31:39:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo join(com.android.tools.r8.ir.optimize.info.ConcreteCallSiteOptimizationInfo,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):71:79 -> a
    40:46:com.android.tools.r8.ir.analysis.type.TypeLatticeElement[] getStaticTypes(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):83:89 -> a
    40:46:boolean hasUsefulOptimizationInfo(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):101 -> a
    47:53:com.android.tools.r8.ir.analysis.type.TypeLatticeElement[] getStaticTypes(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):88:94 -> a
    47:53:boolean hasUsefulOptimizationInfo(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):101 -> a
    54:54:com.android.tools.r8.ir.analysis.type.TypeLatticeElement[] getStaticTypes(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):93:93 -> a
    54:54:boolean hasUsefulOptimizationInfo(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):101 -> a
    55:85:boolean hasUsefulOptimizationInfo(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):102:132 -> a
    86:91:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractArgumentValue(int):148:153 -> a
    92:93:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo fromArguments(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):160:161 -> a
    94:94:void <init>(com.android.tools.r8.graph.DexEncodedMethod,boolean):34:34 -> a
    94:94:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo fromArguments(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):161 -> a
    95:122:com.android.tools.r8.ir.optimize.info.CallSiteOptimizationInfo fromArguments(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):163:190 -> a
    1:3:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType(int):141:143 -> b
    boolean isConcreteCallSiteOptimizationInfo() -> c
    1:6:boolean equals(java.lang.Object):205:210 -> equals
    1:2:int hashCode():215:216 -> hashCode
    1:2:java.lang.String toString():221:222 -> toString
com.android.tools.r8.ir.optimize.info.DefaultFieldOptimizationInfo -> com.android.tools.r8.ir.optimize.info.d:
    com.android.tools.r8.ir.optimize.info.DefaultFieldOptimizationInfo INSTANCE -> a
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void <init>():16:16 -> <init>
    boolean cannotBeKept() -> b
    1:1:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue():34:34 -> c
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType() -> d
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType() -> e
    int getReadBits() -> f
    boolean isDefaultFieldOptimizationInfo() -> g
    1:1:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():24:24 -> i
    boolean valueHasBeenPropagated() -> j
    1:1:com.android.tools.r8.ir.optimize.info.DefaultFieldOptimizationInfo getInstance():19:19 -> k
com.android.tools.r8.ir.optimize.info.DefaultMethodOptimizationInfo -> com.android.tools.r8.ir.optimize.info.e:
    boolean UNKNOWN_INITIALIZER_ENABLING_JAVA_ASSERTIONS -> m
    boolean UNKNOWN_MAY_HAVE_SIDE_EFFECTS -> o
    boolean UNKNOWN_RETURN_VALUE_ONLY_DEPENDS_ON_ARGUMENTS -> p
    boolean DOES_NOT_USE_IDENTIFIER_NAME_STRING -> i
    boolean UNKNOWN_CHECKS_NULL_RECEIVER_BEFORE_ANY_SIDE_EFFECT -> j
    com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo UNKNOWN_PARAMETER_USAGE_INFO -> n
    boolean UNKNOWN_TRIGGERS_CLASS_INIT_BEFORE_ANY_SIDE_EFFECT -> k
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement UNKNOWN_CLASS_TYPE -> h
    java.util.BitSet NO_NULL_PARAMETER_OR_THROW_FACTS -> q
    java.util.Set UNKNOWN_INITIALIZED_CLASSES_ON_NORMAL_EXIT -> b
    int UNKNOWN_RETURNED_ARGUMENT -> c
    java.util.BitSet NO_NULL_PARAMETER_ON_NORMAL_EXITS_FACTS -> r
    boolean $assertionsDisabled -> s
    com.android.tools.r8.ir.analysis.value.AbstractValue UNKNOWN_ABSTRACT_RETURN_VALUE -> f
    com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo UNKNOWN_CLASS_INLINER_ELIGIBILITY -> l
    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo DEFAULT_INSTANCE -> a
    boolean UNKNOWN_NEVER_RETURNS_NORMALLY -> e
    boolean UNKNOWN_NEVER_RETURNS_NULL -> d
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement UNKNOWN_TYPE -> g
    1:21:void <clinit>():20:40 -> <clinit>
    1:1:void <init>():42:42 -> <init>
    1:1:java.util.Set getInitializedClassesOnNormalExit():81:81 -> A
    1:1:boolean isInitializerEnablingJavaAssertions():148:148 -> B
    1:1:java.util.BitSet getNonNullParamOrThrow():97:97 -> C
    1:1:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage getParameterUsages(int):91:91 -> a
    2:2:com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo mutableCopy():193:193 -> a
    1:1:java.util.BitSet getNonNullParamOnNormalExits():102:102 -> b
    boolean cannotBeKept() -> c
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType():71:71 -> d
    1:1:boolean checksNullReceiverBeforeAnySideEffect():168:168 -> e
    boolean returnValueHasBeenPropagated() -> f
    1:1:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractReturnValue():143:143 -> g
    boolean classInitializerMayBePostponed() -> h
    1:2:int getReturnedArgument():122:123 -> i
    1:1:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo getInstanceInitializerInfo():86:86 -> j
    1:1:boolean returnValueOnlyDependsOnArguments():183:183 -> k
    boolean neverInline() -> l
    1:1:boolean neverReturnsNormally():133:133 -> m
    1:1:boolean useIdentifierNameString():153:153 -> n
    1:1:boolean triggersClassInitBeforeAnySideEffect():173:173 -> o
    boolean returnsArgument() -> p
    boolean isUpdatableMethodOptimizationInfo() -> q
    1:1:boolean neverReturnsNull():128:128 -> r
    boolean isReachabilitySensitive() -> s
    com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo asUpdatableMethodOptimizationInfo() -> t
    boolean forceInline() -> u
    boolean isDefaultMethodOptimizationInfo() -> v
    1:1:boolean mayHaveSideEffects():178:178 -> w
    1:1:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType():76:76 -> x
    boolean hasBeenInlinedIntoSingleCallSite() -> y
    1:1:com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo getClassInlinerEligibility():138:138 -> z
com.android.tools.r8.ir.optimize.info.FieldOptimizationInfo -> com.android.tools.r8.ir.optimize.info.f:
    1:1:void <init>():11:11 -> <init>
    com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo asMutableFieldOptimizationInfo() -> a
    boolean cannotBeKept() -> b
    com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue() -> c
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType() -> d
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType() -> e
    int getReadBits() -> f
    boolean isDefaultFieldOptimizationInfo() -> g
    boolean isMutableFieldOptimizationInfo() -> h
    com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy() -> i
    boolean valueHasBeenPropagated() -> j
com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo -> com.android.tools.r8.ir.optimize.info.g:
    java.util.Set getInitializedClassesOnNormalExit() -> A
    boolean isInitializerEnablingJavaAssertions() -> B
    java.util.BitSet getNonNullParamOrThrow() -> C
    com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage getParameterUsages(int) -> a
    com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo mutableCopy() -> a
    java.util.BitSet getNonNullParamOnNormalExits() -> b
    boolean cannotBeKept() -> c
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType() -> d
    boolean checksNullReceiverBeforeAnySideEffect() -> e
    boolean returnValueHasBeenPropagated() -> f
    com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractReturnValue() -> g
    boolean classInitializerMayBePostponed() -> h
    int getReturnedArgument() -> i
    com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo getInstanceInitializerInfo() -> j
    boolean returnValueOnlyDependsOnArguments() -> k
    boolean neverInline() -> l
    boolean neverReturnsNormally() -> m
    boolean useIdentifierNameString() -> n
    boolean triggersClassInitBeforeAnySideEffect() -> o
    boolean returnsArgument() -> p
    boolean isUpdatableMethodOptimizationInfo() -> q
    boolean neverReturnsNull() -> r
    boolean isReachabilitySensitive() -> s
    com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo asUpdatableMethodOptimizationInfo() -> t
    boolean forceInline() -> u
    boolean isDefaultMethodOptimizationInfo() -> v
    boolean mayHaveSideEffects() -> w
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType() -> x
    boolean hasBeenInlinedIntoSingleCallSite() -> y
    com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo getClassInlinerEligibility() -> z
com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo$InlinePreference -> com.android.tools.r8.ir.optimize.info.g$a:
    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo$InlinePreference NeverInline -> a
    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo$InlinePreference ForceInline -> b
    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo$InlinePreference Default -> c
    1:3:void <clinit>():20:22 -> <clinit>
    1:1:void <init>(java.lang.String,int):19:19 -> <init>
com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector -> com.android.tools.r8.ir.optimize.info.i:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.utils.InternalOptions options -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():107:107 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView):112:115 -> <init>
    1:1:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):123:123 -> a
    2:6:void identifyParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):267:271 -> a
    2:6:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):124 -> a
    7:13:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage collectParameterUsages(int,com.android.tools.r8.ir.code.Value):287:293 -> a
    7:13:void identifyParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):274 -> a
    7:13:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):124 -> a
    14:21:void identifyParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):276:283 -> a
    14:21:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):124 -> a
    22:22:void identifyParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):279:279 -> a
    22:22:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):124 -> a
    23:60:void identifyReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):298:335 -> a
    23:60:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):125 -> a
    61:62:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):126:127 -> a
    63:66:void identifyInvokeSemanticsForInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):606:609 -> a
    63:66:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):127 -> a
    67:73:void identifyInvokeSemanticsForInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):608:614 -> a
    67:73:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):127 -> a
    74:74:void identifyInvokeSemanticsForInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):613:613 -> a
    74:74:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):127 -> a
    75:93:void computeDynamicReturnType(com.android.tools.r8.ir.optimize.DynamicTypeOptimization,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):865:883 -> a
    75:93:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):129 -> a
    94:100:void computeInitializedClassesOnNormalExit(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):890:896 -> a
    94:100:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):130 -> a
    101:117:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):341:357 -> a
    101:117:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):131 -> a
    118:118:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass):385:385 -> a
    118:118:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):361 -> a
    118:118:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):131 -> a
    119:119:boolean com.android.tools.r8.graph.DexClass.definesFinalizer(com.android.tools.r8.graph.DexItemFactory):850:850 -> a
    119:119:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass):385 -> a
    119:119:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):361 -> a
    119:119:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):131 -> a
    120:310:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass):390:580 -> a
    120:310:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):361 -> a
    120:310:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):131 -> a
    311:316:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass):565:570 -> a
    311:316:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):361 -> a
    311:316:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):131 -> a
    317:340:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass):533:556 -> a
    317:340:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):361 -> a
    317:340:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):131 -> a
    341:343:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass):485:487 -> a
    341:343:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):361 -> a
    341:343:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):131 -> a
    344:344:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    344:344:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass):487 -> a
    344:344:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):361 -> a
    344:344:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):131 -> a
    345:370:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass):491:516 -> a
    345:370:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):361 -> a
    345:370:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):131 -> a
    371:396:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass):498:523 -> a
    371:396:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):361 -> a
    371:396:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):131 -> a
    397:414:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass):461:478 -> a
    397:414:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):361 -> a
    397:414:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):131 -> a
    415:425:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass):443:453 -> a
    415:425:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):361 -> a
    415:425:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):131 -> a
    426:619:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo analyzeInstanceInitializer(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass):408:601 -> a
    426:619:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):361 -> a
    426:619:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):131 -> a
    620:620:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):366:366 -> a
    620:620:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):131 -> a
    621:621:void computeInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):362:362 -> a
    621:621:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):131 -> a
    622:622:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):132:132 -> a
    623:629:void computeReturnValueOnlyDependsOnArguments(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):979:985 -> a
    623:629:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):133 -> a
    630:652:void computeNonNullParamOrThrow(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):992:1014 -> a
    630:652:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):134 -> a
    653:684:void computeNonNullParamOnNormalExits(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.code.IRCode):1019:1050 -> a
    653:684:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):135 -> a
    685:730:boolean isNormalExitDominated(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DominatorTree,java.util.Set):1072:1117 -> a
    685:730:void computeNonNullParamOnNormalExits(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.code.IRCode):1051 -> a
    685:730:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):135 -> a
    731:736:void computeNonNullParamOnNormalExits(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.code.IRCode):1057:1062 -> a
    731:736:void collectMethodOptimizationInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.DynamicTypeOptimization):135 -> a
    737:750:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):153:166 -> a
    751:751:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    751:751:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):166 -> a
    752:820:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):171:239 -> a
    821:825:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):213:217 -> a
    826:895:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):192:261 -> a
    896:896:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):257:257 -> a
    897:897:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Value.getAliasedValue(com.android.tools.r8.ir.code.AliasedValueConfiguration):273:273 -> a
    897:897:boolean lambda$identifyClassInlinerEligibility$0(com.android.tools.r8.ir.code.AliasedValueConfiguration,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):177 -> a
    898:898:boolean triggersClassInitializationBeforeSideEffect(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):626:626 -> a
    899:915:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect lambda$triggersClassInitializationBeforeSideEffect$1(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator):629:645 -> a
    916:974:boolean alwaysTriggerExpectedEffectBeforeAnythingElse(com.android.tools.r8.ir.code.IRCode,java.util.function.BiFunction):657:715 -> a
    975:1014:boolean alwaysTriggerExpectedEffectBeforeAnythingElse(com.android.tools.r8.ir.code.IRCode,java.util.function.BiFunction):676:715 -> a
    1015:1027:boolean alwaysTriggerExpectedEffectBeforeAnythingElse(com.android.tools.r8.ir.code.IRCode,java.util.function.BiFunction):703:715 -> a
    1028:1028:boolean checksNullBeforeSideEffect(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView):726:726 -> a
    1029:1033:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect lambda$checksNullBeforeSideEffect$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator):729:733 -> a
    1034:1052:boolean isKotlinNullCheck(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView):809:827 -> a
    1034:1052:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect lambda$checksNullBeforeSideEffect$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator):735 -> a
    1053:1072:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect lambda$checksNullBeforeSideEffect$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator):736:755 -> a
    1073:1078:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect lambda$checksNullBeforeSideEffect$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator):754:759 -> a
    1079:1086:boolean isInstantiationOfNullPointerException(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.graph.DexItemFactory):846:853 -> a
    1079:1086:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect lambda$checksNullBeforeSideEffect$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator):759 -> a
    1087:1107:com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect lambda$checksNullBeforeSideEffect$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator):760:780 -> a
    1108:1110:boolean isNullCheck(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):835:837 -> a
    1111:1122:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):904:915 -> a
    1123:1123:com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis.classInitializerCanBePostponed(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):42:42 -> a
    1123:1123:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):916 -> a
    1124:1124:com.android.tools.r8.utils.OptionalBool com.android.tools.r8.utils.OptionalBool.unknown():58:58 -> a
    1124:1124:com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis.classInitializerCanBePostponed(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):43 -> a
    1124:1124:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):916 -> a
    1125:1136:com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis.classInitializerCanBePostponed(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):46:57 -> a
    1125:1136:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):916 -> a
    1137:1137:com.android.tools.r8.ir.analysis.AbstractError com.android.tools.r8.ir.code.Instruction.instructionInstanceCanThrow(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):563:563 -> a
    1137:1137:com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis.classInitializerCanBePostponed(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):58 -> a
    1137:1137:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):916 -> a
    1138:1146:com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis.classInitializerCanBePostponed(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):58:66 -> a
    1138:1146:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):916 -> a
    1147:1173:com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis.classInitializerCanBePostponed(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):59:85 -> a
    1147:1173:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):916 -> a
    1174:1229:com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis.classInitializerCanBePostponed(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):78:133 -> a
    1174:1229:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):916 -> a
    1230:1230:boolean com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect.isNone():32:32 -> a
    1230:1230:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):917 -> a
    1231:1232:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):918:919 -> a
    1233:1233:boolean com.android.tools.r8.ir.analysis.sideeffect.ClassInitializerSideEffectAnalysis$ClassInitializerSideEffect.canBePostponed():28:28 -> a
    1233:1233:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):920 -> a
    1234:1236:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):921:923 -> a
    1237:1238:boolean com.android.tools.r8.graph.DexType.isD8R8SynthesizedLambdaClassType():263:264 -> a
    1237:1238:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):923 -> a
    1239:1241:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):923:925 -> a
    1242:1253:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):923:934 -> a
    1254:1254:boolean hasNonTrivialFinalizeMethod(com.android.tools.r8.graph.DexType):953:953 -> a
    1254:1254:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):934 -> a
    1255:1255:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    1255:1255:boolean hasNonTrivialFinalizeMethod(com.android.tools.r8.graph.DexType):953 -> a
    1255:1255:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):934 -> a
    1256:1264:boolean hasNonTrivialFinalizeMethod(com.android.tools.r8.graph.DexType):955:963 -> a
    1256:1264:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):934 -> a
    1265:1269:void computeMayHaveSideEffects(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):942:946 -> a
    1270:1270:boolean lambda$computeMayHaveSideEffects$3(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction):943:943 -> a
com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect -> com.android.tools.r8.ir.optimize.info.h:
    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect DESIRED_EFFECT -> a
    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect NO_EFFECT -> d
    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect OTHER_EFFECT -> c
    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfoCollector$InstructionEffect CONDITIONAL_EFFECT -> b
    1:4:void <clinit>():799:802 -> <clinit>
    1:1:void <init>(java.lang.String,int):798:798 -> <init>
com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo -> com.android.tools.r8.ir.optimize.info.j:
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement dynamicUpperBoundType -> f
    int readBits -> b
    boolean cannotBeKept -> c
    com.android.tools.r8.ir.analysis.value.AbstractValue abstractValue -> a
    boolean valueHasBeenPropagated -> d
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement dynamicLowerBoundType -> e
    1:8:void <init>():23:30 -> <init>
    com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo asMutableFieldOptimizationInfo() -> a
    1:5:void fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):34:38 -> a
    6:6:void setAbstractValue(com.android.tools.r8.ir.analysis.value.AbstractValue):56:56 -> a
    7:7:void joinReadBits(int):65:65 -> a
    8:8:void setDynamicLowerBoundType(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):83:83 -> a
    9:9:void setDynamicUpperBoundType(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):92:92 -> a
    1:1:boolean cannotBeKept():70:70 -> b
    1:1:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractValue():52:52 -> c
    1:1:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType():79:79 -> d
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType():88:88 -> e
    1:1:int getReadBits():61:61 -> f
    boolean isMutableFieldOptimizationInfo() -> h
    1:1:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():44:44 -> i
    2:2:boolean cannotBeKept():70:70 -> i
    2:2:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():45 -> i
    3:3:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():45:45 -> i
    4:4:boolean valueHasBeenPropagated():97:97 -> i
    4:4:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():46 -> i
    5:5:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo mutableCopy():46:46 -> i
    1:1:boolean valueHasBeenPropagated():97:97 -> j
    1:1:void markAsPropagated():101:101 -> k
    1:1:void markCannotBeKept():74:74 -> l
com.android.tools.r8.ir.optimize.info.OptimizationFeedback -> com.android.tools.r8.ir.optimize.info.k:
    1:1:void <init>():16:16 -> <init>
    1:1:void fixupOptimizationInfos(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedback$OptimizationInfoFixer):30:30 -> a
    2:2:void fixupOptimizationInfos(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedback$OptimizationInfoFixer):29:29 -> a
    3:4:void lambda$fixupOptimizationInfos$0(com.android.tools.r8.ir.optimize.info.OptimizationFeedback$OptimizationInfoFixer,com.android.tools.r8.graph.DexProgramClass):32:33 -> a
com.android.tools.r8.ir.optimize.info.OptimizationFeedback$OptimizationInfoFixer -> com.android.tools.r8.ir.optimize.info.k$a:
    void fixup(com.android.tools.r8.graph.DexEncodedField) -> a
    void fixup(com.android.tools.r8.graph.DexEncodedMethod) -> a
com.android.tools.r8.ir.optimize.info.OptimizationFeedbackDelayed -> com.android.tools.r8.ir.optimize.info.l:
    java.util.Map fieldOptimizationInfos -> a
    java.util.Map methodOptimizationInfos -> b
    java.util.Map processed -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():27:27 -> <clinit>
    1:8:void <init>():27:34 -> <init>
    1:2:void fixupOptimizationInfos(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedback$OptimizationInfoFixer):62:63 -> a
    3:3:boolean lambda$updateVisibleOptimizationInfo$0(java.util.Map$Entry):71:71 -> a
    4:9:boolean noUpdatesLeft():88:93 -> a
    10:10:void markFieldAsPropagated(com.android.tools.r8.graph.DexEncodedField):106:106 -> a
    11:11:void markFieldHasDynamicLowerBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):112:112 -> a
    12:12:void markFieldHasDynamicUpperBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):117:117 -> a
    13:13:void markFieldBitsRead(com.android.tools.r8.graph.DexEncodedField,int):122:122 -> a
    14:15:void recordFieldHasAbstractValue(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.value.AbstractValue):128:129 -> a
    16:17:void methodInitializesClassesOnNormalExit(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):153:154 -> a
    18:18:void methodReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,int):159:159 -> a
    19:20:void methodReturnsAbstractValue(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.value.AbstractValue):165:166 -> a
    21:21:void methodReturnsObjectWithUpperBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):173:173 -> a
    22:22:void methodReturnsObjectWithLowerBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):179:179 -> a
    23:23:void methodNeverReturnsNormally(com.android.tools.r8.graph.DexEncodedMethod):189:189 -> a
    24:24:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):209:209 -> a
    25:25:void markTriggerClassInitBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean):226:226 -> a
    26:26:void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):232:232 -> a
    27:28:void setInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):238:239 -> a
    29:29:void setParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo):250:250 -> a
    30:30:void setNonNullParamOrThrow(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet):255:255 -> a
    1:2:void updateVisibleOptimizationInfo():70:71 -> b
    3:17:void updateVisibleOptimizationInfo():70:84 -> b
    18:18:boolean lambda$updateVisibleOptimizationInfo$1(java.util.Map$Entry):72:72 -> b
    19:19:void markFieldCannotBeKept(com.android.tools.r8.graph.DexEncodedField):101:101 -> b
    20:20:void markCheckNullReceiverBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean):220:220 -> b
    21:21:void setInitializerEnablingJavaAssertions(com.android.tools.r8.graph.DexEncodedMethod):244:244 -> b
    22:22:void setNonNullParamOnNormalExits(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet):260:260 -> b
    1:6:com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo getFieldOptimizationInfoForUpdating(com.android.tools.r8.graph.DexEncodedField):38:43 -> c
    7:7:void methodMayNotHaveSideEffects(com.android.tools.r8.graph.DexEncodedMethod):194:194 -> c
    1:1:void markInlinedIntoSingleCallSite(com.android.tools.r8.graph.DexEncodedMethod):142:142 -> d
    1:1:void methodReturnValueOnlyDependsOnArguments(com.android.tools.r8.graph.DexEncodedMethod):199:199 -> e
    1:1:void markUseIdentifierNameString(com.android.tools.r8.graph.DexEncodedMethod):214:214 -> f
    1:1:void methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod):184:184 -> g
    1:1:void classInitializerMayBePostponed(com.android.tools.r8.graph.DexEncodedMethod):265:265 -> h
    1:1:void markMethodCannotBeKept(com.android.tools.r8.graph.DexEncodedMethod):147:147 -> i
    1:6:com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo getMethodOptimizationInfoForUpdating(com.android.tools.r8.graph.DexEncodedMethod):49:54 -> j
com.android.tools.r8.ir.optimize.info.OptimizationFeedbackIgnore -> com.android.tools.r8.ir.optimize.info.m:
    com.android.tools.r8.ir.optimize.info.OptimizationFeedbackIgnore INSTANCE -> a
    1:1:void <clinit>():23:23 -> <clinit>
    1:1:void <init>():25:25 -> <init>
    void markFieldAsPropagated(com.android.tools.r8.graph.DexEncodedField) -> a
    void markFieldBitsRead(com.android.tools.r8.graph.DexEncodedField,int) -> a
    void markFieldHasDynamicLowerBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement) -> a
    void markFieldHasDynamicUpperBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.TypeLatticeElement) -> a
    void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget) -> a
    void markTriggerClassInitBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> a
    void methodInitializesClassesOnNormalExit(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set) -> a
    void methodNeverReturnsNormally(com.android.tools.r8.graph.DexEncodedMethod) -> a
    void methodReturnsAbstractValue(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.value.AbstractValue) -> a
    void methodReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,int) -> a
    void methodReturnsObjectWithLowerBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement) -> a
    void methodReturnsObjectWithUpperBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement) -> a
    void recordFieldHasAbstractValue(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.value.AbstractValue) -> a
    void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo) -> a
    void setInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo) -> a
    void setNonNullParamOrThrow(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> a
    void setParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo) -> a
    1:1:com.android.tools.r8.ir.optimize.info.OptimizationFeedbackIgnore getInstance():28:28 -> a
    void markCheckNullReceiverBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> b
    void markFieldCannotBeKept(com.android.tools.r8.graph.DexEncodedField) -> b
    void setInitializerEnablingJavaAssertions(com.android.tools.r8.graph.DexEncodedMethod) -> b
    void setNonNullParamOnNormalExits(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> b
    void methodMayNotHaveSideEffects(com.android.tools.r8.graph.DexEncodedMethod) -> c
    void markInlinedIntoSingleCallSite(com.android.tools.r8.graph.DexEncodedMethod) -> d
    void methodReturnValueOnlyDependsOnArguments(com.android.tools.r8.graph.DexEncodedMethod) -> e
    void markUseIdentifierNameString(com.android.tools.r8.graph.DexEncodedMethod) -> f
    void methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod) -> g
    void classInitializerMayBePostponed(com.android.tools.r8.graph.DexEncodedMethod) -> h
    void markMethodCannotBeKept(com.android.tools.r8.graph.DexEncodedMethod) -> i
com.android.tools.r8.ir.optimize.info.OptimizationFeedbackIgnore$1 -> com.android.tools.r8.ir.optimize.info.m$a:
    1:1:void <init>():23:23 -> <init>
com.android.tools.r8.ir.optimize.info.OptimizationFeedbackSimple -> com.android.tools.r8.ir.optimize.info.n:
    com.android.tools.r8.ir.optimize.info.OptimizationFeedbackSimple INSTANCE -> a
    1:1:void <clinit>():23:23 -> <clinit>
    1:1:void <init>():25:25 -> <init>
    void markFieldBitsRead(com.android.tools.r8.graph.DexEncodedField,int) -> a
    void markFieldHasDynamicLowerBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement) -> a
    void markFieldHasDynamicUpperBoundType(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.type.TypeLatticeElement) -> a
    void markTriggerClassInitBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> a
    void methodInitializesClassesOnNormalExit(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set) -> a
    void methodNeverReturnsNormally(com.android.tools.r8.graph.DexEncodedMethod) -> a
    void methodReturnsAbstractValue(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.value.AbstractValue) -> a
    void methodReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,int) -> a
    void methodReturnsObjectWithLowerBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement) -> a
    void methodReturnsObjectWithUpperBoundType(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement) -> a
    void recordFieldHasAbstractValue(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.value.AbstractValue) -> a
    void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo) -> a
    void setInstanceInitializerInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo) -> a
    void setNonNullParamOrThrow(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> a
    void setParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo) -> a
    1:1:com.android.tools.r8.ir.optimize.info.OptimizationFeedbackSimple getInstance():28:28 -> a
    2:2:void markFieldAsPropagated(com.android.tools.r8.graph.DexEncodedField):40:40 -> a
    3:3:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):139:139 -> a
    void markCheckNullReceiverBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> b
    void setNonNullParamOnNormalExits(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> b
    1:1:void markFieldCannotBeKept(com.android.tools.r8.graph.DexEncodedField):35:35 -> b
    2:2:void setInitializerEnablingJavaAssertions(com.android.tools.r8.graph.DexEncodedMethod):171:171 -> b
    void methodMayNotHaveSideEffects(com.android.tools.r8.graph.DexEncodedMethod) -> c
    1:1:void markInlinedIntoSingleCallSite(com.android.tools.r8.graph.DexEncodedMethod):74:74 -> d
    void methodReturnValueOnlyDependsOnArguments(com.android.tools.r8.graph.DexEncodedMethod) -> e
    1:1:void markUseIdentifierNameString(com.android.tools.r8.graph.DexEncodedMethod):144:144 -> f
    void methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod) -> g
    void classInitializerMayBePostponed(com.android.tools.r8.graph.DexEncodedMethod) -> h
    1:1:void markMethodCannotBeKept(com.android.tools.r8.graph.DexEncodedMethod):79:79 -> i
com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo -> com.android.tools.r8.ir.optimize.info.o:
    boolean $assertionsDisabled -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList parametersUsages -> a
    1:1:void <clinit>():29:29 -> <clinit>
    1:5:void <init>(java.util.List):33:37 -> <init>
    6:6:void <init>(java.util.List):36:36 -> <init>
    1:1:java.lang.Integer lambda$new$0(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage):37:37 -> a
    2:3:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage getParameterUsage(int):41:42 -> a
    1:6:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo remove(int):50:55 -> b
    7:8:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage.copyAndShift(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage,int):115:116 -> b
    7:8:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo remove(int):56 -> b
    9:22:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo remove(int):56:69 -> b
com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage -> com.android.tools.r8.ir.optimize.info.o$a:
    boolean $assertionsDisabled -> i
    java.util.List callsReceiver -> c
    boolean hasFieldRead -> e
    boolean isAssignedToField -> f
    boolean isReturned -> g
    java.util.Set ifZeroTest -> b
    boolean isUsedInMonitor -> h
    int index -> a
    boolean hasFieldAssignment -> d
    1:1:void <clinit>():72:72 -> <clinit>
    1:11:void <init>(int,java.util.Set,java.util.List,boolean,boolean,boolean,boolean,boolean):101:111 -> <init>
    1:2:boolean notUsed():128:129 -> a
com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsageBuilder -> com.android.tools.r8.ir.optimize.info.p:
    java.util.Set ifZeroTestTypes -> c
    boolean isUsedInMonitor -> i
    boolean $assertionsDisabled -> j
    java.util.List callsOnReceiver -> d
    boolean hasFieldAssignment -> e
    boolean hasFieldRead -> f
    com.android.tools.r8.ir.code.Value arg -> b
    boolean isAssignedToField -> g
    boolean isReturned -> h
    int index -> a
    1:1:void <clinit>():138:138 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,int):151:151 -> <init>
    2:13:void <init>(com.android.tools.r8.ir.code.Value,int):142:153 -> <init>
    1:7:boolean note(com.android.tools.r8.ir.code.Instruction):158:164 -> a
    8:10:boolean note(com.android.tools.r8.ir.code.If):197:199 -> a
    8:10:boolean note(com.android.tools.r8.ir.code.Instruction):164 -> a
    11:13:boolean note(com.android.tools.r8.ir.code.If):198:200 -> a
    11:13:boolean note(com.android.tools.r8.ir.code.Instruction):164 -> a
    14:15:boolean note(com.android.tools.r8.ir.code.Instruction):166:167 -> a
    16:18:boolean note(com.android.tools.r8.ir.code.InstanceGet):207:209 -> a
    16:18:boolean note(com.android.tools.r8.ir.code.Instruction):167 -> a
    19:20:boolean note(com.android.tools.r8.ir.code.Instruction):169:170 -> a
    21:28:boolean note(com.android.tools.r8.ir.code.InstancePut):216:223 -> a
    21:28:boolean note(com.android.tools.r8.ir.code.Instruction):170 -> a
    29:33:boolean note(com.android.tools.r8.ir.code.Instruction):172:176 -> a
    34:35:boolean note(com.android.tools.r8.ir.code.Return):242:243 -> a
    34:35:boolean note(com.android.tools.r8.ir.code.Instruction):176 -> a
    36:38:boolean note(com.android.tools.r8.ir.code.Return):242:244 -> a
    36:38:boolean note(com.android.tools.r8.ir.code.Instruction):176 -> a
    39:40:boolean note(com.android.tools.r8.ir.code.Instruction):178:179 -> a
    41:43:boolean note(com.android.tools.r8.ir.code.Monitor):249:251 -> a
    41:43:boolean note(com.android.tools.r8.ir.code.Instruction):179 -> a
    44:44:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage build():185:185 -> a
    45:45:boolean lambda$note$0(com.android.tools.r8.ir.code.Value):231:231 -> a
    46:46:boolean note(com.android.tools.r8.ir.code.InvokeMethodWithReceiver):231:231 -> a
    47:52:boolean note(com.android.tools.r8.ir.code.InvokeMethodWithReceiver):230:235 -> a
    53:53:boolean note(com.android.tools.r8.ir.code.InvokeMethodWithReceiver):232:232 -> a
com.android.tools.r8.ir.optimize.info.TopCallSiteOptimizationInfo -> com.android.tools.r8.ir.optimize.info.q:
    com.android.tools.r8.ir.optimize.info.TopCallSiteOptimizationInfo INSTANCE -> d
    1:1:void <clinit>():8:8 -> <clinit>
    1:1:void <init>():10:10 -> <init>
    boolean isTop() -> d
com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo -> com.android.tools.r8.ir.optimize.info.r:
    com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo parametersUsages -> i
    boolean $assertionsDisabled -> n
    int flags -> l
    int DEFAULT_FLAGS -> m
    java.util.BitSet nonNullParamOnNormalExits -> k
    java.util.BitSet nonNullParamOrThrow -> j
    java.util.Set initializedClassesOnNormalExit -> a
    com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo instanceInitializerInfo -> h
    int returnedArgument -> b
    com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo$InlinePreference inlining -> f
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement returnsObjectWithLowerBoundType -> e
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement returnsObjectWithUpperBoundType -> d
    com.android.tools.r8.ir.analysis.value.AbstractValue abstractReturnValue -> c
    com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo classInlinerEligibility -> g
    1:98:void <clinit>():22:119 -> <clinit>
    1:1:void <init>():124:124 -> <init>
    2:100:void <init>():24:122 -> <init>
    101:101:void <init>(com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo):130:130 -> <init>
    102:220:void <init>(com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo):24:142 -> <init>
    1:1:java.util.Set getInitializedClassesOnNormalExit():223:223 -> A
    1:1:boolean isInitializerEnablingJavaAssertions():293:293 -> B
    1:1:java.util.BitSet getNonNullParamOrThrow():238:238 -> C
    1:27:void adjustOptimizationInfoAfterRemovingThisParameter():471:497 -> D
    28:28:void markCheckNullReceiverBeforeAnySideEffect(boolean):445:445 -> D
    28:28:void adjustOptimizationInfoAfterRemovingThisParameter():497 -> D
    29:29:void adjustOptimizationInfoAfterRemovingThisParameter():500:500 -> D
    30:30:void markTriggerClassInitBeforeAnySideEffect(boolean):449:449 -> D
    30:30:void adjustOptimizationInfoAfterRemovingThisParameter():500 -> D
    31:50:void adjustOptimizationInfoAfterRemovingThisParameter():503:522 -> D
    1:1:void markAsPropagated():454:454 -> E
    1:1:void markCannotBeKept():199:199 -> F
    1:1:void markClassInitializerMayBePostponed():208:208 -> G
    1:2:void markForceInline():421:422 -> H
    1:1:void markInlinedIntoSingleCallSite():252:252 -> I
    1:1:void markMayNotHaveSideEffects():370:370 -> J
    1:2:void markNeverInline():435:436 -> K
    1:1:void markNeverReturnsNormally():382:382 -> L
    1:1:void markNeverReturnsNull():378:378 -> M
    1:1:void markReturnValueOnlyDependsOnArguments():374:374 -> N
    1:1:void markUseIdentifierNameString():441:441 -> O
    1:1:void setInitializerEnablingJavaAssertions():356:356 -> P
    1:2:void unsetForceInline():428:429 -> Q
    1:7:void fixupClassTypeReferences(java.util.function.Function,com.android.tools.r8.graph.AppView):147:153 -> a
    8:8:void setFlag(int):166:166 -> a
    8:8:void setFlag(int,boolean):159 -> a
    9:9:void clearFlag(int):170:170 -> a
    9:9:void setFlag(int,boolean):161 -> a
    10:10:com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo$ParameterUsage getParameterUsages(int):233:233 -> a
    11:11:void setParameterUsages(com.android.tools.r8.ir.optimize.info.ParameterUsagesInfo):332:332 -> a
    12:12:void setNonNullParamOnNormalExits(java.util.BitSet):340:340 -> a
    13:13:void setClassInlinerEligibility(com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo):348:348 -> a
    14:14:void setInstanceInitializerInfo(com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):352:352 -> a
    15:15:void markInitializesClassesOnNormalExit(java.util.Set):360:360 -> a
    16:18:void markReturnsAbstractValue(com.android.tools.r8.ir.analysis.value.AbstractValue):386:388 -> a
    19:28:void markReturnsObjectWithUpperBoundType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):392:401 -> a
    29:32:void markReturnsObjectWithUpperBoundType(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):400:403 -> a
    33:39:void markReturnsObjectWithLowerBoundType(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):407:413 -> a
    40:45:void markReturnsObjectWithLowerBoundType(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):410:415 -> a
    46:46:void markCheckNullReceiverBeforeAnySideEffect(boolean):445:445 -> a
    47:48:com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo mutableCopy():464:465 -> a
    1:1:void clearFlag(int):170:170 -> b
    2:2:java.util.BitSet getNonNullParamOnNormalExits():243:243 -> b
    3:3:void setNonNullParamOrThrow(java.util.BitSet):336:336 -> b
    4:4:void markTriggerClassInitBeforeAnySideEffect(boolean):449:449 -> b
    1:1:boolean isFlagSet(int):174:174 -> c
    2:2:boolean cannotBeKept():194:194 -> c
    3:3:void setReachabilitySensitive(boolean):344:344 -> c
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getDynamicUpperBoundType():213:213 -> d
    2:4:void markReturnsArgument(int):364:366 -> d
    1:1:void setFlag(int):166:166 -> e
    2:2:boolean checksNullReceiverBeforeAnySideEffect():313:313 -> e
    1:1:boolean returnValueHasBeenPropagated():459:459 -> f
    1:1:com.android.tools.r8.ir.analysis.value.AbstractValue getAbstractReturnValue():288:288 -> g
    1:1:boolean classInitializerMayBePostponed():204:204 -> h
    1:2:int getReturnedArgument():267:268 -> i
    1:1:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo getInstanceInitializerInfo():228:228 -> j
    1:1:boolean returnValueOnlyDependsOnArguments():328:328 -> k
    1:1:boolean neverInline():308:308 -> l
    1:1:boolean neverReturnsNormally():278:278 -> m
    1:1:boolean useIdentifierNameString():298:298 -> n
    1:1:boolean triggersClassInitBeforeAnySideEffect():318:318 -> o
    1:1:boolean returnsArgument():262:262 -> p
    boolean isUpdatableMethodOptimizationInfo() -> q
    1:1:boolean neverReturnsNull():273:273 -> r
    1:1:boolean isReachabilitySensitive():257:257 -> s
    com.android.tools.r8.ir.optimize.info.UpdatableMethodOptimizationInfo asUpdatableMethodOptimizationInfo() -> t
    1:1:boolean forceInline():303:303 -> u
    boolean isDefaultMethodOptimizationInfo() -> v
    1:1:boolean mayHaveSideEffects():323:323 -> w
    1:1:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement getDynamicLowerBoundType():218:218 -> x
    1:1:boolean hasBeenInlinedIntoSingleCallSite():248:248 -> y
    1:1:com.android.tools.r8.ir.optimize.classinliner.ClassInlinerEligibilityInfo getClassInlinerEligibility():283:283 -> z
com.android.tools.r8.ir.optimize.info.initializer.DefaultInstanceInitializerInfo -> com.android.tools.r8.ir.optimize.info.s.a:
    com.android.tools.r8.ir.optimize.info.initializer.DefaultInstanceInitializerInfo INSTANCE -> a
    1:1:void <clinit>():13:13 -> <clinit>
    1:1:void <init>():16:16 -> <init>
    com.android.tools.r8.graph.DexMethod getParent() -> a
    boolean instanceFieldInitializationMayDependOnEnvironment() -> b
    boolean mayHaveOtherSideEffectsThanInstanceFieldAssignments() -> c
    1:1:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet():34:34 -> d
    boolean receiverNeverEscapesOutsideConstructorChain() -> e
    1:1:com.android.tools.r8.ir.optimize.info.initializer.DefaultInstanceInitializerInfo getInstance():19:19 -> f
com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo -> com.android.tools.r8.ir.optimize.info.s.b:
    1:1:void <init>():10:10 -> <init>
    com.android.tools.r8.graph.DexMethod getParent() -> a
    boolean instanceFieldInitializationMayDependOnEnvironment() -> b
    boolean mayHaveOtherSideEffectsThanInstanceFieldAssignments() -> c
    com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet() -> d
    boolean receiverNeverEscapesOutsideConstructorChain() -> e
com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo -> com.android.tools.r8.ir.optimize.info.s.e:
    com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet -> b
    com.android.tools.r8.graph.DexMethod parent -> c
    boolean $assertionsDisabled -> d
    int data -> a
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$1):14:14 -> <init>
    2:6:void <init>(int,com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet,com.android.tools.r8.graph.DexMethod):24:28 -> <init>
    1:1:boolean verifyNoUnknownBits(int):36:36 -> a
    2:2:com.android.tools.r8.graph.DexMethod getParent():46:46 -> a
    1:1:boolean instanceFieldInitializationMayDependOnEnvironment():56:56 -> b
    1:1:boolean mayHaveOtherSideEffectsThanInstanceFieldAssignments():61:61 -> c
    1:1:com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet():51:51 -> d
    1:1:boolean receiverNeverEscapesOutsideConstructorChain():66:66 -> e
    1:1:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder builder():41:41 -> f
com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$1 -> com.android.tools.r8.ir.optimize.info.s.c:
com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder -> com.android.tools.r8.ir.optimize.info.s.d:
    com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet readSet -> b
    com.android.tools.r8.graph.DexMethod parent -> c
    boolean $assertionsDisabled -> d
    int data -> a
    1:1:void <clinit>():69:69 -> <clinit>
    1:7:void <init>():69:75 -> <init>
    1:1:boolean isTrivial():79:79 -> a
    1:1:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo build():159 -> a
    2:3:com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo build():160:161 -> a
    4:11:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder markFieldAsRead(com.android.tools.r8.graph.DexEncodedField):83:90 -> a
    12:12:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder merge(com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):116:116 -> a
    13:16:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder markFieldsAsRead(com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet):95:98 -> a
    13:16:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder merge(com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):116 -> a
    17:17:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder markAllFieldsAsRead():111:111 -> a
    17:17:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder markFieldsAsRead(com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet):99 -> a
    17:17:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder merge(com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):116 -> a
    18:22:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder markFieldsAsRead(com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet):101:105 -> a
    18:22:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder merge(com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):116 -> a
    23:27:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder merge(com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):117:121 -> a
    28:28:boolean com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo.receiverMayEscapeOutsideConstructorChain():50:50 -> a
    28:28:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder merge(com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):123 -> a
    29:29:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder merge(com.android.tools.r8.ir.optimize.info.initializer.InstanceInitializerInfo):124:124 -> a
    30:30:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder setParent(com.android.tools.r8.graph.DexMethod):153:153 -> a
    31:31:boolean hasParent():149:149 -> a
    31:31:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder setParent(com.android.tools.r8.graph.DexMethod):153 -> a
    32:33:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder setParent(com.android.tools.r8.graph.DexMethod):153:154 -> a
    1:1:boolean hasParent():149:149 -> b
    1:1:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder markAllFieldsAsRead():111:111 -> c
    1:1:boolean mayHaveOtherSideEffectsThanInstanceFieldAssignments():135:135 -> d
    1:1:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder setInstanceFieldInitializationMayDependOnEnvironment():130:130 -> e
    1:1:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder setMayHaveOtherSideEffectsThanInstanceFieldAssignments():139:139 -> f
    1:1:com.android.tools.r8.ir.optimize.info.initializer.NonTrivialInstanceInitializerInfo$Builder setReceiverMayEscapeOutsideConstructorChain():144:144 -> g
com.android.tools.r8.ir.optimize.inliner.DefaultInliningReasonStrategy -> com.android.tools.r8.ir.optimize.v0.a:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.conversion.CallSiteInformation callSiteInformation -> b
    com.android.tools.r8.ir.optimize.Inliner inliner -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():15:15 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallSiteInformation,com.android.tools.r8.ir.optimize.Inliner):24:27 -> <init>
    1:19:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):33:51 -> a
    20:22:boolean isDoubleInliningTarget(com.android.tools.r8.graph.DexEncodedMethod):61:63 -> a
    20:22:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):53 -> a
    23:25:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):54:56 -> a
    26:27:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):36:37 -> a
com.android.tools.r8.ir.optimize.inliner.FixedInliningReasonStrategy -> com.android.tools.r8.ir.optimize.v0.b:
    com.android.tools.r8.ir.optimize.Inliner$Reason reason -> a
    1:2:void <init>(com.android.tools.r8.ir.optimize.Inliner$Reason):15:16 -> <init>
    1:1:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):22:22 -> a
com.android.tools.r8.ir.optimize.inliner.InlinerUtils -> com.android.tools.r8.ir.optimize.v0.c:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():14:14 -> <clinit>
    1:4:void collectAllMonitorEnterValues(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.Set):20:23 -> a
    5:9:void addMonitorEnterValue(com.android.tools.r8.ir.code.Value,java.util.Set,java.util.Set):32:36 -> a
    10:10:void addMonitorEnterValue(com.android.tools.r8.ir.code.Value,java.util.Set,java.util.Set):34:34 -> a
com.android.tools.r8.ir.optimize.inliner.InliningIRProvider -> com.android.tools.r8.ir.optimize.v0.d:
    com.android.tools.r8.ir.code.ValueNumberGenerator valueNumberGenerator -> c
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Map cache -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.DexEncodedMethod context -> b
    1:1:void <clinit>():17:17 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):25:25 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):23:28 -> <init>
    1:1:com.android.tools.r8.ir.code.IRCode getAndCacheInliningIR(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):42:42 -> a
    2:3:void cacheInliningIR(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.IRCode):48:49 -> a
    2:3:com.android.tools.r8.ir.code.IRCode getAndCacheInliningIR(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):43 -> a
    4:4:boolean verifyIRCacheIsEmpty():53:53 -> a
    1:7:com.android.tools.r8.ir.code.IRCode getInliningIR(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):32:38 -> b
com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy -> com.android.tools.r8.ir.optimize.v0.e:
    com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod) -> a
com.android.tools.r8.ir.optimize.inliner.NopWhyAreYouNotInliningReporter -> com.android.tools.r8.ir.optimize.v0.f:
    com.android.tools.r8.ir.optimize.inliner.NopWhyAreYouNotInliningReporter INSTANCE -> a
    1:1:void <clinit>():15:15 -> <clinit>
    1:1:void <init>():18:18 -> <init>
    1:1:com.android.tools.r8.ir.optimize.inliner.NopWhyAreYouNotInliningReporter getInstance():21:21 -> A
    void reportBlacklisted() -> a
    void reportIncorrectArity(int,int) -> a
    void reportInvalidInliningReason(com.android.tools.r8.ir.optimize.Inliner$Reason,java.util.Set) -> a
    void reportUnsafeConstructorInliningDueToFinalFieldAssignment(com.android.tools.r8.ir.code.InstancePut) -> a
    void reportUnsafeConstructorInliningDueToIndirectConstructorCall(com.android.tools.r8.ir.code.InvokeDirect) -> a
    void reportUnsafeConstructorInliningDueToUninitializedObjectUse(com.android.tools.r8.ir.code.Instruction) -> a
    void reportCallerNotSameClass() -> b
    void reportPotentialExplosionInExceptionalControlFlowResolutionBlocks(int,int) -> b
    void reportCallerNotSameNest() -> c
    void reportWillExceedInstructionBudget(int,int) -> c
    void reportCallerNotSamePackage() -> d
    void reportWillExceedMaxInliningDepth(int,int) -> d
    void reportCallerNotSubtype() -> e
    void reportWillExceedMonitorEnterValuesBudget(int,int) -> e
    void reportClasspathMethod() -> f
    void reportInaccessible() -> g
    void reportInlineeDoesNotHaveCode() -> h
    void reportInlineeNotInliningCandidate() -> i
    void reportInlineeNotProcessed() -> j
    void reportInlineeNotSimple() -> k
    void reportInlineeRefersToClassesNotInMainDex() -> l
    void reportInliningAcrossFeatureSplit() -> m
    void reportInstructionBudgetIsExceeded() -> n
    void reportInvalidDoubleInliningCandidate() -> o
    void reportLibraryMethod() -> p
    void reportMarkedAsNeverInline() -> q
    void reportMustTriggerClassInitialization() -> r
    void reportNoInliningIntoConstructorsWhenGeneratingClassFiles() -> s
    void reportPinned() -> t
    void reportProcessedConcurrently() -> u
    void reportReceiverDefinitelyNull() -> v
    void reportReceiverMaybeNull() -> w
    void reportRecursiveMethod() -> x
    void reportUnknownTarget() -> y
    boolean unsetReasonHasBeenReportedFlag() -> z
com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter -> com.android.tools.r8.ir.optimize.v0.g:
    1:1:void <init>():18:18 -> <init>
    void reportBlacklisted() -> a
    void reportIncorrectArity(int,int) -> a
    void reportInvalidInliningReason(com.android.tools.r8.ir.optimize.Inliner$Reason,java.util.Set) -> a
    void reportUnsafeConstructorInliningDueToFinalFieldAssignment(com.android.tools.r8.ir.code.InstancePut) -> a
    void reportUnsafeConstructorInliningDueToIndirectConstructorCall(com.android.tools.r8.ir.code.InvokeDirect) -> a
    void reportUnsafeConstructorInliningDueToUninitializedObjectUse(com.android.tools.r8.ir.code.Instruction) -> a
    1:5:com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter createFor(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):22:26 -> a
    6:20:void handleInvokeWithUnknownTarget(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):31:45 -> a
    void reportCallerNotSameClass() -> b
    void reportPotentialExplosionInExceptionalControlFlowResolutionBlocks(int,int) -> b
    void reportCallerNotSameNest() -> c
    void reportWillExceedInstructionBudget(int,int) -> c
    void reportCallerNotSamePackage() -> d
    void reportWillExceedMaxInliningDepth(int,int) -> d
    void reportCallerNotSubtype() -> e
    void reportWillExceedMonitorEnterValuesBudget(int,int) -> e
    void reportClasspathMethod() -> f
    void reportInaccessible() -> g
    void reportInlineeDoesNotHaveCode() -> h
    void reportInlineeNotInliningCandidate() -> i
    void reportInlineeNotProcessed() -> j
    void reportInlineeNotSimple() -> k
    void reportInlineeRefersToClassesNotInMainDex() -> l
    void reportInliningAcrossFeatureSplit() -> m
    void reportInstructionBudgetIsExceeded() -> n
    void reportInvalidDoubleInliningCandidate() -> o
    void reportLibraryMethod() -> p
    void reportMarkedAsNeverInline() -> q
    void reportMustTriggerClassInitialization() -> r
    void reportNoInliningIntoConstructorsWhenGeneratingClassFiles() -> s
    void reportPinned() -> t
    void reportProcessedConcurrently() -> u
    void reportReceiverDefinitelyNull() -> v
    void reportReceiverMaybeNull() -> w
    void reportRecursiveMethod() -> x
    void reportUnknownTarget() -> y
    boolean unsetReasonHasBeenReportedFlag() -> z
com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporterImpl -> com.android.tools.r8.ir.optimize.v0.h:
    com.android.tools.r8.graph.DexEncodedMethod callee -> a
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.DexEncodedMethod context -> b
    java.io.PrintStream output -> c
    boolean reasonHasBeenReported -> d
    1:1:void <clinit>():16:16 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):25:25 -> <init>
    2:8:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):22:28 -> <init>
    1:11:void print(java.lang.String):32:42 -> a
    12:12:void printWithExceededThreshold(java.lang.String,java.lang.String,int,int):47:47 -> a
    13:13:void reportBlacklisted():52:52 -> a
    14:14:void reportIncorrectArity(int,int):92:92 -> a
    15:19:void reportInvalidInliningReason(com.android.tools.r8.ir.optimize.Inliner$Reason,java.util.Set):146:150 -> a
    20:20:void reportInvalidInliningReason(com.android.tools.r8.ir.optimize.Inliner$Reason,java.util.Set):146:146 -> a
    21:25:void reportUnsafeConstructorInliningDueToFinalFieldAssignment(com.android.tools.r8.ir.code.InstancePut):219:223 -> a
    26:26:void reportUnsafeConstructorInliningDueToFinalFieldAssignment(com.android.tools.r8.ir.code.InstancePut):219:219 -> a
    27:29:void reportUnsafeConstructorInliningDueToIndirectConstructorCall(com.android.tools.r8.ir.code.InvokeDirect):229:231 -> a
    30:30:void reportUnsafeConstructorInliningDueToIndirectConstructorCall(com.android.tools.r8.ir.code.InvokeDirect):229:229 -> a
    31:31:void reportUnsafeConstructorInliningDueToUninitializedObjectUse(com.android.tools.r8.ir.code.Instruction):237:237 -> a
    1:1:void reportCallerNotSameClass():57:57 -> b
    2:2:void reportPotentialExplosionInExceptionalControlFlowResolutionBlocks(int,int):184:184 -> b
    1:1:void reportCallerNotSameNest():62:62 -> c
    2:2:void reportWillExceedInstructionBudget(int,int):242:242 -> c
    1:1:void reportCallerNotSamePackage():67:67 -> d
    2:2:void reportWillExceedMaxInliningDepth(int,int):251:251 -> d
    1:1:void reportCallerNotSubtype():74:74 -> e
    2:2:void reportWillExceedMonitorEnterValuesBudget(int,int):261:261 -> e
    1:1:void reportClasspathMethod():82:82 -> f
    1:1:void reportInaccessible():87:87 -> g
    1:1:void reportInlineeDoesNotHaveCode():102:102 -> h
    1:1:void reportInlineeNotInliningCandidate():107:107 -> i
    1:1:void reportInlineeNotProcessed():112:112 -> j
    1:1:void reportInlineeNotSimple():117:117 -> k
    1:1:void reportInlineeRefersToClassesNotInMainDex():124:124 -> l
    1:1:void reportInliningAcrossFeatureSplit():131:131 -> m
    1:1:void reportInstructionBudgetIsExceeded():136:136 -> n
    1:1:void reportInvalidDoubleInliningCandidate():141:141 -> o
    1:1:void reportLibraryMethod():156:156 -> p
    1:1:void reportMarkedAsNeverInline():161:161 -> q
    1:1:void reportMustTriggerClassInitialization():166:166 -> r
    1:1:void reportNoInliningIntoConstructorsWhenGeneratingClassFiles():173:173 -> s
    1:1:void reportPinned():178:178 -> t
    1:1:void reportProcessedConcurrently():193:193 -> u
    1:1:void reportReceiverDefinitelyNull():199:199 -> v
    1:1:void reportReceiverMaybeNull():204:204 -> w
    1:1:void reportRecursiveMethod():209:209 -> x
    1:1:void reportUnknownTarget():214:214 -> y
    1:2:boolean unsetReasonHasBeenReportedFlag():270:271 -> z
com.android.tools.r8.ir.optimize.lambda.CaptureSignature -> com.android.tools.r8.ir.optimize.w0.a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList SINGLE_LIST -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList EMPTY_LIST -> a
    boolean $assertionsDisabled -> c
    1:3:void <clinit>():36:38 -> <clinit>
    1:15:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList getReverseCaptureMapping(com.android.tools.r8.graph.DexType[]):49:63 -> a
    16:20:boolean verifyMapping(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):152:156 -> a
    16:20:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList getReverseCaptureMapping(com.android.tools.r8.graph.DexType[]):63 -> a
    21:21:int lambda$getReverseCaptureMapping$0(com.android.tools.r8.graph.DexType[],java.lang.Integer):62:62 -> a
    22:42:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):69:89 -> a
    43:47:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):73:77 -> a
    48:62:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):71:85 -> a
    63:69:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):81:87 -> a
    70:70:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):79:79 -> a
    71:71:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):75:75 -> a
    72:80:java.lang.String getCaptureSignature(int,java.util.function.IntFunction):98:106 -> a
    81:81:java.lang.String getCaptureSignature(java.util.List):111:111 -> a
    82:82:com.android.tools.r8.graph.DexType lambda$getCaptureSignature$1(java.util.List,int):111:111 -> a
    83:83:java.lang.String getCaptureSignature(com.android.tools.r8.graph.DexTypeList):116:116 -> a
    84:84:com.android.tools.r8.graph.DexType lambda$getCaptureSignature$2(com.android.tools.r8.graph.DexTypeList,int):116:116 -> a
    85:110:int mapFieldIntoCaptureIndex(java.lang.String,java.util.List,com.android.tools.r8.graph.DexField):123:148 -> a
com.android.tools.r8.ir.optimize.lambda.CodeProcessor -> com.android.tools.r8.ir.optimize.w0.d:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.DexEncodedMethod context -> j
    com.android.tools.r8.ir.code.IRCode code -> g
    com.android.tools.r8.ir.code.InstructionListIterator instructions -> i
    com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy NoOp -> k
    boolean $assertionsDisabled -> l
    java.util.function.Function strategyProvider -> d
    com.android.tools.r8.kotlin.Kotlin kotlin -> c
    com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor lambdaChecker -> e
    java.util.ListIterator blocks -> h
    com.android.tools.r8.graph.DexEncodedMethod method -> f
    1:29:void <clinit>():47:75 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.function.Function,com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):160:160 -> <init>
    2:11:void <init>(com.android.tools.r8.graph.AppView,java.util.function.Function,com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):169:178 -> <init>
    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstanceGet) -> a
    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstancePut) -> a
    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InvokeMethod) -> a
    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.NewInstance) -> a
    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticGet) -> a
    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticPut) -> a
    1:2:com.android.tools.r8.ir.code.InstructionListIterator instructions():182:183 -> a
    3:3:boolean shouldRewrite(com.android.tools.r8.graph.DexType):206:206 -> a
    4:23:java.lang.Void handleInvoke(com.android.tools.r8.ir.code.Invoke):211:230 -> a
    4:23:java.lang.Object handleInvoke(com.android.tools.r8.ir.code.Invoke):47 -> a
    24:24:boolean shouldRewrite(com.android.tools.r8.graph.DexMethod):201:201 -> a
    24:24:java.lang.Void handleInvoke(com.android.tools.r8.ir.code.Invoke):230 -> a
    24:24:java.lang.Object handleInvoke(com.android.tools.r8.ir.code.Invoke):47 -> a
    25:34:java.lang.Void handleInvoke(com.android.tools.r8.ir.code.Invoke):231:240 -> a
    25:34:java.lang.Object handleInvoke(com.android.tools.r8.ir.code.Invoke):47 -> a
    35:39:java.lang.Void visit(com.android.tools.r8.ir.code.NewInstance):246:250 -> a
    35:39:java.lang.Object visit(com.android.tools.r8.ir.code.NewInstance):47 -> a
    40:40:java.lang.Void visit(com.android.tools.r8.ir.code.CheckCast):258:258 -> a
    40:40:java.lang.Object visit(com.android.tools.r8.ir.code.CheckCast):47 -> a
    41:41:java.lang.Void visit(com.android.tools.r8.ir.code.NewArrayEmpty):264:264 -> a
    41:41:java.lang.Object visit(com.android.tools.r8.ir.code.NewArrayEmpty):47 -> a
    42:42:java.lang.Void visit(com.android.tools.r8.ir.code.ConstClass):270:270 -> a
    42:42:java.lang.Object visit(com.android.tools.r8.ir.code.ConstClass):47 -> a
    43:43:java.lang.Void visit(com.android.tools.r8.ir.code.ConstMethodType):276:276 -> a
    43:43:java.lang.Object visit(com.android.tools.r8.ir.code.ConstMethodType):47 -> a
    44:44:java.lang.Void visit(com.android.tools.r8.ir.code.ConstMethodHandle):282:282 -> a
    44:44:java.lang.Object visit(com.android.tools.r8.ir.code.ConstMethodHandle):47 -> a
    45:47:java.lang.Void visit(com.android.tools.r8.ir.code.InstanceGet):288:290 -> a
    45:47:java.lang.Object visit(com.android.tools.r8.ir.code.InstanceGet):47 -> a
    48:48:boolean shouldRewrite(com.android.tools.r8.graph.DexField):197:197 -> a
    48:48:java.lang.Void visit(com.android.tools.r8.ir.code.InstanceGet):291 -> a
    48:48:java.lang.Object visit(com.android.tools.r8.ir.code.InstanceGet):47 -> a
    49:57:java.lang.Void visit(com.android.tools.r8.ir.code.InstanceGet):293:301 -> a
    49:57:java.lang.Object visit(com.android.tools.r8.ir.code.InstanceGet):47 -> a
    58:60:java.lang.Void visit(com.android.tools.r8.ir.code.InstancePut):307:309 -> a
    58:60:java.lang.Object visit(com.android.tools.r8.ir.code.InstancePut):47 -> a
    61:61:boolean shouldRewrite(com.android.tools.r8.graph.DexField):197:197 -> a
    61:61:java.lang.Void visit(com.android.tools.r8.ir.code.InstancePut):310 -> a
    61:61:java.lang.Object visit(com.android.tools.r8.ir.code.InstancePut):47 -> a
    62:70:java.lang.Void visit(com.android.tools.r8.ir.code.InstancePut):312:320 -> a
    62:70:java.lang.Object visit(com.android.tools.r8.ir.code.InstancePut):47 -> a
    71:73:java.lang.Void visit(com.android.tools.r8.ir.code.StaticGet):326:328 -> a
    71:73:java.lang.Object visit(com.android.tools.r8.ir.code.StaticGet):47 -> a
    74:74:boolean shouldRewrite(com.android.tools.r8.graph.DexField):197:197 -> a
    74:74:java.lang.Void visit(com.android.tools.r8.ir.code.StaticGet):329 -> a
    74:74:java.lang.Object visit(com.android.tools.r8.ir.code.StaticGet):47 -> a
    75:79:java.lang.Void visit(com.android.tools.r8.ir.code.StaticGet):331:335 -> a
    75:79:java.lang.Object visit(com.android.tools.r8.ir.code.StaticGet):47 -> a
    80:82:java.lang.Void visit(com.android.tools.r8.ir.code.StaticPut):342:344 -> a
    80:82:java.lang.Object visit(com.android.tools.r8.ir.code.StaticPut):47 -> a
    83:83:boolean shouldRewrite(com.android.tools.r8.graph.DexField):197:197 -> a
    83:83:java.lang.Void visit(com.android.tools.r8.ir.code.StaticPut):345 -> a
    83:83:java.lang.Object visit(com.android.tools.r8.ir.code.StaticPut):47 -> a
    84:88:java.lang.Void visit(com.android.tools.r8.ir.code.StaticPut):347:351 -> a
    84:88:java.lang.Object visit(com.android.tools.r8.ir.code.StaticPut):47 -> a
    1:5:void processCode():187:191 -> b
com.android.tools.r8.ir.optimize.lambda.CodeProcessor$1 -> com.android.tools.r8.ir.optimize.w0.b:
    1:1:void <init>():76:76 -> <init>
    boolean isValidInvoke(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod) -> a
    boolean isValidNewInstance(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.NewInstance) -> a
    boolean isValidStaticFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> a
    1:1:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.NewInstance):114:114 -> a
    2:2:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):119:119 -> a
    3:3:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InstanceGet):124:124 -> a
    4:4:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.StaticGet):129:129 -> a
    boolean isValidInstanceFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> b
    boolean isValidStaticFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> c
    boolean isValidInstanceFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> d
com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy -> com.android.tools.r8.ir.optimize.w0.c:
    boolean isValidInvoke(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod) -> a
    boolean isValidNewInstance(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.NewInstance) -> a
    boolean isValidStaticFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> a
    void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InstanceGet) -> a
    void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod) -> a
    void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.NewInstance) -> a
    void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.StaticGet) -> a
    boolean isValidInstanceFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> b
    boolean isValidStaticFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> c
    boolean isValidInstanceFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> d
com.android.tools.r8.ir.optimize.lambda.LambdaGroup -> com.android.tools.r8.ir.optimize.w0.g:
    java.util.Map lambdas -> c
    com.android.tools.r8.ir.optimize.lambda.LambdaGroupId id -> a
    com.android.tools.r8.graph.DexType classType -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():39:39 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroupId):63:63 -> <init>
    2:15:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroupId):51:64 -> <init>
    com.android.tools.r8.ir.optimize.lambda.LambdaGroupClassBuilder getBuilder(com.android.tools.r8.graph.DexItemFactory) -> a
    com.android.tools.r8.utils.ThrowingConsumer lambdaClassValidator(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping) -> a
    1:3:void forEachLambda(java.util.function.Consumer):77:79 -> a
    4:6:boolean anyLambda(java.util.function.Predicate):84:86 -> a
    7:8:boolean shouldAddToMainDex(com.android.tools.r8.graph.AppView):96:97 -> a
    9:9:boolean containsLambda(com.android.tools.r8.graph.DexType):105:105 -> a
    10:11:void add(com.android.tools.r8.graph.DexProgramClass):131:132 -> a
    12:24:void compact():141:153 -> a
    25:35:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):168:178 -> a
    36:49:java.lang.String createHash(java.util.List):189:202 -> a
    36:49:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):179 -> a
    50:50:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):179:179 -> a
    51:58:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):174:181 -> a
    59:59:java.lang.String createHash(java.util.List):204:204 -> a
    59:59:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):179 -> a
    60:62:boolean verifyLambdaIds(boolean):210:212 -> a
    com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy getCodeStrategy() -> b
    1:2:java.util.List lambdaCaptureFields(com.android.tools.r8.graph.DexType):114:115 -> b
    1:2:com.android.tools.r8.graph.DexType getGroupClassType():68:69 -> c
    3:4:int lambdaId(com.android.tools.r8.graph.DexType):109:110 -> c
    java.lang.String getGroupSuffix() -> d
    1:4:com.android.tools.r8.graph.DexEncodedField lambdaSingletonField(com.android.tools.r8.graph.DexType):119:122 -> d
    java.lang.String getTypePackage() -> e
    1:2:void remove(com.android.tools.r8.graph.DexType):136:137 -> e
    1:1:boolean isTrivial():127:127 -> f
    1:1:int size():73:73 -> g
com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo -> com.android.tools.r8.ir.optimize.w0.e:
    com.android.tools.r8.graph.DexProgramClass clazz -> b
    int id -> a
    1:3:void <init>(int,com.android.tools.r8.graph.DexProgramClass):57:59 -> <init>
com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError -> com.android.tools.r8.ir.optimize.w0.f:
    boolean reportable -> a
    1:2:void <init>(java.lang.String,boolean):225:226 -> <init>
com.android.tools.r8.ir.optimize.lambda.LambdaGroupClassBuilder -> com.android.tools.r8.ir.optimize.w0.h:
    java.lang.String origin -> n
    com.android.tools.r8.graph.DexItemFactory factory -> m
    com.android.tools.r8.ir.optimize.lambda.LambdaGroup group -> l
    1:4:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroup,com.android.tools.r8.graph.DexItemFactory,java.lang.String):31:34 -> <init>
    com.android.tools.r8.graph.ClassAccessFlags buildAccessFlags() -> a
    com.android.tools.r8.graph.DexEncodedField[] buildStaticFields(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback) -> a
    com.android.tools.r8.graph.DexAnnotationSet buildAnnotations() -> b
    1:21:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):39:59 -> b
    com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods() -> c
    com.android.tools.r8.graph.EnclosingMethodAttribute buildEnclosingMethodAttribute() -> d
    java.util.List buildInnerClasses() -> e
    com.android.tools.r8.graph.DexEncodedField[] buildInstanceFields() -> f
    com.android.tools.r8.graph.DexTypeList buildInterfaces() -> g
    com.android.tools.r8.graph.DexEncodedMethod[] buildVirtualMethods() -> h
    com.android.tools.r8.graph.DexType getSuperClassType() -> i
com.android.tools.r8.ir.optimize.lambda.LambdaGroupId -> com.android.tools.r8.ir.optimize.w0.i:
    com.android.tools.r8.ir.optimize.lambda.LambdaGroup createGroup() -> a
com.android.tools.r8.ir.optimize.lambda.LambdaMerger -> com.android.tools.r8.ir.optimize.w0.q:
    java.util.Map lambdas -> a
    com.android.tools.r8.kotlin.Kotlin kotlin -> f
    com.android.tools.r8.ir.optimize.lambda.LambdaMerger$Mode mode -> h
    java.util.Map groups -> b
    java.util.Set invalidatedLambdas -> c
    java.util.Set methodsToReprocess -> d
    boolean $assertionsDisabled -> k
    com.android.tools.r8.graph.AppView appView -> e
    com.android.tools.r8.DiagnosticsHandler reporter -> g
    com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor lambdaInvalidator -> i
    com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor lambdaChecker -> j
    1:1:void <clinit>():90:90 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):192:192 -> <init>
    2:43:void <init>(com.android.tools.r8.graph.AppView):159:200 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy strategyProvider(com.android.tools.r8.graph.DexType):0:0 -> a
    1:1:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy access$700(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexType):90 -> a
    2:2:com.android.tools.r8.ir.optimize.lambda.LambdaGroup getLambdaGroup(com.android.tools.r8.graph.DexType):218:218 -> a
    2:2:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy strategyProvider(com.android.tools.r8.graph.DexType):470 -> a
    2:2:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy access$700(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexType):90 -> a
    3:3:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy strategyProvider(com.android.tools.r8.graph.DexType):471:471 -> a
    3:3:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy access$700(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexType):90 -> a
    4:4:com.android.tools.r8.graph.AppView access$200(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):90:90 -> a
    5:5:void invalidateLambda(com.android.tools.r8.graph.DexType):210:210 -> a
    6:6:void queueForProcessing(com.android.tools.r8.graph.DexEncodedMethod):222:222 -> a
    6:6:void access$600(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod):90 -> a
    7:40:void collectGroupCandidates(com.android.tools.r8.graph.DexApplication):230:263 -> a
    41:41:int lambda$collectGroupCandidates$3(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):238:238 -> a
    42:43:void analyzeCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):277:278 -> a
    44:45:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.Inliner):293:294 -> a
    46:47:void rewriteCodeForInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):304:305 -> a
    48:57:void applyLambdaClassMapping(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):316:325 -> a
    58:75:com.android.tools.r8.com.google.common.collect.BiMap finalizeLambdaGroups(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):392:409 -> a
    58:75:void applyLambdaClassMapping(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):329 -> a
    76:96:void applyLambdaClassMapping(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):333:353 -> a
    97:97:java.util.Set com.android.tools.r8.com.google.common.collect.HashBiMap.values():469:469 -> a
    97:97:void applyLambdaClassMapping(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):357 -> a
    98:106:void applyLambdaClassMapping(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):357:365 -> a
    107:107:void applyLambdaClassMapping(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):364:364 -> a
    108:108:void lambda$applyLambdaClassMapping$5(com.android.tools.r8.graph.DexEncodedMethod):354:354 -> a
    109:128:void analyzeLambdaClassesStructure(java.util.concurrent.ExecutorService):369:388 -> a
    129:129:void lambda$analyzeLambdaClassesStructure$7(java.util.List,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):374:374 -> a
    130:135:void lambda$analyzeLambdaClassesStructure$6(com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):376:381 -> a
    136:141:void lambda$analyzeLambdaClassesStructure$6(com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):379:384 -> a
    142:142:void invalidateLambda(com.android.tools.r8.graph.DexType):210:210 -> a
    142:142:void lambda$analyzeLambdaClassesStructure$6(com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):384 -> a
    143:149:void removeTrivialLambdaGroups():415:421 -> a
    150:150:void lambda$removeTrivialLambdaGroups$8(com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):421:421 -> a
    151:159:void rewriteLambdaReferences(com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):429:437 -> a
    160:161:void analyzeClass(com.android.tools.r8.graph.DexProgramClass):441:442 -> a
    162:163:void com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor.accept(com.android.tools.r8.graph.DexTypeList):108:109 -> a
    162:163:void analyzeClass(com.android.tools.r8.graph.DexProgramClass):442 -> a
    164:186:void analyzeClass(com.android.tools.r8.graph.DexProgramClass):443:465 -> a
    187:187:void com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor.accept(com.android.tools.r8.graph.DexTypeList):108:108 -> a
    187:187:void analyzeClass(com.android.tools.r8.graph.DexProgramClass):442 -> a
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor access$500(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):90:90 -> b
    2:2:boolean isMergeableLambda(com.android.tools.r8.graph.DexType):214:214 -> b
    3:3:boolean lambda$collectGroupCandidates$1(com.android.tools.r8.graph.DexProgramClass):231:231 -> b
    4:4:com.android.tools.r8.graph.DexEncodedMethod lambda$rewriteLambdaReferences$9(com.android.tools.r8.graph.DexEncodedMethod):434:434 -> b
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor access$800(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):90:90 -> c
    2:2:void lambda$new$0(com.android.tools.r8.graph.DexType):205:205 -> c
    3:5:boolean lambda$collectGroupCandidates$2(com.android.tools.r8.graph.DexProgramClass):234:236 -> c
    6:6:boolean com.android.tools.r8.kotlin.KotlinSyntheticClass.isLambda():66:66 -> c
    6:6:boolean lambda$collectGroupCandidates$2(com.android.tools.r8.graph.DexProgramClass):236 -> c
    7:8:boolean lambda$collectGroupCandidates$2(com.android.tools.r8.graph.DexProgramClass):236:237 -> c
    1:1:java.util.Map access$900(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):90:90 -> d
    2:14:void lambda$collectGroupCandidates$4(com.android.tools.r8.graph.DexProgramClass):242:254 -> d
    15:15:void lambda$collectGroupCandidates$4(com.android.tools.r8.graph.DexProgramClass):249:249 -> d
com.android.tools.r8.ir.optimize.lambda.LambdaMerger$1 -> com.android.tools.r8.ir.optimize.w0.j:
com.android.tools.r8.ir.optimize.lambda.LambdaMerger$AnalysisStrategy -> com.android.tools.r8.ir.optimize.w0.k:
    com.android.tools.r8.ir.optimize.lambda.LambdaMerger this$0 -> m
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$1):474:474 -> <init>
    2:6:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):475:479 -> <init>
    7:7:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):476:476 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy lambda$new$0(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexType):478:478 -> a
    2:2:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InvokeMethod):486:486 -> a
    3:3:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.NewInstance):491:491 -> a
    4:4:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstancePut):496:496 -> a
    5:5:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstanceGet):501:501 -> a
    6:6:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticPut):506:506 -> a
    7:7:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticGet):511:511 -> a
com.android.tools.r8.ir.optimize.lambda.LambdaMerger$AnalyzeMode -> com.android.tools.r8.ir.optimize.w0.l:
    com.android.tools.r8.ir.optimize.lambda.LambdaMerger this$0 -> a
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):100:100 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$1):100:100 -> <init>
    1:1:void analyzeCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):104:104 -> a
com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyMode -> com.android.tools.r8.ir.optimize.w0.m:
    java.util.Map lambdaGroups -> a
    com.android.tools.r8.ir.optimize.lambda.LambdaMerger this$0 -> c
    com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer optimizationInfoFixer -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():108:108 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,java.util.Map,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer):115:117 -> <init>
    1:1:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.Inliner,com.android.tools.r8.graph.DexEncodedMethod):123:123 -> a
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    2:2:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.Inliner,com.android.tools.r8.graph.DexEncodedMethod):123 -> a
    3:33:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.Inliner,com.android.tools.r8.graph.DexEncodedMethod):123:153 -> a
com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy -> com.android.tools.r8.ir.optimize.w0.n:
    boolean $assertionsDisabled -> o
    com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer optimizationInfoFixer -> m
    java.util.Set typeAffectedValues -> n
    1:1:void <clinit>():515:515 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$1):515:515 -> <init>
    2:4:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer):527:529 -> <init>
    5:5:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer):526:526 -> <init>
    6:20:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer):519:533 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy lambda$new$0(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexType):528:528 -> a
    2:4:void recordTypeHasChanged(com.android.tools.r8.ir.code.Value):537:539 -> a
    5:5:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InvokeMethod):597:597 -> a
    6:6:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.NewInstance):602:602 -> a
    7:7:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstancePut):609:609 -> a
    8:8:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstanceGet):614:614 -> a
    9:9:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticPut):621:621 -> a
    10:10:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticGet):626:626 -> a
    1:28:void processCode():546:573 -> b
    29:45:void processCode():572:588 -> b
    46:46:boolean typeMayHaveChanged(com.android.tools.r8.ir.code.Value):592:592 -> b
com.android.tools.r8.ir.optimize.lambda.LambdaMerger$LambdaMergerOptimizationInfoFixer -> com.android.tools.r8.ir.optimize.w0.o:
    java.util.Map lambdaGroupsClasses -> a
    com.android.tools.r8.ir.optimize.lambda.LambdaMerger this$0 -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():630:630 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,java.util.Map):635:636 -> <init>
    1:5:void fixup(com.android.tools.r8.graph.DexEncodedField):653:657 -> a
    6:12:void fixup(com.android.tools.r8.graph.DexEncodedMethod):663:669 -> a
    1:1:java.lang.Object apply(java.lang.Object):630:630 -> apply
    2:6:com.android.tools.r8.graph.DexType apply(com.android.tools.r8.graph.DexType):641:645 -> apply
    2:6:java.lang.Object apply(java.lang.Object):630 -> apply
com.android.tools.r8.ir.optimize.lambda.LambdaMerger$Mode -> com.android.tools.r8.ir.optimize.w0.p:
    1:1:void <init>():92:92 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$1):92:92 -> <init>
    void analyzeCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode) -> a
    void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.Inliner,com.android.tools.r8.graph.DexEncodedMethod) -> a
com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor -> com.android.tools.r8.ir.optimize.w0.r:
    java.util.function.Consumer onLambdaType -> c
    java.util.function.Predicate isLambdaType -> b
    boolean $assertionsDisabled -> d
    com.android.tools.r8.graph.DexItemFactory factory -> a
    1:1:void <clinit>():31:31 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.DexItemFactory,java.util.function.Predicate,java.util.function.Consumer):37:40 -> <init>
    1:4:void accept(com.android.tools.r8.graph.DexCallSite):44:47 -> a
    5:28:void accept(com.android.tools.r8.graph.DexValue):52:75 -> a
    29:31:void accept(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):89:91 -> a
    32:35:void accept(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):96:99 -> a
    36:37:void accept(com.android.tools.r8.graph.DexProto):103:104 -> a
    38:39:void accept(com.android.tools.r8.graph.DexTypeList):108:109 -> a
    38:39:void accept(com.android.tools.r8.graph.DexProto):104 -> a
    40:40:void accept(com.android.tools.r8.graph.DexAnnotationSet):114:114 -> a
    41:41:void accept(com.android.tools.r8.graph.DexAnnotation):124:124 -> a
    41:41:void accept(com.android.tools.r8.graph.DexAnnotationSet):115 -> a
    42:43:void accept(com.android.tools.r8.graph.DexEncodedAnnotation):128:129 -> a
    42:43:void accept(com.android.tools.r8.graph.DexAnnotation):124 -> a
    42:43:void accept(com.android.tools.r8.graph.DexAnnotationSet):115 -> a
    44:44:void accept(com.android.tools.r8.graph.DexAnnotationElement):135:135 -> a
    44:44:void accept(com.android.tools.r8.graph.DexEncodedAnnotation):130 -> a
    44:44:void accept(com.android.tools.r8.graph.DexAnnotation):124 -> a
    44:44:void accept(com.android.tools.r8.graph.DexAnnotationSet):115 -> a
    45:45:void accept(com.android.tools.r8.graph.ParameterAnnotationsList):120:120 -> a
    46:46:void accept(com.android.tools.r8.graph.DexAnnotation):124:124 -> a
    47:48:void accept(com.android.tools.r8.graph.DexEncodedAnnotation):128:129 -> a
    47:48:void accept(com.android.tools.r8.graph.DexAnnotation):124 -> a
    49:49:void accept(com.android.tools.r8.graph.DexAnnotationElement):135:135 -> a
    49:49:void accept(com.android.tools.r8.graph.DexEncodedAnnotation):130 -> a
    49:49:void accept(com.android.tools.r8.graph.DexAnnotation):124 -> a
    50:58:void accept(com.android.tools.r8.graph.DexType):142:150 -> a
    59:59:boolean com.android.tools.r8.graph.DexMethodHandle.isFieldHandle():293:293 -> a
    59:59:void accept(com.android.tools.r8.graph.DexMethodHandle):80 -> a
    60:62:void accept(com.android.tools.r8.graph.DexMethodHandle):81:83 -> a
    63:63:boolean com.android.tools.r8.graph.DexMethodHandle.isMethodHandle():297:297 -> a
    63:63:void accept(com.android.tools.r8.graph.DexMethodHandle):83 -> a
    64:65:void accept(com.android.tools.r8.graph.DexMethodHandle):83:84 -> a
com.android.tools.r8.ir.optimize.lambda.kotlin.ClassInitializerSourceCode -> com.android.tools.r8.ir.optimize.w0.s.a:
    boolean $assertionsDisabled -> n
    com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup group -> m
    com.android.tools.r8.graph.DexItemFactory factory -> l
    1:1:void <clinit>():20:20 -> <clinit>
    1:5:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup,com.android.tools.r8.ir.code.Position):26:30 -> <init>
    1:15:void lambda$prepareInstructions$4(int,com.android.tools.r8.graph.DexType,int,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):46:60 -> a
    16:16:void lambda$prepareInstructions$0(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.conversion.IRBuilder):49:49 -> a
    17:17:void lambda$prepareInstructions$2(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    1:1:void lambda$prepareInstructions$1(int,int,com.android.tools.r8.ir.conversion.IRBuilder):50:50 -> b
    1:1:void lambda$prepareInstructions$3(int,int,com.android.tools.r8.ir.conversion.IRBuilder):62:62 -> c
    1:3:void prepareInstructions():35:37 -> h
    4:35:void prepareInstructions():36:67 -> h
com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup -> com.android.tools.r8.ir.optimize.w0.s.g:
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$GroupId,com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$1):103:103 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$GroupId):105:105 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$ClassBuilder getBuilder(com.android.tools.r8.graph.DexItemFactory):110:110 -> a
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroupClassBuilder getBuilder(com.android.tools.r8.graph.DexItemFactory):103 -> a
    2:2:com.android.tools.r8.utils.ThrowingConsumer lambdaClassValidator(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping):116:116 -> a
    java.lang.String getGroupSuffix() -> d
com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$1 -> com.android.tools.r8.ir.optimize.w0.s.b:
com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$ClassBuilder -> com.android.tools.r8.ir.optimize.w0.s.c:
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup,com.android.tools.r8.graph.DexItemFactory,java.lang.String):179:179 -> <init>
    1:4:com.android.tools.r8.ir.synthetic.SyntheticSourceCode createInstanceInitializerSourceCode(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):190:193 -> a
    5:5:com.android.tools.r8.graph.DexField lambda$createInstanceInitializerSourceCode$0(int):194:194 -> a
    1:1:com.android.tools.r8.graph.DexType getSuperClassType():184:184 -> i
com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$ClassValidator -> com.android.tools.r8.ir.optimize.w0.s.d:
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping):151:151 -> <init>
    1:1:int getInstanceInitializerSize(java.util.List):156:156 -> a
    2:9:int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int):163:170 -> a
    10:10:int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int):166:166 -> a
com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$GroupId -> com.android.tools.r8.ir.optimize.w0.s.e:
    1:1:void <init>(java.lang.String,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.graph.EnclosingMethodAttribute):129:129 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroup createGroup():144:144 -> a
    java.lang.String getLambdaKindDescriptor() -> c
    1:1:boolean equals(java.lang.Object):134:134 -> equals
com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$InstanceInitializerSourceCode -> com.android.tools.r8.ir.optimize.w0.s.f:
    com.android.tools.r8.graph.DexMethod objectInitializer -> n
    1:2:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField,java.util.function.IntFunction,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):212:213 -> <init>
    1:6:void lambda$prepareSuperConstructorCall$0(int,com.android.tools.r8.ir.conversion.IRBuilder):220:225 -> c
    7:7:void lambda$prepareSuperConstructorCall$0(int,com.android.tools.r8.ir.conversion.IRBuilder):220:220 -> c
    1:1:void prepareSuperConstructorCall(int):218:218 -> i
com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroupIdFactory -> com.android.tools.r8.ir.optimize.w0.s.h:
    boolean $assertionsDisabled -> n
    com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroupIdFactory INSTANCE -> m
    1:2:void <clinit>():16:17 -> <clinit>
    1:1:void <init>():16:16 -> <init>
    1:6:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):22:27 -> b
    7:7:void com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupIdFactory.checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):230:230 -> b
    7:7:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):27 -> b
    8:8:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):48:48 -> b
    8:8:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
    9:20:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):56:67 -> b
    9:20:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    21:30:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):34:43 -> b
    31:32:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):60:61 -> b
    31:32:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    33:33:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
    33:33:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):61 -> b
    33:33:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    34:34:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):61:61 -> b
    34:34:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    35:35:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57:57 -> b
    35:35:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    36:36:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
    36:36:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57 -> b
    36:36:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    37:37:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57:57 -> b
    37:37:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    38:38:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49:49 -> b
    38:38:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
    39:39:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
    39:39:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49 -> b
    39:39:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
    40:40:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49:49 -> b
    40:40:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup -> com.android.tools.r8.ir.optimize.w0.s.n:
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$GroupId,com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$1):109:109 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$GroupId):111:111 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$ClassBuilder getBuilder(com.android.tools.r8.graph.DexItemFactory):116:116 -> a
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroupClassBuilder getBuilder(com.android.tools.r8.graph.DexItemFactory):109 -> a
    2:2:com.android.tools.r8.utils.ThrowingConsumer lambdaClassValidator(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping):122:122 -> a
    java.lang.String getGroupSuffix() -> d
com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$1 -> com.android.tools.r8.ir.optimize.w0.s.i:
com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$ClassBuilder -> com.android.tools.r8.ir.optimize.w0.s.j:
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup,com.android.tools.r8.graph.DexItemFactory,java.lang.String):190:190 -> <init>
    1:7:com.android.tools.r8.ir.synthetic.SyntheticSourceCode createInstanceInitializerSourceCode(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):201:207 -> a
    8:8:com.android.tools.r8.graph.DexField lambda$createInstanceInitializerSourceCode$0(int):205:205 -> a
    1:1:com.android.tools.r8.graph.DexType getSuperClassType():195:195 -> i
com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$ClassValidator -> com.android.tools.r8.ir.optimize.w0.s.k:
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping):157:157 -> <init>
    1:1:int getInstanceInitializerSize(java.util.List):162:162 -> a
    2:14:int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int):169:181 -> a
    15:15:int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int):177:177 -> a
com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$GroupId -> com.android.tools.r8.ir.optimize.w0.s.l:
    1:1:void <init>(java.lang.String,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.graph.EnclosingMethodAttribute):135:135 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroup createGroup():150:150 -> a
    java.lang.String getLambdaKindDescriptor() -> c
    1:1:boolean equals(java.lang.Object):140:140 -> equals
com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$InstanceInitializerSourceCode -> com.android.tools.r8.ir.optimize.w0.s.m:
    int arity -> n
    com.android.tools.r8.graph.DexMethod lambdaInitializer -> o
    1:4:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField,java.util.function.IntFunction,com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.ir.code.Position):226:229 -> <init>
    5:5:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField,java.util.function.IntFunction,com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.ir.code.Position):228:228 -> <init>
    1:1:void lambda$prepareSuperConstructorCall$0(int,com.android.tools.r8.ir.conversion.IRBuilder):235:235 -> c
    2:7:void lambda$prepareSuperConstructorCall$1(int,int,com.android.tools.r8.ir.conversion.IRBuilder):238:243 -> c
    8:8:void lambda$prepareSuperConstructorCall$1(int,int,com.android.tools.r8.ir.conversion.IRBuilder):238:238 -> c
    1:3:void prepareSuperConstructorCall(int):234:236 -> i
com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroupIdFactory -> com.android.tools.r8.ir.optimize.w0.s.o:
    boolean $assertionsDisabled -> n
    com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupIdFactory INSTANCE -> m
    1:2:void <clinit>():16:17 -> <clinit>
    1:1:void <init>():16:16 -> <init>
    1:6:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):22:27 -> b
    7:7:void com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupIdFactory.checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):230:230 -> b
    7:7:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):27 -> b
    8:8:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):48:48 -> b
    8:8:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
    9:17:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):56:64 -> b
    9:17:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    18:27:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):34:43 -> b
    28:28:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):65:65 -> b
    28:28:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    29:29:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
    29:29:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):65 -> b
    29:29:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    30:30:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):65:65 -> b
    30:30:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    31:32:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):60:61 -> b
    31:32:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    33:33:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
    33:33:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):61 -> b
    33:33:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    34:34:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):61:61 -> b
    34:34:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    35:35:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57:57 -> b
    35:35:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    36:36:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
    36:36:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57 -> b
    36:36:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    37:37:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57:57 -> b
    37:37:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    38:38:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49:49 -> b
    38:38:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
    39:39:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
    39:39:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49 -> b
    39:39:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
    40:40:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49:49 -> b
    40:40:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinInstanceInitializerSourceCode -> com.android.tools.r8.ir.optimize.w0.s.p:
    com.android.tools.r8.graph.DexField idField -> l
    java.util.function.IntFunction fieldGenerator -> m
    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField,java.util.function.IntFunction,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):25:27 -> <init>
    1:1:void lambda$prepareInstructions$0(int,com.android.tools.r8.ir.conversion.IRBuilder):35:35 -> b
    2:2:void lambda$prepareInstructions$1(int,int,com.android.tools.r8.ir.conversion.IRBuilder):42:42 -> b
    3:3:void lambda$prepareInstructions$1(int,int,com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> b
    1:17:void prepareInstructions():32:48 -> h
    void prepareSuperConstructorCall(int) -> i
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaClassValidator -> com.android.tools.r8.ir.optimize.w0.s.q:
    com.android.tools.r8.graph.AppInfoWithSubtyping appInfo -> c
    com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup group -> b
    com.android.tools.r8.kotlin.Kotlin kotlin -> a
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():47:47 -> <clinit>
    1:4:void <init>(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup,com.android.tools.r8.graph.AppInfoWithSubtyping):59:62 -> <init>
    int getInstanceInitializerSize(java.util.List) -> a
    int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int) -> a
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError structureError(java.lang.String):67:67 -> a
    1:1:void accept(java.lang.Object):47:47 -> accept
    2:2:void accept(com.android.tools.r8.graph.DexClass):72:72 -> accept
    2:2:void accept(java.lang.Object):47 -> accept
    3:3:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup.id():27:27 -> accept
    3:3:void accept(com.android.tools.r8.graph.DexClass):72 -> accept
    3:3:void accept(java.lang.Object):47 -> accept
    4:22:void accept(com.android.tools.r8.graph.DexClass):72:90 -> accept
    4:22:void accept(java.lang.Object):47 -> accept
    23:34:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):225:236 -> accept
    23:34:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
    23:34:void accept(java.lang.Object):47 -> accept
    35:37:boolean isLambdaInitializerMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):255:257 -> accept
    35:37:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):236 -> accept
    35:37:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
    35:37:void accept(java.lang.Object):47 -> accept
    38:39:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):239:240 -> accept
    38:39:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
    38:39:void accept(java.lang.Object):47 -> accept
    40:40:boolean isLambdaSingletonField(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexField):249:249 -> accept
    40:40:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):240 -> accept
    40:40:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
    40:40:void accept(java.lang.Object):47 -> accept
    41:42:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):243:244 -> accept
    41:42:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
    41:42:void accept(java.lang.Object):47 -> accept
    43:43:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):241:241 -> accept
    43:43:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
    43:43:void accept(java.lang.Object):47 -> accept
    44:44:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):237:237 -> accept
    44:44:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
    44:44:void accept(java.lang.Object):47 -> accept
    45:45:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):232:232 -> accept
    45:45:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
    45:45:void accept(java.lang.Object):47 -> accept
    46:46:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):228:228 -> accept
    46:46:void accept(com.android.tools.r8.graph.DexClass):90 -> accept
    46:46:void accept(java.lang.Object):47 -> accept
    47:47:void accept(com.android.tools.r8.graph.DexClass):88:88 -> accept
    47:47:void accept(java.lang.Object):47 -> accept
    48:61:void accept(com.android.tools.r8.graph.DexClass):85:98 -> accept
    48:61:void accept(java.lang.Object):47 -> accept
    62:66:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):134:138 -> accept
    62:66:void accept(com.android.tools.r8.graph.DexClass):98 -> accept
    62:66:void accept(java.lang.Object):47 -> accept
    67:129:int validateInstanceInitializerParameterMapping(java.util.List,com.android.tools.r8.code.Instruction[],int):154:216 -> accept
    67:129:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):144 -> accept
    67:129:void accept(com.android.tools.r8.graph.DexClass):98 -> accept
    67:129:void accept(java.lang.Object):47 -> accept
    130:184:int validateInstanceInitializerParameterMapping(java.util.List,com.android.tools.r8.code.Instruction[],int):157:211 -> accept
    130:184:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):144 -> accept
    130:184:void accept(com.android.tools.r8.graph.DexClass):98 -> accept
    130:184:void accept(java.lang.Object):47 -> accept
    185:197:int validateInstanceInitializerParameterMapping(java.util.List,com.android.tools.r8.code.Instruction[],int):190:202 -> accept
    185:197:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):144 -> accept
    185:197:void accept(com.android.tools.r8.graph.DexClass):98 -> accept
    185:197:void accept(java.lang.Object):47 -> accept
    198:201:int validateInstanceInitializerParameterMapping(java.util.List,com.android.tools.r8.code.Instruction[],int):181:184 -> accept
    198:201:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):144 -> accept
    198:201:void accept(com.android.tools.r8.graph.DexClass):98 -> accept
    198:201:void accept(java.lang.Object):47 -> accept
    202:205:int validateInstanceInitializerParameterMapping(java.util.List,com.android.tools.r8.code.Instruction[],int):165:168 -> accept
    202:205:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):144 -> accept
    202:205:void accept(com.android.tools.r8.graph.DexClass):98 -> accept
    202:205:void accept(java.lang.Object):47 -> accept
    206:207:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):147:148 -> accept
    206:207:void accept(com.android.tools.r8.graph.DexClass):98 -> accept
    206:207:void accept(java.lang.Object):47 -> accept
    208:208:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):139:139 -> accept
    208:208:void accept(com.android.tools.r8.graph.DexClass):98 -> accept
    208:208:void accept(java.lang.Object):47 -> accept
    209:228:void accept(com.android.tools.r8.graph.DexClass):96:115 -> accept
    209:228:void accept(java.lang.Object):47 -> accept
    229:236:void accept(com.android.tools.r8.graph.DexClass):114:121 -> accept
    229:236:void accept(java.lang.Object):47 -> accept
    237:237:void accept(com.android.tools.r8.graph.DexClass):73:73 -> accept
    237:237:void accept(java.lang.Object):47 -> accept
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaConstants -> com.android.tools.r8.ir.optimize.w0.s.r:
    com.android.tools.r8.graph.FieldAccessFlags CAPTURE_FIELD_FLAGS -> j
    com.android.tools.r8.graph.FieldAccessFlags SINGLETON_FIELD_FLAGS -> i
    com.android.tools.r8.graph.MethodAccessFlags CLASS_INITIALIZER_FLAGS -> c
    com.android.tools.r8.graph.MethodAccessFlags CONSTRUCTOR_FLAGS -> d
    com.android.tools.r8.graph.MethodAccessFlags CONSTRUCTOR_FLAGS_RELAXED -> e
    com.android.tools.r8.graph.FieldAccessFlags CAPTURE_FIELD_FLAGS_RELAXED -> k
    com.android.tools.r8.graph.ClassAccessFlags LAMBDA_CLASS_FLAGS -> a
    com.android.tools.r8.graph.MethodAccessFlags MAIN_METHOD_FLAGS -> f
    com.android.tools.r8.graph.ClassAccessFlags PUBLIC_LAMBDA_CLASS_FLAGS -> b
    com.android.tools.r8.graph.MethodAccessFlags BRIDGE_METHOD_FLAGS -> g
    com.android.tools.r8.graph.MethodAccessFlags BRIDGE_METHOD_FLAGS_FIXED -> h
    1:38:void <clinit>():15:52 -> <clinit>
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup -> com.android.tools.r8.ir.optimize.w0.s.s:
    com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy strategy -> e
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroupId):23:23 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroupId):20:20 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id():27:27 -> a
    1:1:int mapFieldIntoCaptureIndex(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):72 -> a
    2:2:int mapFieldIntoCaptureIndex(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):72:72 -> a
    3:3:int mapFieldIntoCaptureIndex(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):71:71 -> a
    4:4:boolean lambda$hasAnySingletons$0(com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):36:36 -> a
    5:5:com.android.tools.r8.graph.DexField getCaptureField(com.android.tools.r8.graph.DexItemFactory,int):76:76 -> a
    6:6:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id():27:27 -> a
    6:6:com.android.tools.r8.graph.DexField getCaptureField(com.android.tools.r8.graph.DexItemFactory,int):76 -> a
    7:8:com.android.tools.r8.graph.DexField getCaptureField(com.android.tools.r8.graph.DexItemFactory,int):76:77 -> a
    9:9:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id():27:27 -> a
    9:9:com.android.tools.r8.graph.DexField getCaptureField(com.android.tools.r8.graph.DexItemFactory,int):78 -> a
    10:10:com.android.tools.r8.graph.DexField getCaptureField(com.android.tools.r8.graph.DexItemFactory,int):78:78 -> a
    11:11:com.android.tools.r8.graph.DexField getCaptureField(com.android.tools.r8.graph.DexItemFactory,int):77:77 -> a
    1:1:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id():27:27 -> b
    1:1:com.android.tools.r8.graph.DexProto createConstructorProto(com.android.tools.r8.graph.DexItemFactory):57 -> b
    2:8:com.android.tools.r8.graph.DexProto createConstructorProto(com.android.tools.r8.graph.DexItemFactory):57:63 -> b
    9:10:com.android.tools.r8.graph.DexField getSingletonInstanceField(com.android.tools.r8.graph.DexItemFactory,int):46:47 -> b
    11:11:com.android.tools.r8.graph.DexField getSingletonInstanceField(com.android.tools.r8.graph.DexItemFactory,int):46:46 -> b
    12:12:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy getCodeStrategy():83:83 -> b
    1:1:com.android.tools.r8.graph.DexField getLambdaIdField(com.android.tools.r8.graph.DexItemFactory):67:67 -> c
    1:1:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id():27:27 -> e
    1:1:java.lang.String getTypePackage():52 -> e
    2:3:java.lang.String getTypePackage():52:53 -> e
    1:2:boolean isSingletonLambda(com.android.tools.r8.graph.DexType):40:41 -> f
    1:2:boolean hasAnySingletons():35:36 -> h
    1:1:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id():27:27 -> i
    1:1:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id():27:27 -> j
    1:1:boolean isStateless():31 -> j
    2:2:boolean isStateless():31:31 -> j
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupClassBuilder -> com.android.tools.r8.ir.optimize.w0.s.t:
    boolean $assertionsDisabled -> p
    com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id -> o
    1:1:void <clinit>():43:43 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup,com.android.tools.r8.graph.DexItemFactory,java.lang.String):49:50 -> <init>
    com.android.tools.r8.ir.synthetic.SyntheticSourceCode createInstanceInitializerSourceCode(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position) -> a
    1:1:com.android.tools.r8.graph.ClassAccessFlags buildAccessFlags():59:59 -> a
    2:6:com.android.tools.r8.ir.conversion.SourceCode lambda$buildVirtualMethods$0(com.android.tools.r8.graph.DexMethod,java.util.List,com.android.tools.r8.ir.code.Position):124:128 -> a
    7:14:void lambda$collectVirtualMethods$3(java.util.Map,int,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):146:153 -> a
    15:15:java.util.Map lambda$collectVirtualMethods$1(com.android.tools.r8.graph.DexString):149:149 -> a
    16:16:java.util.List lambda$collectVirtualMethods$2(int,com.android.tools.r8.graph.DexProto):151:151 -> a
    17:17:com.android.tools.r8.ir.conversion.SourceCode lambda$buildDirectMethods$5(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):199:199 -> a
    18:41:com.android.tools.r8.graph.DexEncodedField[] buildStaticFields(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):227:250 -> a
    42:54:void lambda$buildStaticFields$6(java.util.List,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):234:246 -> a
    1:5:com.android.tools.r8.graph.DexAnnotationSet buildAnnotations():81:85 -> b
    6:6:com.android.tools.r8.ir.conversion.SourceCode lambda$buildDirectMethods$4(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):180:180 -> b
    1:14:com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods():164:177 -> c
    15:15:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> c
    15:15:com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods():177 -> c
    16:28:com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods():177:189 -> c
    29:38:com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods():187:196 -> c
    39:39:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> c
    39:39:com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods():196 -> c
    40:40:com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods():196:196 -> c
    1:1:com.android.tools.r8.graph.EnclosingMethodAttribute buildEnclosingMethodAttribute():65:65 -> d
    1:1:java.util.List buildInnerClasses():71:71 -> e
    2:2:boolean com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId.hasInnerClassAttribute():71:71 -> e
    2:2:java.util.List buildInnerClasses():71 -> e
    3:5:java.util.List buildInnerClasses():72:74 -> e
    6:6:java.util.List buildInnerClasses():73:73 -> e
    1:10:com.android.tools.r8.graph.DexEncodedField[] buildInstanceFields():209:218 -> f
    1:1:com.android.tools.r8.graph.DexTypeList buildInterfaces():255:255 -> g
    1:25:com.android.tools.r8.graph.DexEncodedMethod[] buildVirtualMethods():97:121 -> h
    26:26:void com.android.tools.r8.graph.DexEncodedMethod.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,boolean):233:233 -> h
    26:26:com.android.tools.r8.graph.DexEncodedMethod[] buildVirtualMethods():121 -> h
    27:46:com.android.tools.r8.graph.DexEncodedMethod[] buildVirtualMethods():116:135 -> h
    1:3:java.util.Map collectVirtualMethods():143:145 -> j
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupCodeStrategy -> com.android.tools.r8.ir.optimize.w0.s.u:
    com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup group -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():35:35 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup):38:39 -> <init>
    1:7:boolean isValidStaticFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField):49:55 -> a
    8:8:boolean isValidNewInstance(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.NewInstance):87:87 -> a
    9:9:boolean isValidInvoke(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):92:92 -> a
    10:12:boolean isValidVirtualCall(com.android.tools.r8.ir.code.InvokeMethod):109:111 -> a
    13:20:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.NewInstance):116:123 -> a
    21:21:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    21:21:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.NewInstance):122 -> a
    22:27:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.NewInstance):122:127 -> a
    28:30:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):132:134 -> a
    31:35:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):212:216 -> a
    31:35:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
    36:36:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    36:36:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):216 -> a
    36:36:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
    37:46:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):217:226 -> a
    37:46:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
    47:48:com.android.tools.r8.graph.DexMethod mapInitializerMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):257:258 -> a
    47:48:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):226 -> a
    47:48:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
    49:49:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup.id():27:27 -> a
    49:49:com.android.tools.r8.graph.DexMethod mapInitializerMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):258 -> a
    49:49:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):226 -> a
    49:49:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
    50:52:com.android.tools.r8.graph.DexMethod mapInitializerMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):258:260 -> a
    50:52:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):226 -> a
    50:52:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
    53:53:com.android.tools.r8.graph.DexMethod mapInitializerMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):259:259 -> a
    53:53:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):226 -> a
    53:53:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
    54:54:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):227:227 -> a
    54:54:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
    55:63:java.util.List mapInitializerArgs(com.android.tools.r8.ir.code.Value,java.util.List,com.android.tools.r8.graph.DexProto):242:250 -> a
    55:63:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):227 -> a
    55:63:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
    64:64:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):228:228 -> a
    64:64:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
    65:65:void com.android.tools.r8.ir.code.InvokeDirect.<init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):37:37 -> a
    65:65:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):228 -> a
    65:65:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
    66:66:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):228:228 -> a
    66:66:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):134 -> a
    67:69:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):137:139 -> a
    70:70:com.android.tools.r8.graph.DexMethod mapVirtualMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):265:265 -> a
    70:70:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):139 -> a
    71:79:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InvokeMethod):141:149 -> a
    80:81:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InstanceGet):155:156 -> a
    82:82:com.android.tools.r8.graph.DexField mapCaptureField(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):270:270 -> a
    82:82:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InstanceGet):156 -> a
    83:110:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.InstanceGet):158:185 -> a
    111:112:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.StaticGet):191:192 -> a
    113:113:com.android.tools.r8.graph.DexField mapSingletonInstanceField(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexField):275:275 -> a
    113:113:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.StaticGet):192 -> a
    114:117:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.StaticGet):194:197 -> a
    118:118:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    118:118:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.StaticGet):196 -> a
    119:125:void patch(com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy,com.android.tools.r8.ir.code.StaticGet):196:202 -> a
    126:129:com.android.tools.r8.ir.code.Value createValueForType(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexType):234:237 -> a
    130:130:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    130:130:com.android.tools.r8.ir.code.Value createValueForType(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexType):236 -> a
    1:5:boolean isValidInstanceFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField):70:74 -> b
    6:15:boolean isValidInitializerCall(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):96:105 -> b
    16:16:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup.id():27:27 -> b
    16:16:boolean isValidInitializerCall(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):105 -> b
    17:17:boolean isValidInitializerCall(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):105:105 -> b
    1:4:boolean isValidStaticFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField):61:64 -> c
    1:1:boolean isValidInstanceFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField):79:79 -> d
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId -> com.android.tools.r8.ir.optimize.w0.s.v:
    com.android.tools.r8.graph.DexProto mainMethodProto -> g
    com.android.tools.r8.graph.ParameterAnnotationsList mainMethodParamAnnotations -> i
    int innerClassAccess -> k
    com.android.tools.r8.graph.DexString mainMethodName -> f
    boolean $assertionsDisabled -> l
    com.android.tools.r8.graph.DexType iface -> c
    com.android.tools.r8.graph.EnclosingMethodAttribute enclosing -> j
    java.lang.String capture -> b
    java.lang.String signature -> e
    com.android.tools.r8.graph.DexAnnotationSet mainMethodAnnotations -> h
    int hash -> a
    java.lang.String pkg -> d
    1:1:void <clinit>():18:18 -> <clinit>
    1:14:void <init>(java.lang.String,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.graph.EnclosingMethodAttribute):54:67 -> <init>
    1:12:boolean computeEquals(com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId):97:108 -> a
    1:10:int computeHashCode():80:89 -> b
    java.lang.String getLambdaKindDescriptor() -> c
    1:1:int hashCode():76:76 -> hashCode
    1:21:java.lang.String toString():113:133 -> toString
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupIdFactory -> com.android.tools.r8.ir.optimize.w0.s.w:
    boolean $assertionsDisabled -> l
    1:1:void <clinit>():21:21 -> <clinit>
    1:1:void <init>():22:22 -> <init>
    1:7:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId create(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):35:41 -> a
    8:13:boolean hasValidAnnotations(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):90:95 -> a
    14:17:java.lang.String validateInstanceFields(com.android.tools.r8.graph.DexClass,boolean):153:156 -> a
    18:18:void checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):230:230 -> a
    18:18:java.lang.String validateInstanceFields(com.android.tools.r8.graph.DexClass,boolean):155 -> a
    19:21:java.lang.String validateInstanceFields(com.android.tools.r8.graph.DexClass,boolean):157:159 -> a
    22:30:void validateDirectMethods(com.android.tools.r8.graph.DexClass):163:171 -> a
    31:35:void validateDirectMethods(com.android.tools.r8.graph.DexClass):169:173 -> a
    36:36:void validateDirectMethods(com.android.tools.r8.graph.DexClass):167:167 -> a
    37:37:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
    37:37:void validateDirectMethods(com.android.tools.r8.graph.DexClass):167 -> a
    38:65:void validateDirectMethods(com.android.tools.r8.graph.DexClass):167:194 -> a
    66:66:void checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):230:230 -> a
    66:66:void validateDirectMethods(com.android.tools.r8.graph.DexClass):194 -> a
    67:67:void validateDirectMethods(com.android.tools.r8.graph.DexClass):196:196 -> a
    68:68:void validateDirectMethods(com.android.tools.r8.graph.DexClass):183:183 -> a
    69:69:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
    69:69:void validateDirectMethods(com.android.tools.r8.graph.DexClass):183 -> a
    70:91:void validateDirectMethods(com.android.tools.r8.graph.DexClass):183:204 -> a
    92:92:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
    92:92:void validateDirectMethods(com.android.tools.r8.graph.DexClass):204 -> a
    93:93:void validateDirectMethods(com.android.tools.r8.graph.DexClass):204:204 -> a
    94:94:void validateDirectMethods(com.android.tools.r8.graph.DexClass):200:200 -> a
    95:95:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
    95:95:void validateDirectMethods(com.android.tools.r8.graph.DexClass):200 -> a
    96:96:void validateDirectMethods(com.android.tools.r8.graph.DexClass):200:200 -> a
    97:98:void validateDirectMethods(com.android.tools.r8.graph.DexClass):175:176 -> a
    99:99:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
    99:99:void validateDirectMethods(com.android.tools.r8.graph.DexClass):176 -> a
    100:100:void validateDirectMethods(com.android.tools.r8.graph.DexClass):176:176 -> a
    101:107:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):210:216 -> a
    108:108:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
    108:108:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):216 -> a
    109:109:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):216:216 -> a
    110:111:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):211:212 -> a
    112:112:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
    112:112:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):212 -> a
    113:113:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):212:212 -> a
    114:116:void checkFieldAnnotations(com.android.tools.r8.graph.DexEncodedField):221:223 -> a
    117:117:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
    117:117:void checkFieldAnnotations(com.android.tools.r8.graph.DexEncodedField):223 -> a
    118:118:void checkFieldAnnotations(com.android.tools.r8.graph.DexEncodedField):223:223 -> a
    119:124:void checkAccessFlags(java.lang.String,int,com.android.tools.r8.graph.AccessFlags[]):236:241 -> a
    125:125:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> a
    125:125:void checkAccessFlags(java.lang.String,int,com.android.tools.r8.graph.AccessFlags[]):241 -> a
    126:126:void checkAccessFlags(java.lang.String,int,com.android.tools.r8.graph.AccessFlags[]):241:241 -> a
    com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions) -> b
    1:6:com.android.tools.r8.graph.InnerClassAttribute validateInnerClasses(com.android.tools.r8.graph.DexClass):75:80 -> b
    7:7:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
    7:7:com.android.tools.r8.graph.InnerClassAttribute validateInnerClasses(com.android.tools.r8.graph.DexClass):80 -> b
    8:8:com.android.tools.r8.graph.InnerClassAttribute validateInnerClasses(com.android.tools.r8.graph.DexClass):80:80 -> b
    9:25:java.lang.String validateAnnotations(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):106:122 -> b
    26:26:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> b
    26:26:java.lang.String validateAnnotations(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):122 -> b
    27:30:java.lang.String validateAnnotations(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):122:125 -> b
    1:4:com.android.tools.r8.graph.DexEncodedMethod validateVirtualMethods(com.android.tools.r8.graph.DexClass):54:57 -> c
    5:5:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> c
    5:5:com.android.tools.r8.graph.DexEncodedMethod validateVirtualMethods(com.android.tools.r8.graph.DexClass):57 -> c
    6:10:com.android.tools.r8.graph.DexEncodedMethod validateVirtualMethods(com.android.tools.r8.graph.DexClass):57:61 -> c
    11:11:void checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):230:230 -> c
    11:11:com.android.tools.r8.graph.DexEncodedMethod validateVirtualMethods(com.android.tools.r8.graph.DexClass):61 -> c
    12:18:com.android.tools.r8.graph.DexEncodedMethod validateVirtualMethods(com.android.tools.r8.graph.DexClass):63:69 -> c
    19:31:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):130:142 -> c
    32:32:void checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):230:230 -> c
    32:32:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):142 -> c
    33:33:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):143:143 -> c
    34:34:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):140:140 -> c
    35:35:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> c
    35:35:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):140 -> c
    36:36:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):140:140 -> c
    37:37:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):136:136 -> c
    38:38:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> c
    38:38:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):136 -> c
    39:50:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):136:147 -> c
    51:51:void com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError.<init>(java.lang.String):221:221 -> c
    51:51:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):147 -> c
    52:52:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):147:147 -> c
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaVirtualMethodSourceCode -> com.android.tools.r8.ir.optimize.w0.s.x:
    com.android.tools.r8.graph.DexItemFactory factory -> l
    java.util.List implMethods -> n
    com.android.tools.r8.graph.DexField idField -> m
    1:4:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexField,java.util.List,com.android.tools.r8.ir.code.Position):33:36 -> <init>
    1:1:void lambda$prepareInstructions$1(int,int[],int[],int[],com.android.tools.r8.ir.conversion.IRBuilder):64:64 -> a
    2:2:boolean lambda$prepareInstructions$2(int,int[],int[],com.android.tools.r8.ir.conversion.IRBuilder):65:65 -> a
    3:6:boolean com.android.tools.r8.ir.synthetic.SyntheticSourceCode.endsSwitch(com.android.tools.r8.ir.conversion.IRBuilder,int,int,int[]):234:237 -> a
    3:6:boolean lambda$prepareInstructions$2(int,int[],int[],com.android.tools.r8.ir.conversion.IRBuilder):65 -> a
    7:14:void lambda$prepareInstructions$5(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.IRBuilder):89:96 -> a
    1:1:void lambda$prepareInstructions$0(int,com.android.tools.r8.ir.conversion.IRBuilder):55:55 -> b
    1:1:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):70:70 -> c
    1:1:void lambda$prepareInstructions$4(int,com.android.tools.r8.ir.conversion.IRBuilder):71:71 -> d
    1:1:void lambda$prepareInstructions$6(int,com.android.tools.r8.ir.conversion.IRBuilder):102:102 -> e
    1:1:void lambda$prepareInstructions$7(int,com.android.tools.r8.ir.conversion.IRBuilder):103:103 -> f
    1:65:void prepareInstructions():41:105 -> h
com.android.tools.r8.ir.optimize.library.BooleanMethodOptimizer -> com.android.tools.r8.ir.optimize.x0.a:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
    com.android.tools.r8.graph.AppView appView -> a
    1:3:void <init>(com.android.tools.r8.graph.AppView):27:29 -> <init>
    1:1:com.android.tools.r8.graph.DexType getType():34:34 -> a
    2:2:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):44:44 -> a
    3:12:void optimizeBooleanValue(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):53:62 -> a
    3:12:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):45 -> a
    13:13:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):46:46 -> a
    14:22:void optimizeValueOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,java.util.Set):73:81 -> a
    14:22:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):47 -> a
    23:23:void optimizeValueOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,java.util.Set):76:76 -> a
    23:23:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):47 -> a
com.android.tools.r8.ir.optimize.library.LibraryMethodModelCollection -> com.android.tools.r8.ir.optimize.x0.b:
    void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set) -> a
com.android.tools.r8.ir.optimize.library.LibraryMethodOptimizer -> com.android.tools.r8.ir.optimize.x0.c:
    java.util.Map libraryMethodModelCollections -> b
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():25:25 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):32:32 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.AppView):29:34 -> <init>
    1:3:void register(com.android.tools.r8.ir.optimize.library.LibraryMethodModelCollection):38:40 -> a
    4:4:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):48:48 -> a
    5:5:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    5:5:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):49 -> a
    6:11:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):50:55 -> a
    12:14:void optimizeInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):72:74 -> a
    12:14:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):57 -> a
    15:17:void optimizeInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):73:75 -> a
    15:17:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):57 -> a
    18:19:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):61:62 -> a
    20:20:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    20:20:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):62 -> a
    21:21:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.conversion.MethodProcessor):62:62 -> a
com.android.tools.r8.ir.optimize.library.NopLibraryMethodModelCollection -> com.android.tools.r8.ir.optimize.x0.d:
    com.android.tools.r8.ir.optimize.library.NopLibraryMethodModelCollection INSTANCE -> a
    1:1:void <clinit>():18:18 -> <clinit>
    1:1:void <init>():21:21 -> <init>
    void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set) -> a
    1:1:com.android.tools.r8.ir.optimize.library.NopLibraryMethodModelCollection getInstance():24:24 -> a
com.android.tools.r8.ir.optimize.peepholes.BasicBlockMuncher -> com.android.tools.r8.ir.optimize.y0.a:
    1:1:java.util.List nonDestructivePeepholes():22:22 -> a
    1:1:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):37 -> a
    2:2:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):37:37 -> a
    3:3:java.util.List destructivePeepholes():28:28 -> a
    3:3:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):38 -> a
    4:4:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):38:38 -> a
    5:33:void runPeepholes(com.android.tools.r8.ir.code.IRCode,java.util.List,com.android.tools.r8.utils.InternalOptions):43:71 -> a
    34:34:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    34:34:void runPeepholes(com.android.tools.r8.ir.code.IRCode,java.util.List,com.android.tools.r8.utils.InternalOptions):71 -> a
    35:35:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    35:35:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    35:35:void runPeepholes(com.android.tools.r8.ir.code.IRCode,java.util.List,com.android.tools.r8.utils.InternalOptions):71 -> a
    36:40:void runPeepholes(com.android.tools.r8.ir.code.IRCode,java.util.List,com.android.tools.r8.utils.InternalOptions):71:75 -> a
com.android.tools.r8.ir.optimize.peepholes.BasicBlockPeephole -> com.android.tools.r8.ir.optimize.y0.b:
    boolean match(com.android.tools.r8.ir.code.InstructionListIterator) -> a
    boolean resetAfterMatch() -> a
com.android.tools.r8.ir.optimize.peepholes.DupDupDupPeephole -> com.android.tools.r8.ir.optimize.y0.c:
    com.android.tools.r8.ir.optimize.peepholes.Point dup3Exp -> c
    com.android.tools.r8.ir.optimize.peepholes.Point dup2Exp -> b
    com.android.tools.r8.ir.optimize.peepholes.Point dup1Exp -> a
    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> d
    1:10:void <init>():28:37 -> <init>
    boolean resetAfterMatch() -> a
    1:1:boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction):31:31 -> a
    2:39:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):41:78 -> a
    1:1:boolean lambda$new$1(com.android.tools.r8.ir.code.Instruction):33:33 -> b
    1:1:boolean lambda$new$2(com.android.tools.r8.ir.code.Instruction):35:35 -> c
com.android.tools.r8.ir.optimize.peepholes.LoadLoadDupPeephole -> com.android.tools.r8.ir.optimize.y0.d:
    com.android.tools.r8.ir.optimize.peepholes.Point firstLoadExp -> b
    com.android.tools.r8.ir.optimize.peepholes.Point lastLoadExp -> a
    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():30:30 -> <clinit>
    1:8:void <init>():30:37 -> <init>
    boolean resetAfterMatch() -> a
    1:24:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):41:64 -> a
com.android.tools.r8.ir.optimize.peepholes.Match -> com.android.tools.r8.ir.optimize.y0.e:
    java.util.List instructions -> a
    1:3:void <init>(com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression[],java.util.List):14:16 -> <init>
com.android.tools.r8.ir.optimize.peepholes.MoveLoadUpPeephole -> com.android.tools.r8.ir.optimize.y0.f:
    com.android.tools.r8.ir.optimize.peepholes.Point firstLoad -> d
    com.android.tools.r8.ir.code.Instruction insertPosition -> c
    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> f
    boolean $assertionsDisabled -> g
    com.android.tools.r8.ir.optimize.peepholes.Wildcard canMoveOver -> e
    com.android.tools.r8.ir.code.Value local -> a
    int stackHeight -> b
    1:1:void <clinit>():33:33 -> <clinit>
    1:34:void <init>():33:66 -> <init>
    boolean resetAfterMatch() -> a
    1:2:boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction):42:43 -> a
    3:6:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):70:73 -> a
    7:30:boolean isPotentionalIncInstruction(com.android.tools.r8.ir.code.InstructionListIterator):107:130 -> a
    7:30:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):73 -> a
    31:31:boolean isPotentionalIncInstruction(com.android.tools.r8.ir.code.InstructionListIterator):125:125 -> a
    31:31:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):73 -> a
    32:32:boolean isPotentionalIncInstruction(com.android.tools.r8.ir.code.InstructionListIterator):120:120 -> a
    32:32:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):73 -> a
    33:59:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):76:102 -> a
    1:10:boolean lambda$new$1(com.android.tools.r8.ir.code.Instruction):51:60 -> b
com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression -> com.android.tools.r8.ir.optimize.y0.g:
    int getMin() -> a
    void setIndex(int) -> a
    java.util.function.Predicate getPredicate() -> b
    int getMax() -> c
com.android.tools.r8.ir.optimize.peepholes.PeepholeHelper -> com.android.tools.r8.ir.optimize.y0.h:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:java.util.function.Predicate withoutLocalInfo(java.util.function.Predicate):17:17 -> a
    2:4:boolean lambda$withoutLocalInfo$0(java.util.function.Predicate,com.android.tools.r8.ir.code.Instruction):18:20 -> a
    5:5:void resetNext(com.android.tools.r8.ir.code.InstructionListIterator,int):25:25 -> a
    6:7:int numberOfValuesConsumedFromStack(com.android.tools.r8.ir.code.Instruction):47:48 -> a
    8:22:void moveInstructionsUpToCurrentPosition(com.android.tools.r8.ir.code.InstructionListIterator,java.util.List):57:71 -> a
    23:23:boolean lambda$moveInstructionsUpToCurrentPosition$1(java.util.List,com.android.tools.r8.ir.code.Instruction):64:64 -> a
    1:1:void resetPrevious(com.android.tools.r8.ir.code.InstructionListIterator,int):31:31 -> b
    2:5:int numberOfValuesPutOnStack(com.android.tools.r8.ir.code.Instruction):36:39 -> b
    6:6:boolean lambda$moveInstructionsUpToCurrentPosition$2(java.util.List,com.android.tools.r8.ir.code.Instruction):70:70 -> b
com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout -> com.android.tools.r8.ir.optimize.y0.i:
    com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression[] expressions -> b
    java.util.List instructions -> a
    boolean backwards -> c
    1:8:void <init>(boolean,com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression[]):18:25 -> <init>
    1:1:com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout lookBackward(com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression[]):33:33 -> a
    2:2:java.lang.Boolean lambda$test$0(com.android.tools.r8.ir.code.InstructionListIterator):38:38 -> a
    3:39:com.android.tools.r8.ir.optimize.peepholes.Match testDirection(java.util.function.Supplier,java.util.function.Supplier,java.lang.Runnable):48:84 -> a
    1:1:com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout lookForward(com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression[]):29:29 -> b
    2:2:com.android.tools.r8.ir.code.Instruction lambda$test$1(com.android.tools.r8.ir.code.InstructionListIterator):38:38 -> b
    1:1:void lambda$test$2(com.android.tools.r8.ir.code.InstructionListIterator):38:38 -> c
    1:1:java.lang.Boolean lambda$test$3(com.android.tools.r8.ir.code.InstructionListIterator):40:40 -> d
    1:1:com.android.tools.r8.ir.code.Instruction lambda$test$4(com.android.tools.r8.ir.code.InstructionListIterator):40:40 -> e
    1:1:void lambda$test$5(com.android.tools.r8.ir.code.InstructionListIterator):40:40 -> f
    1:4:com.android.tools.r8.ir.optimize.peepholes.Match test(com.android.tools.r8.ir.code.InstructionListIterator):37:40 -> g
com.android.tools.r8.ir.optimize.peepholes.Point -> com.android.tools.r8.ir.optimize.y0.j:
    java.util.function.Predicate predicate -> a
    int index -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():10:10 -> <clinit>
    1:1:void <init>(java.util.function.Predicate):15:15 -> <init>
    2:5:void <init>(java.util.function.Predicate):13:16 -> <init>
    int getMin() -> a
    1:2:void setIndex(int):36:37 -> a
    3:3:com.android.tools.r8.ir.code.Instruction get(com.android.tools.r8.ir.optimize.peepholes.Match):41:41 -> a
    1:1:java.util.function.Predicate getPredicate():21:21 -> b
    int getMax() -> c
com.android.tools.r8.ir.optimize.peepholes.StoreLoadPeephole -> com.android.tools.r8.ir.optimize.y0.k:
    com.android.tools.r8.ir.optimize.peepholes.Point loadExp -> b
    com.android.tools.r8.ir.optimize.peepholes.Point storeExp -> a
    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> c
    1:6:void <init>():22:27 -> <init>
    boolean resetAfterMatch() -> a
    1:18:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):31:48 -> a
com.android.tools.r8.ir.optimize.peepholes.StoreLoadToDupStorePeephole -> com.android.tools.r8.ir.optimize.y0.l:
    com.android.tools.r8.ir.optimize.peepholes.Point loadExp -> b
    com.android.tools.r8.ir.optimize.peepholes.Point storeExp -> a
    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ir.optimize.peepholes.Wildcard dupsExp -> c
    1:1:void <clinit>():33:33 -> <clinit>
    1:7:void <init>():33:39 -> <init>
    boolean lambda$match$1(com.android.tools.r8.ir.code.Load,com.android.tools.r8.ir.code.Instruction) -> a
    boolean resetAfterMatch() -> a
    1:1:boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction):37:37 -> a
    2:39:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):43:80 -> a
com.android.tools.r8.ir.optimize.peepholes.StoreSequenceLoadPeephole -> com.android.tools.r8.ir.optimize.y0.m:
    com.android.tools.r8.ir.optimize.peepholes.Point storeExp -> c
    com.android.tools.r8.ir.code.Store store -> a
    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> f
    com.android.tools.r8.ir.optimize.peepholes.Point loadExp -> e
    com.android.tools.r8.ir.optimize.peepholes.Wildcard seqExp -> d
    int stackHeight -> b
    1:48:void <init>():34:81 -> <init>
    boolean lambda$match$3(com.android.tools.r8.ir.code.Load,com.android.tools.r8.ir.code.Instruction) -> a
    boolean resetAfterMatch() -> a
    1:8:boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction):42:49 -> a
    9:50:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):85:126 -> a
    1:10:boolean lambda$new$1(com.android.tools.r8.ir.code.Instruction):56:65 -> b
    1:4:boolean lambda$new$2(com.android.tools.r8.ir.code.Instruction):72:75 -> c
com.android.tools.r8.ir.optimize.peepholes.Wildcard -> com.android.tools.r8.ir.optimize.y0.n:
    java.util.function.Predicate predicate -> a
    int index -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():11:11 -> <clinit>
    1:1:void <init>(java.util.function.Predicate):16:16 -> <init>
    2:5:void <init>(java.util.function.Predicate):14:17 -> <init>
    int getMin() -> a
    1:2:void setIndex(int):37:38 -> a
    3:3:java.util.List get(com.android.tools.r8.ir.optimize.peepholes.Match):42:42 -> a
    1:1:java.util.function.Predicate getPredicate():22:22 -> b
    int getMax() -> c
com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer -> com.android.tools.r8.ir.optimize.z0.d:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.graph.AppView appView -> a
    java.util.concurrent.ConcurrentHashMap candidates -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ir.conversion.IRConverter converter -> c
    1:1:void <clinit>():50:50 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):103:103 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):101:106 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$100(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer):50:50 -> a
    2:50:void collectCandidates(com.android.tools.r8.graph.DexApplication):113:161 -> a
    51:83:void lambda$collectCandidates$0(java.util.Map,java.util.Set,com.android.tools.r8.graph.DexProgramClass):124:156 -> a
    84:88:void lambda$collectCandidates$1(java.util.Set,java.util.Map,com.android.tools.r8.graph.DexProgramClass):162:166 -> a
    89:94:boolean isPinned(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):178:183 -> a
    89:94:void lambda$collectCandidates$1(java.util.Set,java.util.Map,com.android.tools.r8.graph.DexProgramClass):167 -> a
    95:98:void lambda$collectCandidates$1(java.util.Set,java.util.Map,com.android.tools.r8.graph.DexProgramClass):168:171 -> a
    99:109:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):213:223 -> a
    110:121:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):222:233 -> a
    122:140:java.util.List isValidGetter(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo,com.android.tools.r8.ir.code.IRCode):502:520 -> a
    122:140:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):234 -> a
    141:172:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):236:267 -> a
    173:181:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):367:375 -> a
    173:181:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
    182:182:boolean com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.isHostClassInitializer(com.android.tools.r8.graph.DexEncodedMethod):81:81 -> a
    182:182:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):378 -> a
    182:182:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
    183:183:com.android.tools.r8.graph.DexItemFactory access$000(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer):50:50 -> a
    183:183:boolean com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.isHostClassInitializer(com.android.tools.r8.graph.DexEncodedMethod):81 -> a
    183:183:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):378 -> a
    183:183:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
    184:184:boolean com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.isHostClassInitializer(com.android.tools.r8.graph.DexEncodedMethod):81:81 -> a
    184:184:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):378 -> a
    184:184:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
    185:225:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):381:421 -> a
    185:225:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
    226:226:boolean isNonThrowingConstInstruction(com.android.tools.r8.ir.code.Instruction):449:449 -> a
    226:226:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):421 -> a
    226:226:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
    227:240:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):424:437 -> a
    227:240:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
    241:248:boolean isValidStaticPut(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo,com.android.tools.r8.ir.code.Instruction):484:491 -> a
    241:248:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):437 -> a
    241:248:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
    249:253:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):438:442 -> a
    249:253:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
    254:255:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):274:275 -> a
    256:259:boolean isAllowedInHostClassInitializer(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):357:360 -> a
    256:259:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):275 -> a
    260:265:boolean com.android.tools.r8.ir.code.Goto.isTrivialGotoToTheNextBlock(com.android.tools.r8.ir.code.IRCode):104:109 -> a
    260:265:boolean isAllowedInHostClassInitializer(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):360 -> a
    260:265:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):275 -> a
    266:266:boolean isAllowedInHostClassInitializer(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):361:361 -> a
    266:266:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):275 -> a
    267:291:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):276:300 -> a
    292:304:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processStaticFieldRead(com.android.tools.r8.ir.code.StaticGet):533:545 -> a
    292:304:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):300 -> a
    305:317:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):302:314 -> a
    318:327:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInvokeStatic(com.android.tools.r8.ir.code.InvokeStatic):553:562 -> a
    318:327:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):314 -> a
    328:360:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):316:348 -> a
    361:386:boolean isValidInitCall(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):454:479 -> a
    387:435:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo analyzeAllValueUsers(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo,com.android.tools.r8.ir.code.Value,boolean):569:617 -> a
    436:436:boolean lambda$analyzeAllValueUsers$3(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):588:588 -> a
    437:437:void staticizeCandidates(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):640:640 -> a
    1:1:boolean lambda$isValidInitCall$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):464:464 -> b
com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$1 -> com.android.tools.r8.ir.optimize.z0.a:
com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CallSiteReferencesInvalidator -> com.android.tools.r8.ir.optimize.z0.b:
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer this$0 -> a
    1:1:void <init>(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$1):643:643 -> <init>
    2:3:void <init>(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.graph.DexItemFactory):645:646 -> <init>
    1:2:boolean registerMethod(com.android.tools.r8.graph.DexMethod):650:651 -> a
    3:4:boolean registerField(com.android.tools.r8.graph.DexField):656:657 -> a
    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):693:693 -> registerInstanceFieldRead
    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):688:688 -> registerInstanceFieldWrite
    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):668:668 -> registerInvokeDirect
    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):678:678 -> registerInvokeInterface
    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):673:673 -> registerInvokeStatic
    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):683:683 -> registerInvokeSuper
    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):663:663 -> registerInvokeVirtual
    1:1:boolean registerNewInstance(com.android.tools.r8.graph.DexType):698:698 -> registerNewInstance
    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):703:703 -> registerStaticFieldRead
    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):708:708 -> registerStaticFieldWrite
    1:3:boolean registerTypeReference(com.android.tools.r8.graph.DexType):713:715 -> registerTypeReference
com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo -> com.android.tools.r8.ir.optimize.z0.c:
    java.util.concurrent.atomic.AtomicInteger instancesCreated -> e
    com.android.tools.r8.graph.DexEncodedField singletonField -> b
    java.util.concurrent.atomic.AtomicInteger fieldWrites -> d
    java.util.concurrent.atomic.AtomicReference constructor -> g
    boolean $assertionsDisabled -> j
    java.util.concurrent.atomic.AtomicReference getter -> h
    java.util.concurrent.atomic.AtomicBoolean preserveRead -> c
    com.android.tools.r8.graph.DexProgramClass candidate -> a
    java.util.Set referencedFrom -> f
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer this$0 -> i
    1:1:void <clinit>():58:58 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField):70:70 -> <init>
    2:18:void <init>(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField):61:77 -> <init>
    1:1:com.android.tools.r8.graph.DexType hostType():85:85 -> a
    1:1:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo invalidate():95:95 -> b
com.android.tools.r8.ir.optimize.staticizer.ClassStaticizerGraphLense -> com.android.tools.r8.ir.optimize.z0.e:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():15:15 -> <clinit>
    1:7:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap):22:28 -> <init>
    8:8:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap):21:21 -> <init>
    1:3:com.android.tools.r8.ir.code.Invoke$Type mapInvocationType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):33:35 -> mapInvocationType
com.android.tools.r8.ir.optimize.staticizer.StaticizingProcessor -> com.android.tools.r8.ir.optimize.z0.f:
    java.util.Set methodsToBeStaticized -> g
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer classStaticizer -> b
    java.util.Map processingQueue -> d
    boolean $assertionsDisabled -> j
    java.util.Set referencingExtraMethods -> e
    java.util.Map candidateToHostMapping -> i
    java.util.Map hostClassInits -> f
    com.android.tools.r8.ir.conversion.IRConverter converter -> c
    java.util.Map singletonFields -> h
    1:1:void <clinit>():54:54 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.ir.conversion.IRConverter):73:73 -> <init>
    2:17:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.ir.conversion.IRConverter):61:76 -> <init>
    1:4:void lambda$run$0(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.com.google.common.collect.ImmutableList$Builder):91:94 -> a
    5:5:void lambda$run$1(com.android.tools.r8.com.google.common.collect.ImmutableList$Builder):100:100 -> a
    6:59:void finalEligibilityCheck():127:180 -> a
    60:60:com.android.tools.r8.graph.DexItemFactory factory():725:725 -> a
    60:60:void finalEligibilityCheck():180 -> a
    61:71:void finalEligibilityCheck():180:190 -> a
    72:101:void finalEligibilityCheck():189:218 -> a
    102:115:void finalEligibilityCheck():217:230 -> a
    116:116:boolean lambda$finalEligibilityCheck$4(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo,com.android.tools.r8.ir.code.StaticGet):210:210 -> a
    117:118:void enqueueMethodsWithCodeOptimizations(java.lang.Iterable,java.util.function.Consumer):267:268 -> a
    119:119:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder lambda$enqueueMethodsWithCodeOptimizations$5(com.android.tools.r8.graph.DexEncodedMethod):268:268 -> a
    120:121:void processMethodsConcurrently(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):284:285 -> a
    122:127:void processMethodsConcurrently(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):284:289 -> a
    128:128:void lambda$processMethodsConcurrently$6(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod):286:286 -> a
    129:129:void com.android.tools.r8.ir.code.Instruction.removeOrReplaceByDebugLocalRead(com.android.tools.r8.ir.code.IRCode):294:294 -> a
    129:129:void lambda$removeCandidateInstantiation$9(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):330 -> a
    130:134:void forEachMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection,com.android.tools.r8.ir.optimize.info.OptimizationFeedback):297:301 -> a
    135:135:void lambda$forEachMethod$7(com.android.tools.r8.ir.code.IRCode,java.util.function.Consumer):299:299 -> a
    136:136:void insertAssumeInstructions(com.android.tools.r8.ir.code.IRCode):305:305 -> a
    137:137:java.util.function.Consumer collectOptimizationInfo(com.android.tools.r8.ir.optimize.info.OptimizationFeedback):309:309 -> a
    138:138:void lambda$collectOptimizationInfo$8(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.ir.code.IRCode):309:309 -> a
    139:139:boolean lambda$rewriteReferences$10(com.android.tools.r8.ir.code.StaticGet):349:349 -> a
    140:147:void lambda$rewriteReferences$11(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.StaticGet):354:361 -> a
    148:148:void com.android.tools.r8.ir.code.Instruction.removeOrReplaceByDebugLocalRead(com.android.tools.r8.ir.code.IRCode):294:294 -> a
    148:148:void lambda$rewriteReferences$11(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.StaticGet):362 -> a
    149:169:boolean testAndCollectPhisComposedOfThis(java.util.Set,java.util.Set,com.android.tools.r8.ir.code.Value,java.util.Set):373:393 -> a
    170:174:void fixupStaticizedThisUsers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):400:404 -> a
    175:192:void fixupStaticizedThisUsers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):403:420 -> a
    193:216:boolean testAndCollectPhisComposedOfSameFieldRead(java.util.Set,java.util.Set,com.android.tools.r8.graph.DexField,java.util.Set):459:482 -> a
    217:222:void fixupStaticizedFieldReadUsers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):490:495 -> a
    223:240:void fixupStaticizedFieldReadUsers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):494:511 -> a
    241:250:void fixupStaticizedValueUsers(com.android.tools.r8.ir.code.IRCode,java.util.Set):515:524 -> a
    251:251:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.IRCode.createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):1045:1045 -> a
    251:251:void fixupStaticizedValueUsers(com.android.tools.r8.ir.code.IRCode,java.util.Set):524 -> a
    252:259:void fixupStaticizedValueUsers(com.android.tools.r8.ir.code.IRCode,java.util.Set):525:532 -> a
    260:260:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298:298 -> a
    260:260:void fixupStaticizedValueUsers(com.android.tools.r8.ir.code.IRCode,java.util.Set):531 -> a
    261:261:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    261:261:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298 -> a
    261:261:void fixupStaticizedValueUsers(com.android.tools.r8.ir.code.IRCode,java.util.Set):531 -> a
    262:262:com.android.tools.r8.graph.DexField mapFieldIfMoved(com.android.tools.r8.graph.DexField):591:591 -> a
    263:263:com.android.tools.r8.graph.DexItemFactory factory():725:725 -> a
    263:263:com.android.tools.r8.graph.DexField mapFieldIfMoved(com.android.tools.r8.graph.DexField):593 -> a
    264:266:com.android.tools.r8.graph.DexField mapFieldIfMoved(com.android.tools.r8.graph.DexField):593:595 -> a
    267:267:com.android.tools.r8.graph.DexItemFactory factory():725:725 -> a
    267:267:com.android.tools.r8.graph.DexField mapFieldIfMoved(com.android.tools.r8.graph.DexField):597 -> a
    268:268:com.android.tools.r8.graph.DexField mapFieldIfMoved(com.android.tools.r8.graph.DexField):597:597 -> a
    269:272:boolean classMembersConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):645:648 -> a
    273:273:boolean lambda$classMembersConflict$12(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):647:647 -> a
    274:274:boolean lambda$classMembersConflict$13(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):648:648 -> a
    275:275:com.android.tools.r8.graph.DexField mapCandidateField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):717:717 -> a
    276:276:com.android.tools.r8.graph.DexItemFactory factory():725:725 -> a
    276:276:com.android.tools.r8.graph.DexField mapCandidateField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):718 -> a
    277:278:com.android.tools.r8.graph.DexField mapCandidateField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):719:720 -> a
    279:279:com.android.tools.r8.graph.DexField mapCandidateField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):718:718 -> a
    1:1:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):82:82 -> b
    2:5:void prepareCandidates():237:240 -> b
    2:5:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):85 -> b
    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.hostClass():89:89 -> b
    6:6:void prepareCandidates():242 -> b
    6:6:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):85 -> b
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.hostClass():89 -> b
    7:7:void prepareCandidates():242 -> b
    7:7:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):85 -> b
    8:8:com.android.tools.r8.graph.DexClass com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.hostClass():90:90 -> b
    8:8:void prepareCandidates():242 -> b
    8:8:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):85 -> b
    9:17:void prepareCandidates():243:251 -> b
    9:17:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):85 -> b
    18:18:com.android.tools.r8.graph.DexItemFactory factory():725:725 -> b
    18:18:void prepareCandidates():252 -> b
    18:18:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):85 -> b
    19:28:void prepareCandidates():252:261 -> b
    19:28:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):85 -> b
    29:30:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):88:89 -> b
    31:46:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):88:103 -> b
    47:58:java.util.Set staticizeMethodSymbols():603:614 -> b
    47:58:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):107 -> b
    59:59:com.android.tools.r8.graph.DexItemFactory factory():725:725 -> b
    59:59:java.util.Set staticizeMethodSymbols():615 -> b
    59:59:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):107 -> b
    60:73:java.util.Set staticizeMethodSymbols():615:628 -> b
    60:73:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):107 -> b
    74:74:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    74:74:java.util.Set staticizeMethodSymbols():628 -> b
    74:74:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):107 -> b
    75:76:java.util.Set staticizeMethodSymbols():629:630 -> b
    75:76:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):107 -> b
    77:115:void moveMembersIntoHost(java.util.Set,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap):657:695 -> b
    77:115:java.util.Set staticizeMethodSymbols():632 -> b
    77:115:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):107 -> b
    116:116:com.android.tools.r8.graph.DexItemFactory factory():725:725 -> b
    116:116:void moveMembersIntoHost(java.util.Set,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap):697 -> b
    116:116:java.util.Set staticizeMethodSymbols():632 -> b
    116:116:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):107 -> b
    117:117:void moveMembersIntoHost(java.util.Set,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap):697:697 -> b
    117:117:java.util.Set staticizeMethodSymbols():632 -> b
    117:117:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):107 -> b
    118:134:void moveMembersIntoHost(java.util.Set,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap):696:712 -> b
    118:134:java.util.Set staticizeMethodSymbols():632 -> b
    118:134:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):107 -> b
    135:136:java.util.Set staticizeMethodSymbols():638:639 -> b
    135:136:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):107 -> b
    137:148:void run(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,java.util.concurrent.ExecutorService):112:123 -> b
    149:152:void lambda$run$2(com.android.tools.r8.ir.optimize.info.OptimizationFeedback,com.android.tools.r8.com.google.common.collect.ImmutableList$Builder):117:120 -> b
    153:153:boolean lambda$finalEligibilityCheck$3(com.android.tools.r8.graph.DexEncodedMethod):172:172 -> b
    154:166:void removeCandidateInstantiation(com.android.tools.r8.ir.code.IRCode):313:325 -> b
    167:167:com.android.tools.r8.graph.DexItemFactory factory():725:725 -> b
    167:167:void removeCandidateInstantiation(com.android.tools.r8.ir.code.IRCode):325 -> b
    168:173:void removeCandidateInstantiation(com.android.tools.r8.ir.code.IRCode):325:330 -> b
    174:174:void com.android.tools.r8.ir.code.Instruction.removeOrReplaceByDebugLocalRead(com.android.tools.r8.ir.code.IRCode):294:294 -> b
    174:174:void removeCandidateInstantiation(com.android.tools.r8.ir.code.IRCode):331 -> b
    175:175:void removeCandidateInstantiation(com.android.tools.r8.ir.code.IRCode):336:336 -> b
    1:1:void removeReferencesToThis(com.android.tools.r8.ir.code.IRCode):340:340 -> c
    1:21:void rewriteReferences(com.android.tools.r8.ir.code.IRCode):346:366 -> d
    22:22:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> d
    22:22:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):538 -> d
    22:22:void rewriteReferences(com.android.tools.r8.ir.code.IRCode):367 -> d
    23:36:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):539:552 -> d
    23:36:void rewriteReferences(com.android.tools.r8.ir.code.IRCode):367 -> d
    37:39:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):551:553 -> d
    37:39:void rewriteReferences(com.android.tools.r8.ir.code.IRCode):367 -> d
    40:40:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):550:550 -> d
    40:40:void rewriteReferences(com.android.tools.r8.ir.code.IRCode):367 -> d
    41:41:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> d
    41:41:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):548 -> d
    41:41:void rewriteReferences(com.android.tools.r8.ir.code.IRCode):367 -> d
    42:46:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):559:563 -> d
    42:46:void rewriteReferences(com.android.tools.r8.ir.code.IRCode):367 -> d
    47:47:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> d
    47:47:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):563 -> d
    47:47:void rewriteReferences(com.android.tools.r8.ir.code.IRCode):367 -> d
    48:51:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):568:571 -> d
    48:51:void rewriteReferences(com.android.tools.r8.ir.code.IRCode):367 -> d
    52:52:com.android.tools.r8.graph.DexItemFactory factory():725:725 -> d
    52:52:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):573 -> d
    52:52:void rewriteReferences(com.android.tools.r8.ir.code.IRCode):367 -> d
    53:61:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):573:581 -> d
    53:61:void rewriteReferences(com.android.tools.r8.ir.code.IRCode):367 -> d
    62:64:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):580:582 -> d
    62:64:void rewriteReferences(com.android.tools.r8.ir.code.IRCode):367 -> d
    65:69:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):579:583 -> d
    65:69:void rewriteReferences(com.android.tools.r8.ir.code.IRCode):367 -> d
    70:70:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> d
    70:70:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):583 -> d
    70:70:void rewriteReferences(com.android.tools.r8.ir.code.IRCode):367 -> d
com.android.tools.r8.ir.optimize.string.StringBuilderOptimizationConfiguration -> com.android.tools.r8.ir.optimize.string.a:
    boolean isBuilderInit(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType) -> a
    boolean isBuilderType(com.android.tools.r8.graph.DexType) -> a
    boolean isSupportedAppendMethod(com.android.tools.r8.ir.code.InvokeMethod) -> a
    boolean isToStringMethod(com.android.tools.r8.graph.DexMethod) -> a
    boolean isAppendMethod(com.android.tools.r8.graph.DexMethod) -> b
    boolean isBuilderInitWithInitialValue(com.android.tools.r8.ir.code.InvokeMethod) -> b
    boolean isBuilderInit(com.android.tools.r8.graph.DexMethod) -> c
com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer -> com.android.tools.r8.ir.optimize.string.b:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    int numberOfDeadBuilders -> n
    int numberOfBuildersSimplified -> o
    int numberOfBuildersWithMergingPoints -> l
    com.android.tools.r8.graph.AppView appView -> a
    int numberOfBuildersWithNonDeterministicArg -> m
    int numberOfBuildersWithNonTrivialStateChange -> j
    int numberOfBuildersWithUnsupportedArg -> k
    com.android.tools.r8.ir.optimize.string.StringBuilderOptimizationConfiguration optimizationConfiguration -> e
    int numberOfBuildersThatEscape -> h
    int numberOfBuildersWhoseResultIsInterned -> i
    int numberOfBuildersWithMultipleToString -> f
    int numberOfBuildersWithoutToString -> g
    boolean $assertionsDisabled -> t
    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfLengthOfAppendChains -> p
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfLengthOfEndResult -> q
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfLengthOfPartialAppendChains -> r
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfLengthOfPartialResult -> s
    com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis analysis -> d
    1:1:void <clinit>():79:79 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):103:103 -> <init>
    2:31:void <init>(com.android.tools.r8.graph.AppView):88:117 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap access$1000(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> a
    2:4:void logResults():122:124 -> a
    5:8:void logResults():123:126 -> a
    9:12:void logResults():125:128 -> a
    13:16:void logResults():127:130 -> a
    17:20:void logResults():129:132 -> a
    21:24:void logResults():131:134 -> a
    25:28:void logResults():133:136 -> a
    29:32:void logResults():135:138 -> a
    33:61:void logResults():137:165 -> a
    62:63:void lambda$logResults$0(java.lang.Integer,java.lang.Integer):144:145 -> a
    64:64:void lambda$logResults$0(java.lang.Integer,java.lang.Integer):144:144 -> a
    65:80:void computeTrivialStringConcatenation(com.android.tools.r8.ir.code.IRCode):173:188 -> a
    81:81:boolean lambda$computeTrivialStringConcatenation$4(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis,com.android.tools.r8.ir.code.Value):180:180 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap access$1100(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> b
    2:3:void lambda$logResults$1(java.lang.Integer,java.lang.Integer):151:152 -> b
    4:4:void lambda$logResults$1(java.lang.Integer,java.lang.Integer):151:151 -> b
    1:1:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo access$1200(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> c
    2:3:void lambda$logResults$2(java.lang.Integer,java.lang.Integer):159:160 -> c
    4:4:void lambda$logResults$2(java.lang.Integer,java.lang.Integer):159:159 -> c
    1:1:int access$1308(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> d
    2:3:void lambda$logResults$3(java.lang.Integer,java.lang.Integer):166:167 -> d
    4:4:void lambda$logResults$3(java.lang.Integer,java.lang.Integer):166:166 -> d
    1:1:int access$1408(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> e
    1:1:int access$1508(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> f
    1:1:int access$1608(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> g
    1:1:int access$1708(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> h
    1:1:int access$1808(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> i
    1:1:int access$1908(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> j
    1:1:int access$2008(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> k
    1:1:com.android.tools.r8.graph.AppView access$300(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> l
    1:1:int access$408(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> m
    1:1:int access$508(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> n
    1:1:com.android.tools.r8.graph.DexItemFactory access$700(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> o
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap access$800(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> p
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap access$900(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):79:79 -> q
com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$1 -> com.android.tools.r8.ir.optimize.string.b$a:
com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState -> com.android.tools.r8.ir.optimize.string.b$b:
    com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState previous -> a
    java.util.Set nexts -> c
    java.lang.String addition -> b
    1:4:void <init>():966:969 -> <init>
    1:1:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState createRoot():973:973 -> a
    2:8:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState createChild(java.lang.String):977:983 -> a
com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$DefaultStringBuilderOptimizationConfiguration -> com.android.tools.r8.ir.optimize.string.b$c:
    com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer this$0 -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():794:794 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer):794:794 -> <init>
    1:2:boolean isBuilderType(com.android.tools.r8.graph.DexType):798:799 -> a
    3:4:boolean isBuilderInit(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):804:805 -> a
    5:20:boolean isSupportedAppendMethod(com.android.tools.r8.ir.code.InvokeMethod):829:844 -> a
    21:21:boolean canHandleArgumentType(com.android.tools.r8.graph.DexType):858:858 -> a
    21:21:boolean isSupportedAppendMethod(com.android.tools.r8.ir.code.InvokeMethod):845 -> a
    22:23:boolean isToStringMethod(com.android.tools.r8.graph.DexMethod):852:853 -> a
    1:3:boolean isBuilderInitWithInitialValue(com.android.tools.r8.ir.code.InvokeMethod):816:818 -> b
    4:5:boolean isAppendMethod(com.android.tools.r8.graph.DexMethod):823:824 -> b
    1:2:boolean isBuilderInit(com.android.tools.r8.graph.DexMethod):810:811 -> c
com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringBuilderOptimizerEscapeAnalysisConfiguration -> com.android.tools.r8.ir.optimize.string.b$d:
    com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer this$0 -> b
    com.android.tools.r8.graph.DexType builderType -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():862:862 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$1):862:862 -> <init>
    2:5:void <init>(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer,com.android.tools.r8.ir.code.Value):866:869 -> <init>
    1:1:void logEscapingRoute(boolean):874:874 -> a
    1:10:boolean isLegitimateEscapeRoute(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysis,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod):884:893 -> isLegitimateEscapeRoute
    11:11:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> isLegitimateEscapeRoute
    11:11:boolean isLegitimateEscapeRoute(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysis,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod):893 -> isLegitimateEscapeRoute
    12:73:boolean isLegitimateEscapeRoute(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysis,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod):894:955 -> isLegitimateEscapeRoute
    74:74:boolean isLegitimateEscapeRoute(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysis,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod):885:885 -> isLegitimateEscapeRoute
com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis -> com.android.tools.r8.ir.optimize.string.b$e:
    java.util.Map builderStates -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap builderToStringCounts -> b
    com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer this$0 -> f
    java.util.Set deadBuilders -> d
    java.util.Set simplifiedBuilders -> e
    com.android.tools.r8.ir.code.IRCode code -> a
    boolean $assertionsDisabled -> g
    1:1:void <clinit>():191:191 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer,com.android.tools.r8.ir.code.IRCode):205:205 -> <init>
    2:374:void <init>(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer,com.android.tools.r8.ir.code.IRCode):203:575 -> <init>
    375:375:void <init>(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer,com.android.tools.r8.ir.code.IRCode):206:206 -> <init>
    1:28:java.util.Set findAllLocalBuilders():217:244 -> a
    1:28:java.util.Set access$000(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis):191 -> a
    29:31:java.util.Set collectAllLinkedBuilders(com.android.tools.r8.ir.code.Value):257:259 -> a
    29:31:java.util.Set findAllLocalBuilders():245 -> a
    29:31:java.util.Set access$000(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis):191 -> a
    32:40:java.util.Set findAllLocalBuilders():245:253 -> a
    32:40:java.util.Set access$000(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis):191 -> a
    41:49:void collectAllLinkedBuilders(com.android.tools.r8.ir.code.Value,java.util.Set,java.util.Set):264:272 -> a
    50:73:boolean canBeOptimized(com.android.tools.r8.ir.code.Value):280:303 -> a
    50:73:boolean access$2100(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis,com.android.tools.r8.ir.code.Value):191 -> a
    74:74:java.util.Map createBuilderState(com.android.tools.r8.ir.code.Value):312:312 -> a
    75:153:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis buildBuilderStateGraph(java.util.Set):346:424 -> a
    75:153:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis access$100(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis,java.util.Set):191 -> a
    154:183:java.lang.String extractConstantArgument(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):435:464 -> a
    184:191:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState findDominantState(com.android.tools.r8.ir.code.DominatorTree,java.util.Map,com.android.tools.r8.ir.code.Instruction):522:529 -> a
    192:211:void logHistogramOfChains(java.util.List,boolean):537:556 -> a
    212:228:void logHistogramOfChains(java.util.List,boolean):551:567 -> a
    229:229:void logHistogramOfChains(java.util.List,boolean):562:562 -> a
    230:231:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):578:579 -> a
    232:232:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    232:232:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):579 -> a
    233:269:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):580:616 -> a
    270:275:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):614:619 -> a
    276:276:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    276:276:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):618 -> a
    277:278:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):620:621 -> a
    279:283:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):591:595 -> a
    284:288:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):593:597 -> a
    289:289:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    289:289:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):596 -> a
    290:316:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):599:625 -> a
    317:317:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    317:317:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):625 -> a
    318:318:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):625:625 -> a
    319:319:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    319:319:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis applyConcatenationResults(java.util.Set):579 -> a
    320:346:boolean isToStringOfInterest(java.util.Set,com.android.tools.r8.ir.code.Instruction):631:657 -> a
    320:346:boolean lambda$applyConcatenationResults$1(java.util.Set,com.android.tools.r8.ir.code.Instruction):581 -> a
    347:392:java.lang.String toCompileTimeString(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState):669:714 -> a
    393:396:int estimateSizeReduction(java.util.List):721:724 -> a
    393:396:java.lang.String toCompileTimeString(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState):715 -> a
    397:397:java.lang.String toCompileTimeString(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$BuilderState):716:716 -> a
    398:404:void removeTrivialBuilders():731:737 -> a
    405:405:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    405:405:void removeTrivialBuilders():737 -> a
    406:418:void removeTrivialBuilders():738:750 -> a
    419:419:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    419:419:void removeTrivialBuilders():750 -> a
    420:449:void removeTrivialBuilders():751:780 -> a
    450:450:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    450:450:void removeTrivialBuilders():780 -> a
    451:460:void removeTrivialBuilders():781:790 -> a
    461:461:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    461:461:void removeTrivialBuilders():780 -> a
    462:462:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    462:462:void removeTrivialBuilders():750 -> a
    463:463:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    463:463:void removeTrivialBuilders():737 -> a
    1:1:com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis access$200(com.android.tools.r8.ir.optimize.string.StringBuilderOptimizer$StringConcatenationAnalysis,java.util.Set):191:191 -> b
    2:40:java.lang.Number extractConstantNumber(com.android.tools.r8.ir.code.Value):472:510 -> b
    1:1:java.util.Map getBuilderState(com.android.tools.r8.ir.code.Value):317:317 -> c
    1:1:java.util.Map lambda$createBuilderState$0(com.android.tools.r8.ir.code.Value):312:312 -> d
com.android.tools.r8.ir.optimize.string.StringOptimizer -> com.android.tools.r8.ir.optimize.string.d:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap numberOfComputedNames -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap numberOfDeferredComputationOfNames -> f
    int numberOfSimplifiedConversions -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfLengthOfNames -> g
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap histogramOfLengthOfDeferredNames -> h
    int numberOfSimplifiedOperations -> d
    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> c
    1:1:void <clinit>():47:47 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):60:60 -> <init>
    2:22:void <init>(com.android.tools.r8.graph.AppView):53:73 -> <init>
    1:3:void logResult():78:80 -> a
    4:7:void logResult():79:82 -> a
    8:34:void logResult():81:107 -> a
    35:36:void lambda$logResult$0(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping,java.lang.Integer):86:87 -> a
    37:37:void lambda$logResult$0(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping,java.lang.Integer):86:86 -> a
    38:39:void lambda$logResult$2(java.lang.Integer,java.lang.Integer):100:101 -> a
    40:40:void lambda$logResult$2(java.lang.Integer,java.lang.Integer):100:100 -> a
    41:44:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):133:136 -> a
    45:45:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    45:45:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):137 -> a
    46:95:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):138:187 -> a
    96:101:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):185:190 -> a
    102:102:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    102:102:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):189 -> a
    103:117:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):191:205 -> a
    118:122:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):203:207 -> a
    123:123:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    123:123:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):207 -> a
    124:183:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):208:267 -> a
    184:184:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1059:1059 -> a
    184:184:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):268 -> a
    185:192:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):270:277 -> a
    193:193:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1059:1059 -> a
    193:193:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):278 -> a
    194:202:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):280:288 -> a
    203:203:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.IRCode.createIntConstant(int):1059:1059 -> a
    203:203:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):289 -> a
    204:204:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):292:292 -> a
    205:205:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    205:205:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):293 -> a
    206:207:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):296:297 -> a
    208:208:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    208:208:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):297 -> a
    209:209:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):297:297 -> a
    210:213:java.lang.Integer lambda$computeTrivialOperationsOnConstString$4(com.android.tools.r8.graph.DexString):218:221 -> a
    214:214:java.lang.Integer lambda$computeTrivialOperationsOnConstString$10(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):235:235 -> a
    215:215:java.lang.Integer lambda$computeTrivialOperationsOnConstString$13(com.android.tools.r8.graph.DexString,java.lang.Integer):241:241 -> a
    216:219:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):304:307 -> a
    220:220:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> a
    220:220:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):309 -> a
    221:262:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):310:351 -> a
    263:263:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    263:263:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):354 -> a
    264:321:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):359:416 -> a
    322:323:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):397:398 -> a
    324:324:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    324:324:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):399 -> a
    325:354:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):419:448 -> a
    355:358:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):446:449 -> a
    359:359:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    359:359:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):450 -> a
    360:366:void logHistogramOfNames(com.android.tools.r8.graph.DexString):480:486 -> a
    360:366:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):451 -> a
    367:367:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):453:453 -> a
    368:368:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    368:368:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):454 -> a
    369:377:void logHistogramOfNames(com.android.tools.r8.ir.code.DexItemBasedConstString):501:509 -> a
    369:377:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):456 -> a
    378:379:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):461:462 -> a
    380:380:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> a
    380:380:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):462 -> a
    381:384:void rewriteClassGetName(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):462:465 -> a
    385:390:void logDeferredNameComputation(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):491:496 -> a
    1:2:void lambda$logResult$1(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping,java.lang.Integer):93:94 -> b
    3:3:void lambda$logResult$1(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping,java.lang.Integer):93:93 -> b
    4:5:void lambda$logResult$3(java.lang.Integer,java.lang.Integer):108:109 -> b
    6:6:void lambda$logResult$3(java.lang.Integer,java.lang.Integer):108:108 -> b
    7:7:java.lang.Integer lambda$computeTrivialOperationsOnConstString$5(com.android.tools.r8.graph.DexString):225:225 -> b
    8:8:java.lang.Integer lambda$computeTrivialOperationsOnConstString$11(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):237:237 -> b
    9:9:java.lang.Integer lambda$computeTrivialOperationsOnConstString$15(com.android.tools.r8.graph.DexString,java.lang.Integer):245:245 -> b
    10:15:void logNameComputation(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):470:475 -> b
    16:16:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):517:517 -> b
    17:17:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> b
    17:17:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):518 -> b
    18:38:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):519:539 -> b
    39:43:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):537:541 -> b
    44:44:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> b
    44:44:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):542 -> b
    45:82:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):543:580 -> b
    83:83:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView):46:46 -> b
    83:83:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):580 -> b
    84:84:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):580:580 -> b
    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$6(com.android.tools.r8.graph.DexString):227:227 -> c
    2:2:java.lang.Integer lambda$computeTrivialOperationsOnConstString$12(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):239:239 -> c
    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$14(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):243:243 -> d
    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$16(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):247:247 -> e
    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$17(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):249:249 -> f
    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$18(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):251:251 -> g
    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$7(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):229:229 -> h
    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$8(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):231:231 -> i
    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$9(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):233:233 -> j
com.android.tools.r8.ir.optimize.string.StringOptimizer$StringOptimizerEscapeAnalysisConfiguration -> com.android.tools.r8.ir.optimize.string.c:
    com.android.tools.r8.ir.optimize.string.StringOptimizer$StringOptimizerEscapeAnalysisConfiguration INSTANCE -> a
    1:1:void <clinit>():587:587 -> <clinit>
    1:1:void <init>():590:590 -> <init>
    1:1:com.android.tools.r8.ir.optimize.string.StringOptimizer$StringOptimizerEscapeAnalysisConfiguration getInstance():593:593 -> a
    1:21:boolean isLegitimateEscapeRoute(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysis,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod):602:622 -> isLegitimateEscapeRoute
com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator -> com.android.tools.r8.ir.regalloc.a:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.List moveExceptionIntervals -> o
    int maxRegisterNumber -> i
    com.android.tools.r8.ir.code.IRCode code -> b
    java.util.PriorityQueue unhandled -> m
    boolean $assertionsDisabled -> r
    int numberOfArgumentRegisters -> c
    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode mode -> g
    java.util.Map liveAtEntrySets -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList expiredHere -> n
    com.android.tools.r8.ir.code.Value lastArgumentValue -> f
    java.util.TreeSet freeRegisters -> h
    com.android.tools.r8.ir.code.Value firstArgumentValue -> e
    java.util.List liveIntervals -> j
    int[] unusedRegisters -> q
    java.util.List inactive -> l
    int firstParallelMoveTemporary -> p
    java.util.List active -> k
    1:1:void <clinit>():87:87 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):189:189 -> <init>
    2:57:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):143:198 -> <init>
    void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List) -> a
    boolean longHalfOverlappingLong(int,int) -> a
    1:19:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):249:267 -> a
    20:91:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):265:336 -> a
    92:92:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(int):110:110 -> a
    92:92:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):336 -> a
    93:95:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):337:339 -> a
    96:104:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):461:469 -> a
    96:104:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):344 -> a
    105:105:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(int):110:110 -> a
    105:105:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):469 -> a
    105:105:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):344 -> a
    106:126:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):471:491 -> a
    106:126:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):344 -> a
    127:127:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> a
    127:127:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):494 -> a
    127:127:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):344 -> a
    128:130:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):494:496 -> a
    128:130:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):344 -> a
    131:133:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):462:464 -> a
    131:133:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):344 -> a
    134:134:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167:167 -> a
    134:134:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):464 -> a
    134:134:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):344 -> a
    135:135:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):464:464 -> a
    135:135:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):344 -> a
    136:207:void computeDebugInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):347:418 -> a
    208:208:int lambda$computeDebugInfo$0(com.android.tools.r8.ir.regalloc.LiveRange):261:261 -> a
    209:210:boolean lambda$computeDebugInfo$2(java.util.Set,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):319:320 -> a
    211:211:boolean isLocalLiveAtInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):425:425 -> a
    212:213:boolean isLocalLiveAtInstruction(com.android.tools.r8.ir.code.Instruction,int,int,com.android.tools.r8.ir.code.Value):430:431 -> a
    212:213:boolean isLocalLiveAtInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):425 -> a
    214:215:boolean usesValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction):436:437 -> a
    214:215:boolean isLocalLiveAtInstruction(com.android.tools.r8.ir.code.Instruction,int,int,com.android.tools.r8.ir.code.Value):432 -> a
    214:215:boolean isLocalLiveAtInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):425 -> a
    216:222:boolean valuesContain(com.android.tools.r8.ir.code.Value,java.util.Collection):441:447 -> a
    223:246:com.android.tools.r8.ir.code.DebugLocalsChange createLocalsChange(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.code.Position):504:527 -> a
    247:266:com.android.tools.r8.ir.code.DebugLocalsChange createLocalsChange(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.code.Position):510:529 -> a
    267:271:void addRegisterIfUsed(java.util.Set,com.android.tools.r8.ir.regalloc.LiveIntervals):576:580 -> a
    272:284:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):600:612 -> a
    285:286:int getRegisterForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):797:798 -> a
    285:286:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):614 -> a
    287:289:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):605:607 -> a
    290:290:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    290:290:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30 -> a
    290:290:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):607 -> a
    291:291:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):607:607 -> a
    292:292:com.android.tools.r8.utils.InternalOptions options():627:627 -> a
    293:293:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):645:645 -> a
    294:305:void clearRegisterAssignments(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):778:789 -> a
    294:305:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):648 -> a
    306:306:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):649:649 -> a
    307:315:void pinArgumentRegisters():2945:2953 -> a
    307:315:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):652 -> a
    316:316:void pinArgumentRegisters():2950:2950 -> a
    316:316:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):652 -> a
    317:378:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):826:887 -> a
    317:378:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    379:379:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
    379:379:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):888 -> a
    379:379:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    380:401:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):893:914 -> a
    380:401:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    402:408:void setHintForDestRegOfCheckCast(com.android.tools.r8.ir.regalloc.LiveIntervals):1054:1060 -> a
    402:408:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):916 -> a
    402:408:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    409:409:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
    409:409:void setHintForDestRegOfCheckCast(com.android.tools.r8.ir.regalloc.LiveIntervals):1060 -> a
    409:409:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):916 -> a
    409:409:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    410:411:void setHintForDestRegOfCheckCast(com.android.tools.r8.ir.regalloc.LiveIntervals):1061:1062 -> a
    410:411:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):916 -> a
    410:411:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    412:418:void setHintToPromote2AddrInstruction(com.android.tools.r8.ir.regalloc.LiveIntervals):1073:1079 -> a
    412:418:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):917 -> a
    412:418:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    419:419:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
    419:419:void setHintToPromote2AddrInstruction(com.android.tools.r8.ir.regalloc.LiveIntervals):1079 -> a
    419:419:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):917 -> a
    419:419:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    420:425:void setHintToPromote2AddrInstruction(com.android.tools.r8.ir.regalloc.LiveIntervals):1080:1085 -> a
    420:425:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):917 -> a
    420:425:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    426:426:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
    426:426:void setHintToPromote2AddrInstruction(com.android.tools.r8.ir.regalloc.LiveIntervals):1085 -> a
    426:426:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):917 -> a
    426:426:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    427:427:void setHintToPromote2AddrInstruction(com.android.tools.r8.ir.regalloc.LiveIntervals):1086:1086 -> a
    427:427:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):917 -> a
    427:427:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    428:493:void allocateArgumentIntervalsWithSrc(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1101:1166 -> a
    428:493:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):922 -> a
    428:493:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    494:543:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):923:972 -> a
    494:543:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    544:556:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1608:1620 -> a
    544:556:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    544:556:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    557:559:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1897:1899 -> a
    557:559:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1621 -> a
    557:559:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    557:559:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    560:616:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1626:1682 -> a
    560:616:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    560:616:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    617:617:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
    617:617:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1683 -> a
    617:617:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    617:617:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    618:622:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1684:1688 -> a
    618:622:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    618:622:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    623:623:int toInstructionPosition(int):1390:1390 -> a
    623:623:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1688 -> a
    623:623:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    623:623:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    624:635:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1693:1704 -> a
    624:635:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    624:635:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    636:644:boolean freePositionsAreConsistentWithFreeRegisters(com.android.tools.r8.ir.regalloc.RegisterPositions,int):1027:1035 -> a
    636:644:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1704 -> a
    636:644:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    636:644:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    645:673:boolean useRegisterHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean):1783:1811 -> a
    645:673:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1707 -> a
    645:673:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    645:673:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    674:702:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1713:1741 -> a
    674:702:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    674:702:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    703:705:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1897:1899 -> a
    703:705:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1742 -> a
    703:705:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    703:705:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    706:706:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1743:1743 -> a
    706:706:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    706:706:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    707:725:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):1981:1999 -> a
    707:725:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    707:725:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    707:725:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    726:735:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):1998:2007 -> a
    726:735:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    726:735:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    726:735:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    736:736:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
    736:736:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2008 -> a
    736:736:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    736:736:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    736:736:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    737:809:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2009:2081 -> a
    737:809:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    737:809:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    737:809:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    810:817:int getNewSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):1255:1262 -> a
    810:817:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2083 -> a
    810:817:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    810:817:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    810:817:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    818:818:void increaseCapacity(int):2959:2959 -> a
    818:818:int getNewSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):1262 -> a
    818:818:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2083 -> a
    818:818:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    818:818:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    818:818:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    819:821:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1897:1899 -> a
    819:821:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2084 -> a
    819:821:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    819:821:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    819:821:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    822:828:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2085:2091 -> a
    822:828:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    822:828:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    822:828:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    829:829:void increaseCapacity(int):2959:2959 -> a
    829:829:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2092 -> a
    829:829:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    829:829:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    829:829:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    830:830:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2095:2095 -> a
    830:830:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    830:830:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    830:830:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    831:838:void assignRegisterAndSpill(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2119:2126 -> a
    831:838:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2097 -> a
    831:838:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    831:838:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    831:838:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    839:840:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2100:2101 -> a
    839:840:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    839:840:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    839:840:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    841:848:void assignRegisterAndSpill(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2119:2126 -> a
    841:848:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2102 -> a
    841:848:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1745 -> a
    841:848:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    841:848:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    849:850:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1750:1751 -> a
    849:850:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    849:850:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    851:851:void increaseCapacity(int):2959:2959 -> a
    851:851:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1752 -> a
    851:851:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    851:851:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    852:852:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1755:1755 -> a
    852:852:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    852:852:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    853:855:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1897:1899 -> a
    853:855:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1757 -> a
    853:855:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    853:855:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    856:864:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1759:1767 -> a
    856:864:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    856:864:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    865:867:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1897:1899 -> a
    865:867:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1768 -> a
    865:867:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    865:867:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    868:868:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1769:1769 -> a
    868:868:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):974 -> a
    868:868:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):654 -> a
    869:914:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):656:701 -> a
    915:929:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):674:688 -> a
    930:937:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):662:669 -> a
    938:978:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):666:706 -> a
    979:982:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):705:708 -> a
    983:983:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):707:707 -> a
    984:991:boolean isSpillInstruction(com.android.tools.r8.ir.code.Instruction):764:771 -> a
    992:996:int realRegisterNumberFromAllocated(int):816:820 -> a
    997:1035:boolean invariantsHold(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):983:1021 -> a
    1036:1037:void lambda$invariantsHold$3(java.util.TreeSet,int):991:992 -> a
    1038:1044:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1175:1181 -> a
    1045:1045:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
    1045:1045:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1182 -> a
    1046:1046:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1183:1183 -> a
    1047:1057:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1180:1190 -> a
    1058:1061:boolean liveIntervalsHasUnhandledSplitOverlappingAnyOf(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):1238:1241 -> a
    1058:1061:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1193 -> a
    1062:1062:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
    1062:1062:boolean liveIntervalsHasUnhandledSplitOverlappingAnyOf(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):1245 -> a
    1062:1062:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1193 -> a
    1063:1063:boolean liveIntervalsHasUnhandledSplitOverlappingAnyOf(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):1244:1244 -> a
    1063:1063:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1193 -> a
    1064:1064:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1194:1194 -> a
    1065:1078:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1192:1205 -> a
    1079:1079:int getFreeConsecutiveRegisters(int):2972:2972 -> a
    1079:1079:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1206 -> a
    1080:1081:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1208:1209 -> a
    1082:1087:boolean registerAssignmentNotConflictingWithArgument(com.android.tools.r8.ir.regalloc.LiveIntervals):1043:1048 -> a
    1082:1087:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1209 -> a
    1088:1088:boolean registerAssignmentNotConflictingWithArgument(com.android.tools.r8.ir.regalloc.LiveIntervals):1047:1047 -> a
    1088:1088:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1209 -> a
    1089:1089:boolean registerAssignmentNotConflictingWithArgument(com.android.tools.r8.ir.regalloc.LiveIntervals):1046:1046 -> a
    1089:1089:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1209 -> a
    1090:1103:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1211:1224 -> a
    1104:1128:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1207:1231 -> a
    1129:1148:int getSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):1267:1286 -> a
    1149:1156:boolean registersAreFreeAndConsecutive(int,boolean):3028:3035 -> a
    1149:1156:int getSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):1286 -> a
    1157:1182:int getSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):1287:1312 -> a
    1183:1213:boolean maySpillLiveIntervalsToRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int,int):1328:1358 -> a
    1214:1214:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
    1214:1214:boolean maySpillLiveIntervalsToRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int,int):1359 -> a
    1215:1231:boolean maySpillLiveIntervalsToRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int,int):1366:1382 -> a
    1232:1238:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,int):1831:1837 -> a
    1239:1251:boolean isLongResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1538:1550 -> a
    1239:1251:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,int):1838 -> a
    1252:1252:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,int):1842:1842 -> a
    1253:1257:boolean isArrayGetArrayRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1432:1436 -> a
    1253:1257:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,int):1843 -> a
    1258:1260:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1897:1899 -> a
    1258:1260:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,int):1846 -> a
    1261:1262:void assignRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1854:1855 -> a
    1263:1293:void updateRegisterHints(com.android.tools.r8.ir.regalloc.LiveIntervals):1860:1890 -> a
    1263:1293:void assignRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1856 -> a
    1294:1306:int getLargestCandidate(int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):1911:1923 -> a
    1307:1312:int handleWorkaround(java.util.function.Predicate,java.util.function.BiPredicate,int,com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean,com.android.tools.r8.ir.regalloc.RegisterPositions,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):1941:1946 -> a
    1313:1325:int getLargestValidCandidate(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean,com.android.tools.r8.ir.regalloc.RegisterPositions,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):1961:1973 -> a
    1326:1328:int getLargestPosition(com.android.tools.r8.ir.regalloc.RegisterPositions,int,boolean):2109:2111 -> a
    1329:1330:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2168:2169 -> a
    1331:1331:boolean atLeastOneOfRegistersAreTaken(int,boolean):3125:3125 -> a
    1331:1331:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2169 -> a
    1332:1378:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2169:2215 -> a
    1379:1401:void splitRangesForSpilledConstant(com.android.tools.r8.ir.regalloc.LiveIntervals,int):2283:2305 -> a
    1379:1401:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2218 -> a
    1402:1402:int toGapPosition(int):1394:1394 -> a
    1402:1402:void splitRangesForSpilledConstant(com.android.tools.r8.ir.regalloc.LiveIntervals,int):2305 -> a
    1402:1402:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2218 -> a
    1403:1416:void splitRangesForSpilledConstant(com.android.tools.r8.ir.regalloc.LiveIntervals,int):2305:2318 -> a
    1403:1416:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2218 -> a
    1417:1417:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2219:2219 -> a
    1418:1425:void splitRangesForSpilledArgument(com.android.tools.r8.ir.regalloc.LiveIntervals):2232:2239 -> a
    1418:1425:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2220 -> a
    1426:1453:void splitRangesForSpilledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):2246:2273 -> a
    1426:1453:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2222 -> a
    1454:1455:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2227:2228 -> a
    1456:1458:void blockLinkedRegisters(java.util.List,com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,com.android.tools.r8.ir.regalloc.RegisterPositions):2327:2329 -> a
    1459:1459:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
    1459:1459:void blockLinkedRegisters(java.util.List,com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,com.android.tools.r8.ir.regalloc.RegisterPositions):2330 -> a
    1460:1467:void blockLinkedRegisters(java.util.List,com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,com.android.tools.r8.ir.regalloc.RegisterPositions):2331:2338 -> a
    1468:1503:void addLiveRange(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,int,java.util.List,com.android.tools.r8.utils.InternalOptions):2446:2481 -> a
    1504:1504:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    1504:1504:boolean unconstrainedForCf(int,com.android.tools.r8.utils.InternalOptions):2653 -> a
    1504:1504:void addLiveRange(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,int,java.util.List,com.android.tools.r8.utils.InternalOptions):2481 -> a
    1505:1511:void addLiveRange(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,int,java.util.List,com.android.tools.r8.utils.InternalOptions):2481:2487 -> a
    1512:1563:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2520:2571 -> a
    1564:1570:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2568:2574 -> a
    1571:1571:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    1571:1571:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2574 -> a
    1572:1579:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2574:2581 -> a
    1580:1580:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    1580:1580:boolean unconstrainedForCf(int,com.android.tools.r8.utils.InternalOptions):2653 -> a
    1580:1580:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2581 -> a
    1581:1618:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2581:2618 -> a
    1619:1620:int getLiveRangeEndOnExceptionalFlow(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):2645:2646 -> a
    1619:1620:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2622 -> a
    1621:1638:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2619:2636 -> a
    1639:1661:boolean implementationIsBridge(com.android.tools.r8.ir.code.IRCode):2722:2744 -> a
    1662:1662:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2766:2766 -> a
    1663:1667:boolean argumentsAreAlreadyLinked(com.android.tools.r8.ir.code.Invoke):2871:2875 -> a
    1663:1667:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2766 -> a
    1668:1701:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2767:2800 -> a
    1702:1703:boolean com.android.tools.r8.ir.code.Value.hasRegisterConstraint():793:794 -> a
    1702:1703:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2802 -> a
    1704:1704:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2803:2803 -> a
    1705:1706:com.android.tools.r8.ir.code.Value createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):2751:2752 -> a
    1705:1706:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2803 -> a
    1707:1708:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2804:2805 -> a
    1709:1712:void replaceArgument(com.android.tools.r8.ir.code.Invoke,int,com.android.tools.r8.ir.code.Value):2757:2760 -> a
    1709:1712:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2806 -> a
    1713:1737:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2808:2832 -> a
    1738:1764:void generateArgumentMovesAtDefinitions(com.android.tools.r8.ir.code.Invoke,java.util.PriorityQueue,com.android.tools.r8.ir.code.InstructionListIterator):2840:2866 -> a
    1738:1764:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2833 -> a
    1765:1765:int lambda$generateArgumentMoves$5(com.android.tools.r8.ir.code.Move,com.android.tools.r8.ir.code.Move):2774:2774 -> a
    1766:1810:int getFreeConsecutiveRegisters(int,boolean):2976:3020 -> a
    1811:1822:int lambda$getFreeConsecutiveRegisters$6(java.lang.Integer,java.lang.Integer):2982:2993 -> a
    1823:1826:int getNextFreeRegister(java.util.Iterator):3044:3047 -> a
    1827:1839:void excludeRegistersForInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet):3051:3063 -> a
    1840:1851:void freeOccupiedRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):3069:3080 -> a
    1852:1852:boolean hasEqualTypesAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):3175:3175 -> a
    void mergeBlocks(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock) -> b
    1:1:void allocateRegisters():207:207 -> b
    2:11:boolean noLinkedValues():3129:3138 -> b
    2:11:void allocateRegisters():207 -> b
    12:12:boolean noLinkedValues():3137:3137 -> b
    12:12:void allocateRegisters():207 -> b
    13:14:void allocateRegisters():208:209 -> b
    15:63:void transformBridgeMethod():2666:2714 -> b
    15:63:void allocateRegisters():210 -> b
    64:67:void computeNeedsRegister():2934:2937 -> b
    64:67:void allocateRegisters():212 -> b
    68:68:void constrainArgumentIntervals():2911:2911 -> b
    68:68:void allocateRegisters():213 -> b
    69:75:void createArgumentLiveIntervals(java.util.List):2885:2891 -> b
    69:75:void constrainArgumentIntervals():2912 -> b
    69:75:void allocateRegisters():213 -> b
    76:84:void linkArgumentValuesAndIntervals(java.util.List):2897:2905 -> b
    76:84:void constrainArgumentIntervals():2913 -> b
    76:84:void allocateRegisters():213 -> b
    85:95:void insertRangeInvokeMoves():2917:2927 -> b
    85:95:void allocateRegisters():214 -> b
    96:97:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():631:632 -> b
    96:97:void allocateRegisters():215 -> b
    98:103:void computeLiveRanges():2492:2497 -> b
    98:103:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():633 -> b
    98:103:void allocateRegisters():215 -> b
    104:104:boolean com.android.tools.r8.utils.InternalOptions.canHaveThisTypeVerifierBug():1220:1220 -> b
    104:104:void computeLiveRanges():2497 -> b
    104:104:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():633 -> b
    104:104:void allocateRegisters():215 -> b
    105:105:void computeLiveRanges():2497:2497 -> b
    105:105:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():633 -> b
    105:105:void allocateRegisters():215 -> b
    106:106:boolean com.android.tools.r8.utils.InternalOptions.canHaveThisJitCodeDebuggingBug():1229:1229 -> b
    106:106:void computeLiveRanges():2497 -> b
    106:106:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():633 -> b
    106:106:void allocateRegisters():215 -> b
    107:116:void computeLiveRanges():2497:2506 -> b
    107:116:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():633 -> b
    107:116:void allocateRegisters():215 -> b
    117:117:void performAllocation():640:640 -> b
    117:117:void allocateRegisters():216 -> b
    118:130:void allocateRegisters():217:229 -> b
    131:131:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> b
    131:131:void allocateRegisters():229 -> b
    132:136:void allocateRegisters():230:234 -> b
    137:137:com.android.tools.r8.ir.code.InstructionListIterator com.android.tools.r8.ir.code.IRCode.instructionListIterator():965:965 -> b
    137:137:void allocateRegisters():229 -> b
    138:138:void allocateRegisters():238:238 -> b
    139:144:void clearState():534:539 -> b
    139:144:void allocateRegisters():239 -> b
    145:145:boolean lambda$computeDebugInfo$1(com.android.tools.r8.ir.code.Instruction):309:309 -> b
    146:147:int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int):619:620 -> b
    148:149:int getRegisterForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):797:798 -> b
    148:149:int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int):620 -> b
    150:150:int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int):622:622 -> b
    151:152:void lambda$invariantsHold$4(java.util.TreeSet,int):1008:1009 -> b
    153:170:boolean needsArrayGetWideWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1409:1426 -> b
    171:175:boolean isArrayGetArrayRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1432:1436 -> b
    176:180:void splitOverlappingInactiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2131:2135 -> b
    181:181:boolean com.android.tools.r8.ir.regalloc.LiveIntervals.overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> b
    181:181:void splitOverlappingInactiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2136 -> b
    182:208:void splitOverlappingInactiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2137:2163 -> b
    209:213:void increaseCapacity(int,boolean):2964:2968 -> b
    214:215:boolean registerIsFree(int):3105:3106 -> b
    1:3:int registersUsed():591:593 -> c
    4:9:int unadjustedRealRegisterFromAllocated(int):802:807 -> c
    10:10:boolean needsLongResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1502:1502 -> c
    11:11:boolean com.android.tools.r8.utils.InternalOptions.canHaveOverlappingLongRegisterBug():1235:1235 -> c
    11:11:boolean needsLongResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1502 -> c
    12:32:boolean needsLongResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1505:1525 -> c
    33:45:boolean isLongResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1538:1550 -> c
    46:46:boolean registersAreFree(int,boolean):3112:3112 -> c
    1:1:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441:1441 -> d
    2:2:boolean com.android.tools.r8.utils.InternalOptions.canHaveCmpLongBug():1268:1268 -> d
    2:2:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441 -> d
    3:3:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441:1441 -> d
    4:4:boolean com.android.tools.r8.utils.InternalOptions.canHaveLongToIntBug():1442:1442 -> d
    4:4:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441 -> d
    5:23:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1444:1462 -> d
    24:24:boolean com.android.tools.r8.ir.code.NumberConversion.isLongToIntConversion():52:52 -> d
    24:24:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1462 -> d
    25:25:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472:1472 -> d
    26:26:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441:1441 -> d
    26:26:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
    27:27:boolean com.android.tools.r8.utils.InternalOptions.canHaveCmpLongBug():1268:1268 -> d
    27:27:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441 -> d
    27:27:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
    28:28:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441:1441 -> d
    28:28:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
    29:29:boolean com.android.tools.r8.utils.InternalOptions.canHaveLongToIntBug():1442:1442 -> d
    29:29:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1441 -> d
    29:29:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
    30:48:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1444:1462 -> d
    30:48:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
    49:49:boolean com.android.tools.r8.ir.code.NumberConversion.isLongToIntConversion():52:52 -> d
    49:49:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1462 -> d
    49:49:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472 -> d
    50:65:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1472:1487 -> d
    66:66:void clearUserInfo():2657:2657 -> d
    1:26:boolean computeUnusedRegisters():546:571 -> e
    27:37:boolean overlapsMoveExceptionInterval(com.android.tools.r8.ir.regalloc.LiveIntervals):1590:1600 -> e
    1:2:int getMoveExceptionRegister():185:186 -> f
    3:4:boolean registersForIntervalsAreTaken(com.android.tools.r8.ir.regalloc.LiveIntervals):3120:3121 -> f
    5:5:boolean registersAreTaken(int,boolean):3116:3116 -> f
    5:5:boolean registersForIntervalsAreTaken(com.android.tools.r8.ir.regalloc.LiveIntervals):3121 -> f
    1:1:boolean hasDedicatedMoveExceptionRegister():177:177 -> g
    2:2:void takeFreeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):3094:3094 -> g
    3:6:void takeFreeRegisters(int,boolean):3086:3089 -> g
    3:6:void takeFreeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):3094 -> g
    7:10:void takeFreeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):3096:3099 -> g
    1:1:int highestUsedRegister():586:586 -> h
    1:2:void computeRematerializableBits():2372:2373 -> i
    1:2:void insertMoves():2348 -> i
    3:12:void insertMoves():2350:2359 -> i
    13:13:int toGapPosition(int):1394:1394 -> i
    13:13:void insertMoves():2360 -> i
    14:14:void insertMoves():2360:2360 -> i
    15:15:void insertMoves():2358:2358 -> i
    16:58:void resolveControlFlow(com.android.tools.r8.ir.regalloc.SpillMoveSet):2391:2433 -> i
    16:58:void insertMoves():2366 -> i
    59:60:void insertMoves():2367:2368 -> i
    1:6:void removeSpillAndPhiMoves():752:757 -> j
    1:28:boolean unsplitArguments():719:746 -> k
    1:20:java.lang.String toString():3146:3165 -> toString
com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode -> com.android.tools.r8.ir.regalloc.a$a:
    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode ALLOW_ARGUMENT_REUSE_U8BIT -> b
    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode ALLOW_ARGUMENT_REUSE_U16BIT -> c
    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode ALLOW_ARGUMENT_REUSE_U4BIT -> a
    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode[] $VALUES -> d
    1:3:void <clinit>():94:96 -> <clinit>
    4:4:void <clinit>():93:93 -> <clinit>
    1:1:void <init>(java.lang.String,int):93:93 -> <init>
com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange -> com.android.tools.r8.ir.regalloc.a$b:
    com.android.tools.r8.graph.DebugLocalInfo local -> b
    boolean $assertionsDisabled -> f
    int start -> d
    com.android.tools.r8.ir.code.Value value -> a
    int end -> e
    int register -> c
    1:1:void <clinit>():99:99 -> <clinit>
    1:7:void <init>(com.android.tools.r8.ir.code.Value,int,int,int):106:112 -> <init>
    1:3:int compareTo(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):117:119 -> a
    1:1:int compareTo(java.lang.Object):99:99 -> compareTo
    2:4:int compareTo(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):117:119 -> compareTo
    2:4:int compareTo(java.lang.Object):99 -> compareTo
    1:1:java.lang.String toString():124:124 -> toString
com.android.tools.r8.ir.regalloc.LiveIntervals -> com.android.tools.r8.ir.regalloc.b:
    boolean spilled -> m
    boolean usedInMonitorOperations -> n
    int registerLimit -> o
    int numberOfConsecutiveRegisters -> j
    int register -> k
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList sortedSplitChildrenEnds -> f
    com.android.tools.r8.ir.regalloc.LiveIntervals nextConsecutive -> b
    com.android.tools.r8.ir.regalloc.LiveIntervals previousConsecutive -> c
    com.android.tools.r8.ir.regalloc.LiveIntervals splitParent -> d
    boolean isRematerializable -> q
    boolean $assertionsDisabled -> r
    java.util.TreeSet uses -> i
    java.util.List splitChildren -> e
    java.lang.Integer hint -> l
    boolean sortedChildren -> g
    java.util.List ranges -> h
    com.android.tools.r8.ir.code.Value value -> a
    int maxNonSpilledRegister -> p
    1:1:void <clinit>():24:24 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value):53:53 -> <init>
    2:26:void <init>(com.android.tools.r8.ir.code.Value):33:57 -> <init>
    27:27:void <init>(com.android.tools.r8.ir.regalloc.LiveIntervals):60:60 -> <init>
    28:58:void <init>(com.android.tools.r8.ir.regalloc.LiveIntervals):33:63 -> <init>
    1:3:void recomputeLimit():479:481 -> A
    4:4:void updateRegisterConstraint(int):254:254 -> A
    4:4:void recomputeLimit():481 -> A
    1:1:com.android.tools.r8.ir.code.ValueType getType():79:79 -> B
    1:1:int requiredRegisters():83 -> B
    2:2:int requiredRegisters():83:83 -> B
    1:7:void sortSplitChildrenIfNeeded():188:194 -> C
    8:10:boolean sortedChildrenConsistent():200:202 -> C
    8:10:void sortSplitChildrenIfNeeded():194 -> C
    11:11:void sortSplitChildrenIfNeeded():195:195 -> C
    1:1:java.lang.String toAscciArtString():585:585 -> D
    2:2:java.util.List getRanges():262:262 -> D
    2:2:java.lang.String toAscciArtString():587 -> D
    3:3:java.lang.String toAscciArtString():587:587 -> D
    4:4:boolean com.android.tools.r8.ir.regalloc.LiveRange.isInfinite():32:32 -> D
    4:4:java.lang.String toAscciArtString():588 -> D
    5:12:java.lang.String toAscciArtString():589:596 -> D
    13:13:boolean com.android.tools.r8.ir.regalloc.LiveRange.isInfinite():32:32 -> D
    13:13:java.lang.String toAscciArtString():588 -> D
    14:14:java.lang.String toAscciArtString():599:599 -> D
    1:14:void undoSplits():462:475 -> E
    1:1:boolean usedInMonitorOperation():528:528 -> F
    1:1:void setSpilled(boolean):105:105 -> a
    2:2:int getRegister():276:276 -> a
    2:2:void setSpilled(boolean):105 -> a
    3:4:void setSpilled(boolean):105:106 -> a
    5:5:int getRegister():276:276 -> a
    5:5:void setSpilled(boolean):106 -> a
    6:6:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitParent():212:212 -> a
    6:6:void setSpilled(boolean):106 -> a
    7:7:int getRegister():276:276 -> a
    7:7:void setSpilled(boolean):106 -> a
    8:9:void setSpilled(boolean):106:107 -> a
    10:10:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitParent():212:212 -> a
    10:10:boolean anySplitOverlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):354 -> a
    11:11:boolean overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
    11:11:boolean anySplitOverlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):355 -> a
    12:12:java.util.List getSplitChildren():208:208 -> a
    12:12:boolean anySplitOverlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):358 -> a
    13:13:boolean anySplitOverlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):358:358 -> a
    14:14:boolean overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
    14:14:boolean anySplitOverlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):359 -> a
    15:16:boolean tryAddRange(com.android.tools.r8.ir.regalloc.LiveRange):226:227 -> a
    15:16:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):221 -> a
    17:17:boolean com.android.tools.r8.ir.regalloc.LiveRange.isInfinite():32:32 -> a
    17:17:boolean tryAddRange(com.android.tools.r8.ir.regalloc.LiveRange):228 -> a
    17:17:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):221 -> a
    18:24:boolean tryAddRange(com.android.tools.r8.ir.regalloc.LiveRange):231:237 -> a
    18:24:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):221 -> a
    25:25:boolean com.android.tools.r8.ir.regalloc.LiveRange.isInfinite():32:32 -> a
    25:25:boolean tryAddRange(com.android.tools.r8.ir.regalloc.LiveRange):228 -> a
    25:25:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):221 -> a
    26:26:boolean tryAddRange(com.android.tools.r8.ir.regalloc.LiveRange):241:241 -> a
    26:26:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):221 -> a
    27:27:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):222:222 -> a
    28:29:void addUse(com.android.tools.r8.ir.regalloc.LiveIntervalsUse):249:250 -> a
    30:30:void updateRegisterConstraint(int):254:254 -> a
    30:30:void addUse(com.android.tools.r8.ir.regalloc.LiveIntervalsUse):250 -> a
    31:31:boolean usesRegister(int,boolean):315:315 -> a
    32:32:com.android.tools.r8.ir.code.ValueType getType():79:79 -> a
    32:32:boolean usesRegister(int,boolean):318 -> a
    33:36:boolean usesRegister(int,boolean):318:321 -> a
    37:38:void clearRegisterAssignment():332:333 -> a
    39:39:boolean overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):350:350 -> a
    39:39:void setHint(com.android.tools.r8.ir.regalloc.LiveIntervals,java.util.PriorityQueue):88 -> a
    40:40:void setHint(com.android.tools.r8.ir.regalloc.LiveIntervals,java.util.PriorityQueue):91:91 -> a
    41:41:int getRegister():276:276 -> a
    41:41:void setHint(com.android.tools.r8.ir.regalloc.LiveIntervals,java.util.PriorityQueue):92 -> a
    42:44:void setHint(com.android.tools.r8.ir.regalloc.LiveIntervals,java.util.PriorityQueue):92:94 -> a
    45:46:void forEachRegister(java.util.function.IntConsumer):406:407 -> a
    47:47:com.android.tools.r8.ir.code.ValueType getType():79:79 -> a
    47:47:void forEachRegister(java.util.function.IntConsumer):408 -> a
    48:49:void forEachRegister(java.util.function.IntConsumer):408:409 -> a
    50:69:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):622:641 -> a
    70:70:int getRegister():276:276 -> a
    70:70:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):641 -> a
    71:77:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):641:647 -> a
    78:78:boolean isSpilled():111:111 -> a
    78:78:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):647 -> a
    79:80:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):662:663 -> a
    81:81:boolean isSpilled():111:111 -> a
    81:81:boolean allSplitsAreSpilled():120 -> a
    81:81:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):663 -> a
    82:84:boolean allSplitsAreSpilled():120:122 -> a
    82:84:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):663 -> a
    85:85:boolean isSpilled():111:111 -> a
    85:85:boolean allSplitsAreSpilled():122 -> a
    85:85:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):663 -> a
    86:86:boolean allSplitsAreSpilled():122:122 -> a
    86:86:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):663 -> a
    87:91:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):664:668 -> a
    1:1:boolean hasConflictingRegisters(com.android.tools.r8.ir.regalloc.LiveIntervals):328:328 -> b
    2:2:com.android.tools.r8.ir.code.ValueType getType():79:79 -> b
    2:2:boolean hasConflictingRegisters(com.android.tools.r8.ir.regalloc.LiveIntervals):328 -> b
    3:3:boolean hasConflictingRegisters(com.android.tools.r8.ir.regalloc.LiveIntervals):328:328 -> b
    4:6:int firstUseAfter(int):384:386 -> b
    7:8:com.android.tools.r8.ir.regalloc.LiveIntervalsUse firstUseWithConstraint():397:398 -> b
    1:3:void link(com.android.tools.r8.ir.regalloc.LiveIntervals):132:134 -> c
    4:5:int getEnd():271:272 -> c
    6:6:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitCovering(int):486:486 -> c
    7:7:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitParent():212:212 -> c
    7:7:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitCovering(int):486 -> c
    8:41:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitCovering(int):486:519 -> c
    1:1:int compareTo(java.lang.Object):24:24 -> compareTo
    2:16:int compareTo(com.android.tools.r8.ir.regalloc.LiveIntervals):551:565 -> compareTo
    2:16:int compareTo(java.lang.Object):24 -> compareTo
    1:6:boolean overlapsPosition(int):337:342 -> d
    7:16:int nextOverlap(com.android.tools.r8.ir.regalloc.LiveIntervals):367:376 -> d
    17:17:int getFirstUse():393:393 -> d
    1:1:java.lang.Integer getHint():100:100 -> e
    1:1:int getMaxNonSpilledRegister():308:308 -> f
    2:3:int computeMaxNonSpilledRegister():289:290 -> f
    2:3:int getMaxNonSpilledRegister():311 -> f
    4:4:boolean isSpilled():111:111 -> f
    4:4:int computeMaxNonSpilledRegister():291 -> f
    4:4:int getMaxNonSpilledRegister():311 -> f
    5:5:int getRegister():276:276 -> f
    5:5:int computeMaxNonSpilledRegister():292 -> f
    5:5:int getMaxNonSpilledRegister():311 -> f
    6:8:int computeMaxNonSpilledRegister():292:294 -> f
    6:8:int getMaxNonSpilledRegister():311 -> f
    9:9:boolean isSpilled():111:111 -> f
    9:9:int computeMaxNonSpilledRegister():295 -> f
    9:9:int getMaxNonSpilledRegister():311 -> f
    10:10:int computeMaxNonSpilledRegister():296:296 -> f
    10:10:int getMaxNonSpilledRegister():311 -> f
    11:11:int getRegister():276:276 -> f
    11:11:int computeMaxNonSpilledRegister():296 -> f
    11:11:int getMaxNonSpilledRegister():311 -> f
    12:15:int computeMaxNonSpilledRegister():296:299 -> f
    12:15:int getMaxNonSpilledRegister():311 -> f
    1:1:com.android.tools.r8.ir.regalloc.LiveIntervals getNextConsecutive():155:155 -> g
    2:3:void setMaxNonSpilledRegister(int):303:304 -> g
    1:1:java.util.List getRanges():262:262 -> h
    2:3:void setRegister(int):284:285 -> h
    1:1:int getRegister():276:276 -> i
    2:4:com.android.tools.r8.ir.regalloc.LiveIntervals splitBefore(int):414:416 -> i
    5:5:int toGapPosition(int):71:71 -> i
    5:5:com.android.tools.r8.ir.regalloc.LiveIntervals splitBefore(int):419 -> i
    6:43:com.android.tools.r8.ir.regalloc.LiveIntervals splitBefore(int):420:457 -> i
    1:1:int toInstructionPosition(int):67:67 -> j
    2:2:int getRegisterLimit():280:280 -> j
    1:1:java.util.List getSplitChildren():208:208 -> k
    1:1:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitParent():212:212 -> l
    1:2:int getStart():266:267 -> m
    1:1:com.android.tools.r8.ir.regalloc.LiveIntervals getStartOfConsecutive():148:148 -> n
    1:1:com.android.tools.r8.ir.code.ValueType getType():79:79 -> o
    1:1:java.util.TreeSet getUses():258:258 -> p
    1:1:com.android.tools.r8.ir.code.Value getValue():75:75 -> q
    1:1:boolean hasSplits():184:184 -> r
    1:2:boolean isArgumentInterval():142:143 -> s
    1:1:boolean isConstantNumberInterval():524:524 -> t
    1:5:java.lang.String toString():571:575 -> toString
    6:6:java.util.List getRanges():262:262 -> toString
    6:6:java.lang.String toString():576 -> toString
    7:12:java.lang.String toString():576:581 -> toString
    1:1:boolean isLinked():138:138 -> u
    1:3:boolean isNewStringInstanceDisallowingSpilling():533:535 -> v
    1:1:boolean isSpilled():111:111 -> w
    1:1:boolean isSpilled():111:111 -> x
    1:1:boolean isSpilledAndRematerializable():128 -> x
    2:2:boolean isSpilledAndRematerializable():128:128 -> x
    3:4:boolean isRematerializable():115:116 -> x
    3:4:boolean isSpilledAndRematerializable():128 -> x
    1:3:int numberOfConsecutiveRegisters():163:165 -> y
    4:9:int computeNumberOfConsecutiveRegisters():172:177 -> y
    4:9:int numberOfConsecutiveRegisters():165 -> y
    10:13:int computeNumberOfConsecutiveRegisters():176:179 -> y
    10:13:int numberOfConsecutiveRegisters():165 -> y
    14:15:int numberOfConsecutiveRegisters():165:166 -> y
    16:21:int computeNumberOfConsecutiveRegisters():172:177 -> y
    16:21:int numberOfConsecutiveRegisters():168 -> y
    22:25:int computeNumberOfConsecutiveRegisters():176:179 -> y
    22:25:int numberOfConsecutiveRegisters():168 -> y
    1:1:java.util.TreeSet getUses():258:258 -> z
    1:1:int numberOfUsesWithConstraint():540 -> z
    2:3:int numberOfUsesWithConstraint():540:541 -> z
com.android.tools.r8.ir.regalloc.LiveIntervalsUse -> com.android.tools.r8.ir.regalloc.c:
    int limit -> b
    int position -> a
    1:3:void <init>(int,int):12:14 -> <init>
    1:1:int getLimit():22:22 -> a
    1:1:int getPosition():18:18 -> b
    1:1:boolean hasConstraint():48:48 -> c
    1:1:int compareTo(java.lang.Object):8:8 -> compareTo
    2:5:int compareTo(com.android.tools.r8.ir.regalloc.LiveIntervalsUse):41:44 -> compareTo
    2:5:int compareTo(java.lang.Object):8 -> compareTo
    1:5:boolean equals(java.lang.Object):32:36 -> equals
    1:1:int hashCode():27:27 -> hashCode
com.android.tools.r8.ir.regalloc.LiveRange -> com.android.tools.r8.ir.regalloc.d:
    com.android.tools.r8.ir.regalloc.LiveRange INFINITE -> c
    int end -> b
    int start -> a
    1:1:void <clinit>():8:8 -> <clinit>
    1:3:void <init>(int,int):13:15 -> <init>
    1:1:int compareTo(java.lang.Object):6:6 -> compareTo
    2:5:int compareTo(com.android.tools.r8.ir.regalloc.LiveRange):20:23 -> compareTo
    2:5:int compareTo(java.lang.Object):6 -> compareTo
    1:1:java.lang.String toString():28:28 -> toString
com.android.tools.r8.ir.regalloc.RegisterAllocator -> com.android.tools.r8.ir.regalloc.e:
    void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List) -> a
    int getRegisterForValue(com.android.tools.r8.ir.code.Value,int) -> a
    boolean hasEqualTypesAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock) -> a
    com.android.tools.r8.utils.InternalOptions options() -> a
    void allocateRegisters() -> b
    int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int) -> b
    void mergeBlocks(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock) -> b
    int registersUsed() -> c
com.android.tools.r8.ir.regalloc.RegisterMove -> com.android.tools.r8.ir.regalloc.f:
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement type -> a
    com.android.tools.r8.ir.code.Instruction definition -> d
    boolean $assertionsDisabled -> e
    int dst -> b
    int src -> c
    1:1:void <clinit>():13:13 -> <clinit>
    1:5:void <init>(int,int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):20:24 -> <init>
    6:11:void <init>(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.Instruction):27:32 -> <init>
    1:10:boolean isBlocked(java.util.Set,java.util.Map):43:52 -> a
    1:4:boolean writes(int):36:39 -> b
    1:1:int compareTo(java.lang.Object):13:13 -> compareTo
    2:28:int compareTo(com.android.tools.r8.ir.regalloc.RegisterMove):77:103 -> compareTo
    2:28:int compareTo(java.lang.Object):13 -> compareTo
    1:5:boolean equals(java.lang.Object):68:72 -> equals
    1:1:int hashCode():63:63 -> hashCode
com.android.tools.r8.ir.regalloc.RegisterMoveScheduler -> com.android.tools.r8.ir.regalloc.g:
    java.util.Map valueMap -> b
    int tempRegister -> f
    boolean $assertionsDisabled -> g
    java.util.Set moveSet -> a
    com.android.tools.r8.ir.code.InstructionListIterator insertAt -> d
    int usedTempRegisters -> c
    com.android.tools.r8.ir.code.Position position -> e
    1:1:void <clinit>():29:29 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.InstructionListIterator,int,com.android.tools.r8.ir.code.Position):45:45 -> <init>
    2:19:void <init>(com.android.tools.r8.ir.code.InstructionListIterator,int,com.android.tools.r8.ir.code.Position):31:48 -> <init>
    20:20:void <init>(com.android.tools.r8.ir.code.InstructionListIterator,int):52:52 -> <init>
    1:5:void addMove(com.android.tools.r8.ir.regalloc.RegisterMove):56:60 -> a
    6:6:int getUsedTempRegisters():114:114 -> a
    1:1:void schedule():64:64 -> b
    2:5:boolean everyDestinationOnlyWrittenOnce():206:209 -> b
    2:5:void schedule():64 -> b
    6:23:void schedule():67:84 -> b
    24:51:java.lang.Integer createMove(com.android.tools.r8.ir.regalloc.RegisterMove):138:165 -> b
    24:51:void schedule():86 -> b
    52:66:void schedule():89:103 -> b
    67:76:com.android.tools.r8.ir.regalloc.RegisterMove pickMoveToUnblock():192:201 -> b
    67:76:void schedule():106 -> b
    77:77:void createMoveDestToTemp(com.android.tools.r8.ir.regalloc.RegisterMove):172:172 -> b
    77:77:void schedule():107 -> b
    78:90:java.util.List findMovesWithSrc(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):118:130 -> b
    78:90:void createMoveDestToTemp(com.android.tools.r8.ir.regalloc.RegisterMove):172 -> b
    78:90:void schedule():107 -> b
    91:105:void createMoveDestToTemp(com.android.tools.r8.ir.regalloc.RegisterMove):173:187 -> b
    91:105:void schedule():107 -> b
    106:106:void schedule():108:108 -> b
com.android.tools.r8.ir.regalloc.RegisterPositions -> com.android.tools.r8.ir.regalloc.h:
    int[] backing -> b
    boolean $assertionsDisabled -> f
    java.util.BitSet registerHoldsConstant -> c
    java.util.BitSet registerHoldsNewStringInstanceDisallowingSpilling -> e
    int limit -> a
    java.util.BitSet registerHoldsMonitor -> d
    1:1:void <clinit>():17:17 -> <clinit>
    1:9:void <init>(int):28:36 -> <init>
    1:13:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):40:52 -> a
    14:14:boolean holdsMonitor(int):60:60 -> a
    14:14:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):46 -> a
    15:15:boolean holdsConstant(int):57:57 -> a
    15:15:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):47 -> a
    16:16:boolean holdsNewStringInstanceDisallowingSpilling(int):63:63 -> a
    16:16:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):48 -> a
    17:17:boolean holdsConstant(int):57:57 -> a
    17:17:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):44 -> a
    18:18:boolean holdsMonitor(int):60:60 -> a
    18:18:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):42 -> a
    19:19:void set(int,int):67:67 -> a
    20:28:void grow(int):90:98 -> a
    20:28:void set(int,int):68 -> a
    29:29:void set(int,int):70:70 -> a
    30:34:void set(int,int,com.android.tools.r8.ir.regalloc.LiveIntervals):74:78 -> a
    35:35:void set(int,int,com.android.tools.r8.ir.regalloc.LiveIntervals):77:77 -> a
    36:39:int get(int):82:85 -> a
com.android.tools.r8.ir.regalloc.RegisterPositions$Type -> com.android.tools.r8.ir.regalloc.h$a:
    com.android.tools.r8.ir.regalloc.RegisterPositions$Type[] $VALUES -> e
    com.android.tools.r8.ir.regalloc.RegisterPositions$Type ANY -> d
    com.android.tools.r8.ir.regalloc.RegisterPositions$Type OTHER -> c
    com.android.tools.r8.ir.regalloc.RegisterPositions$Type CONST_NUMBER -> b
    com.android.tools.r8.ir.regalloc.RegisterPositions$Type MONITOR -> a
    1:1:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(java.lang.String,int):19:19 -> <init>
com.android.tools.r8.ir.regalloc.SpillMove -> com.android.tools.r8.ir.regalloc.i:
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement type -> a
    com.android.tools.r8.ir.regalloc.LiveIntervals from -> b
    com.android.tools.r8.ir.regalloc.LiveIntervals to -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():14:14 -> <clinit>
    1:6:void <init>(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):19:24 -> <init>
    1:9:boolean equals(java.lang.Object):47:55 -> equals
    1:1:int hashCode():29:29 -> hashCode
    1:1:java.lang.String toString():60:60 -> toString
com.android.tools.r8.ir.regalloc.SpillMoveSet -> com.android.tools.r8.ir.regalloc.j:
    java.util.Map instructionToInMoves -> a
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement objectType -> f
    java.util.Map instructionToOutMoves -> b
    java.util.Map instructionToPhiMoves -> c
    boolean $assertionsDisabled -> i
    com.android.tools.r8.ir.code.IRCode code -> d
    int usedTempRegisters -> h
    java.util.Map blockStartMap -> g
    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator allocator -> e
    1:1:void <clinit>():26:26 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):45:45 -> <init>
    2:23:void <init>(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):29:50 -> <init>
    1:3:void addInMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):146:148 -> a
    4:4:void addInMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):147:147 -> a
    5:5:java.util.Set lambda$addInMove$1(java.lang.Integer):147:147 -> a
    6:13:com.android.tools.r8.ir.analysis.type.TypeLatticeElement moveTypeForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):201:208 -> a
    14:16:com.android.tools.r8.ir.analysis.type.TypeLatticeElement moveTypeForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):204:206 -> a
    17:19:boolean needsMovesBeforeInstruction(int):213:215 -> a
    20:30:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):284:294 -> a
    31:31:com.android.tools.r8.ir.code.Position com.android.tools.r8.ir.code.BasicBlock.getPosition():1514:1514 -> a
    31:31:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):294 -> a
    32:43:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):299:310 -> a
    44:47:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):269:272 -> a
    44:47:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
    48:49:com.android.tools.r8.ir.regalloc.SpillMove getMoveWithSource(com.android.tools.r8.ir.regalloc.LiveIntervals,java.util.Collection):219:220 -> a
    48:49:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):272 -> a
    48:49:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
    50:54:com.android.tools.r8.ir.regalloc.SpillMove getMoveWritingSourceRegister(com.android.tools.r8.ir.regalloc.SpillMove,java.util.Collection):228:232 -> a
    50:54:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):273 -> a
    50:54:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
    55:55:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):274:274 -> a
    55:55:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
    56:57:com.android.tools.r8.ir.regalloc.SpillMove getMoveWithSource(com.android.tools.r8.ir.regalloc.LiveIntervals,java.util.Collection):219:220 -> a
    56:57:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):274 -> a
    56:57:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
    58:59:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):276:277 -> a
    58:59:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):313 -> a
    60:64:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):316:320 -> a
    65:73:void removeArgumentRestores(java.util.Set):332:340 -> a
    74:98:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):347:371 -> a
    99:99:boolean com.android.tools.r8.utils.InternalOptions.canHaveBoundsCheckEliminationBug():1204:1204 -> a
    99:99:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):371 -> a
    100:105:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):371:376 -> a
    106:110:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):375:379 -> a
    111:117:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):378:384 -> a
    1:2:void addInResolutionMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):122:123 -> b
    3:3:java.util.Set lambda$addOutMove$2(java.lang.Integer):153:153 -> b
    4:19:int scheduleAndInsertMoves(int):167:182 -> b
    20:39:int scheduleAndInsertMoves(int):178:197 -> b
    1:1:java.util.Set lambda$addPhiMove$0(java.lang.Integer):142:142 -> c
    2:4:void addOutMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):152:154 -> c
    5:5:void addOutMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):153:153 -> c
    1:2:void addOutResolutionMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):127:128 -> d
    3:3:java.util.Set lambda$scheduleMovesBeforeInstruction$3(java.lang.Integer):300:300 -> d
    1:2:void addPhiMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):139:140 -> e
    3:8:void com.android.tools.r8.ir.regalloc.SpillMove.updateMaxNonSpilled():33:38 -> e
    3:8:void addPhiMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):141 -> e
    9:9:void addPhiMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):142:142 -> e
    10:10:java.util.Set lambda$scheduleMovesBeforeInstruction$4(java.lang.Integer):305:305 -> e
    1:43:void addSpillOrRestoreMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):66:108 -> f
    44:44:java.util.Set lambda$scheduleMovesBeforeInstruction$5(java.lang.Integer):310:310 -> f
com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode -> com.android.tools.r8.t.d.a:
    1:1:void <init>():21:21 -> <init>
    1:8:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):38:45 -> buildIR
    1:8:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):56:63 -> buildInliningIR
    1:1:boolean computeEquals(java.lang.Object):83:83 -> computeEquals
    1:1:int computeHashCode():78:78 -> computeHashCode
    1:1:void registerCodeReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry):73:73 -> registerCodeReferences
    1:1:java.lang.String toString():68:68 -> toString
com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider -> com.android.tools.r8.t.d.a$a:
    com.android.tools.r8.ir.conversion.SourceCode get(com.android.tools.r8.ir.code.Position) -> a
com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider -> com.android.tools.r8.t.d.g:
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):41:41 -> <init>
    1:1:boolean shouldConvert(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter,com.android.tools.r8.graph.DexString):46:46 -> a
    2:2:boolean com.android.tools.r8.ir.desugar.PrefixRewritingMapper.hasRewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):33:33 -> a
    2:2:boolean shouldConvert(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter,com.android.tools.r8.graph.DexString):46 -> a
    3:9:boolean shouldConvert(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter,com.android.tools.r8.graph.DexString):49:55 -> a
com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider$APIConverterConstructorCfCodeProvider -> com.android.tools.r8.t.d.b:
    com.android.tools.r8.graph.DexField wrapperField -> c
    1:2:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexField):293:294 -> <init>
    1:9:com.android.tools.r8.graph.CfCode generateCfCode():299:307 -> a
    10:10:com.android.tools.r8.graph.CfCode generateCfCode():305:305 -> a
    11:23:com.android.tools.r8.graph.CfCode generateCfCode():302:314 -> a
com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider$APIConverterThrowRuntimeExceptionCfCodeProvider -> com.android.tools.r8.t.d.c:
    com.android.tools.r8.graph.DexString message -> c
    1:2:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):324:325 -> <init>
    1:11:com.android.tools.r8.graph.CfCode generateCfCode():330:340 -> a
    12:12:com.android.tools.r8.graph.CfCode generateCfCode():338:338 -> a
    13:22:com.android.tools.r8.graph.CfCode generateCfCode():335:344 -> a
com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider$APIConverterVivifiedWrapperCfCodeProvider -> com.android.tools.r8.t.d.d:
    com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter converter -> e
    boolean itfCall -> f
    com.android.tools.r8.graph.DexField wrapperField -> c
    com.android.tools.r8.graph.DexMethod forwardMethod -> d
    1:5:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter,boolean):83:87 -> <init>
    1:14:com.android.tools.r8.graph.CfCode generateCfCode():92:105 -> a
    15:15:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider.vivifiedTypeFor(com.android.tools.r8.graph.DexType):66:66 -> a
    15:15:com.android.tools.r8.graph.CfCode generateCfCode():108 -> a
    16:16:com.android.tools.r8.graph.CfCode generateCfCode():108:108 -> a
    17:17:com.android.tools.r8.graph.CfCode generateCfCode():105:105 -> a
    18:18:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider.vivifiedTypeFor(com.android.tools.r8.graph.DexType):66:66 -> a
    18:18:com.android.tools.r8.graph.CfCode generateCfCode():110 -> a
    19:30:com.android.tools.r8.graph.CfCode generateCfCode():110:121 -> a
    31:31:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider.vivifiedTypeFor(com.android.tools.r8.graph.DexType):66:66 -> a
    31:31:com.android.tools.r8.graph.CfCode generateCfCode():122 -> a
    32:43:com.android.tools.r8.graph.CfCode generateCfCode():125:136 -> a
    44:44:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider.vivifiedTypeFor(com.android.tools.r8.graph.DexType):66:66 -> a
    44:44:com.android.tools.r8.graph.CfCode generateCfCode():140 -> a
    45:45:com.android.tools.r8.graph.CfCode generateCfCode():139:139 -> a
    46:58:com.android.tools.r8.graph.CfCode generateCfCode():136:148 -> a
com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider$APIConverterWrapperCfCodeProvider -> com.android.tools.r8.t.d.e:
    com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter converter -> e
    boolean itfCall -> f
    com.android.tools.r8.graph.DexField wrapperField -> c
    com.android.tools.r8.graph.DexMethod forwardMethod -> d
    1:5:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.desugar.DesugaredLibraryAPIConverter,boolean):167:171 -> <init>
    1:17:com.android.tools.r8.graph.CfCode generateCfCode():176:192 -> a
    18:18:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider.vivifiedTypeFor(com.android.tools.r8.graph.DexType):66:66 -> a
    18:18:com.android.tools.r8.graph.CfCode generateCfCode():195 -> a
    19:19:com.android.tools.r8.graph.CfCode generateCfCode():195:195 -> a
    20:40:com.android.tools.r8.graph.CfCode generateCfCode():192:212 -> a
    41:41:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider.vivifiedTypeFor(com.android.tools.r8.graph.DexType):66:66 -> a
    41:41:com.android.tools.r8.graph.CfCode generateCfCode():216 -> a
    42:42:com.android.tools.r8.graph.CfCode generateCfCode():215:215 -> a
    43:43:com.android.tools.r8.graph.CfCode generateCfCode():212:212 -> a
    44:44:com.android.tools.r8.graph.DexType com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider.vivifiedTypeFor(com.android.tools.r8.graph.DexType):66:66 -> a
    44:44:com.android.tools.r8.graph.CfCode generateCfCode():218 -> a
    45:50:com.android.tools.r8.graph.CfCode generateCfCode():220:225 -> a
com.android.tools.r8.ir.synthetic.DesugaredLibraryAPIConversionCfCodeProvider$APIConverterWrapperConversionCfCodeProvider -> com.android.tools.r8.t.d.f:
    com.android.tools.r8.graph.DexField wrapperField -> e
    com.android.tools.r8.graph.DexType argType -> c
    com.android.tools.r8.graph.DexField reverseWrapperField -> d
    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):237:240 -> <init>
    1:36:com.android.tools.r8.graph.CfCode generateCfCode():245:280 -> a
    37:37:com.android.tools.r8.graph.CfCode generateCfCode():278:278 -> a
    38:47:com.android.tools.r8.graph.CfCode generateCfCode():275:284 -> a
com.android.tools.r8.ir.synthetic.EmulateInterfaceSyntheticCfCodeProvider -> com.android.tools.r8.t.d.h:
    java.util.List extraDispatchCases -> f
    com.android.tools.r8.graph.DexType interfaceType -> c
    com.android.tools.r8.graph.DexMethod libraryMethod -> e
    com.android.tools.r8.graph.DexMethod companionMethod -> d
    1:5:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,java.util.List,com.android.tools.r8.graph.AppView):40:44 -> <init>
    1:41:com.android.tools.r8.graph.CfCode generateCfCode():49:89 -> a
    1:4:void addReturn(java.util.List):100:103 -> b
    1:2:void loadExtraParameters(java.util.List):94:95 -> c
com.android.tools.r8.ir.synthetic.ExceptionThrowingSourceCode -> com.android.tools.r8.t.d.i:
    com.android.tools.r8.graph.DexType exceptionType -> l
    1:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexType):24:25 -> <init>
    1:11:void lambda$prepareInstructions$0(com.android.tools.r8.ir.conversion.IRBuilder):32:42 -> f
    12:19:void lambda$prepareInstructions$0(com.android.tools.r8.ir.conversion.IRBuilder):37:44 -> f
    1:1:void prepareInstructions():30:30 -> h
com.android.tools.r8.ir.synthetic.FieldAccessorSourceCode -> com.android.tools.r8.t.d.j:
    boolean $assertionsDisabled -> m
    com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess fieldWithAccess -> l
    1:1:void <clinit>():15:15 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess):25:27 -> <init>
    1:1:void lambda$prepareInstructions$0(int,int,com.android.tools.r8.ir.conversion.IRBuilder):36:36 -> b
    2:2:void lambda$prepareInstructions$1(int,com.android.tools.r8.ir.conversion.IRBuilder):37:37 -> b
    1:1:void lambda$prepareInstructions$2(int,com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> c
    2:2:void lambda$prepareInstructions$4(int,int,com.android.tools.r8.ir.conversion.IRBuilder):46:46 -> c
    1:1:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):42:42 -> d
    1:1:void lambda$prepareInstructions$5(int,com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> e
    1:12:void prepareInstructions():32:43 -> h
    13:13:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstance():481:481 -> h
    13:13:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstancePut():497 -> h
    13:13:void prepareInstructions():43 -> h
    14:14:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isInstancePut():497:497 -> h
    14:14:void prepareInstructions():43 -> h
    15:20:void prepareInstructions():44:49 -> h
    21:21:boolean com.android.tools.r8.ir.desugar.NestBasedAccessDesugaring$DexFieldWithAccess.isStaticPut():489:489 -> h
    21:21:void prepareInstructions():49 -> h
    22:25:void prepareInstructions():49:52 -> h
com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode -> com.android.tools.r8.t.d.k:
    com.android.tools.r8.graph.DexType targetReceiver -> l
    com.android.tools.r8.graph.DexMethod target -> m
    boolean castResult -> o
    boolean isInterface -> p
    com.android.tools.r8.ir.code.Invoke$Type invokeType -> n
    boolean extraNullParameter -> q
    boolean $assertionsDisabled -> r
    1:1:void <clinit>():21:21 -> <clinit>
    1:20:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.ir.code.Position,boolean,boolean,boolean):122:141 -> <init>
    1:1:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder builder(com.android.tools.r8.graph.DexMethod):24:24 -> a
    2:2:void lambda$prepareInstructions$0(java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):196:196 -> a
    1:1:void lambda$prepareInstructions$1(int,com.android.tools.r8.ir.conversion.IRBuilder):210:210 -> b
    1:1:void lambda$prepareInstructions$2(int,com.android.tools.r8.ir.conversion.IRBuilder):212:212 -> c
    1:1:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):214:214 -> d
    1:36:void prepareInstructions():179:214 -> h
    1:27:boolean checkSignatures():146:172 -> i
com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder -> com.android.tools.r8.t.d.k$a:
    com.android.tools.r8.ir.code.Invoke$Type invokeType -> f
    boolean extraNullParameter -> i
    com.android.tools.r8.graph.DexType targetReceiver -> d
    com.android.tools.r8.graph.DexMethod target -> e
    boolean castResult -> g
    com.android.tools.r8.graph.DexType receiver -> a
    boolean isInterface -> h
    com.android.tools.r8.graph.DexMethod originalMethod -> c
    com.android.tools.r8.graph.DexMethod method -> b
    1:3:void <init>(com.android.tools.r8.graph.DexMethod):39:41 -> <init>
    1:1:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder setReceiver(com.android.tools.r8.graph.DexType):45:45 -> a
    2:2:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder setOriginalMethod(com.android.tools.r8.graph.DexMethod):55:55 -> a
    3:3:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder setInvokeType(com.android.tools.r8.ir.code.Invoke$Type):70:70 -> a
    4:4:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder setCastResult():75:75 -> a
    5:5:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder setIsInterface(boolean):80:80 -> a
    6:6:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode build(com.android.tools.r8.ir.code.Position):90:90 -> a
    1:1:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder setTargetReceiver(com.android.tools.r8.graph.DexType):60:60 -> b
    2:2:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder setTarget(com.android.tools.r8.graph.DexMethod):65:65 -> b
    3:3:com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode$Builder setExtraNullParameter():85:85 -> b
com.android.tools.r8.ir.synthetic.SynthesizedCode -> com.android.tools.r8.t.d.l:
    java.util.function.Consumer registryCallback -> b
    com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider sourceCodeProvider -> a
    1:1:void <init>(com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider):17:17 -> <init>
    2:4:void <init>(com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider,java.util.function.Consumer):20:22 -> <init>
    1:1:void registerReachableDefinitionsDefault(com.android.tools.r8.graph.UseRegistry):36:36 -> a
    1:1:java.util.function.Consumer getRegistryCallback():32:32 -> getRegistryCallback
    1:1:com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider():27:27 -> getSourceCodeProvider
com.android.tools.r8.ir.synthetic.SyntheticCfCodeProvider -> com.android.tools.r8.t.d.m:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.DexType holder -> b
    1:3:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):20:22 -> <init>
    1:1:com.android.tools.r8.graph.CfCode standardCfCodeFromInstructions(java.util.List):28:28 -> a
    2:2:java.util.List defaultTryCatchs():46:46 -> a
    2:2:com.android.tools.r8.graph.CfCode standardCfCodeFromInstructions(java.util.List):33 -> a
    3:3:com.android.tools.r8.graph.CfCode standardCfCodeFromInstructions(java.util.List):34:34 -> a
com.android.tools.r8.ir.synthetic.SyntheticSourceCode -> com.android.tools.r8.t.d.n:
    java.util.function.Predicate endsBlock -> j
    com.android.tools.r8.ir.code.Position position -> h
    java.util.List constructors -> f
    boolean $assertionsDisabled -> k
    int[] paramRegisters -> e
    int receiverRegister -> d
    com.android.tools.r8.graph.DexType receiver -> a
    com.android.tools.r8.graph.DexProto proto -> b
    java.util.List traceEvents -> g
    int nextRegister -> c
    java.util.function.Predicate doesNotEndBlock -> i
    1:3:void <clinit>():23:25 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):47:47 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexMethod):51:51 -> <init>
    3:36:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexMethod):34:67 -> <init>
    void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean) -> a
    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,int) -> a
    boolean verifyLocalInScope(com.android.tools.r8.graph.DebugLocalInfo) -> a
    1:1:void add(java.util.function.Consumer):71:71 -> a
    2:3:void add(java.util.function.Consumer,java.util.function.Predicate):75:76 -> a
    2:3:void add(java.util.function.Consumer):71 -> a
    4:5:void add(java.util.function.Consumer,java.util.function.Predicate):75:76 -> a
    6:7:int nextRegister(com.android.tools.r8.ir.code.ValueType):80:81 -> a
    8:8:int instructionCount():101:101 -> a
    9:10:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):139:140 -> a
    11:11:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):162:162 -> a
    12:12:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):159:159 -> a
    13:13:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):174:174 -> a
    14:14:void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder):186:186 -> a
    15:15:void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder):192:192 -> a
    16:16:int getMoveExceptionRegister(int):202:202 -> a
    void buildPostlude(com.android.tools.r8.ir.conversion.IRBuilder) -> b
    int instructionOffset(int) -> b
    1:3:void setUp():145:147 -> b
    com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder) -> c
    com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int) -> c
    boolean verifyCurrentInstructionCanThrow() -> c
    1:3:void clear():152:154 -> clear
    boolean lambda$static$0(com.android.tools.r8.ir.conversion.IRBuilder) -> d
    1:1:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):207:207 -> d
    2:2:com.android.tools.r8.ir.code.Position getCurrentPosition():212:212 -> d
    com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int) -> e
    boolean lambda$static$1(com.android.tools.r8.ir.conversion.IRBuilder) -> e
    1:3:int getReceiverRegister():86:88 -> e
    boolean verifyRegister(int) -> f
    1:1:int lastInstructionIndex():105:105 -> f
    int instructionIndex(int) -> g
    1:1:int nextInstructionIndex():109:109 -> g
    void prepareInstructions() -> h
    1:3:int getParamRegister(int):92:94 -> h
com.android.tools.r8.it.unimi.dsi.fastutil.Function -> com.android.tools.r8.u.a.a.a.a:
com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy -> com.android.tools.r8.u.a.a.a.b:
    boolean equals(java.lang.Object,java.lang.Object) -> a
    int hashCode(java.lang.Object) -> a
com.android.tools.r8.it.unimi.dsi.fastutil.HashCommon -> com.android.tools.r8.u.a.a.a.c:
    int long2int(long) -> a
    int mix(int) -> a
    1:2:int arraySize(int,float):228:229 -> a
    long mix(long) -> b
    1:1:int maxFill(int,float):205:205 -> b
    long nextPowerOfTwo(long) -> c
com.android.tools.r8.it.unimi.dsi.fastutil.Stack -> com.android.tools.r8.u.a.a.a.d:
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.AbstractBooleanCollection -> com.android.tools.r8.u.a.a.a.e.a:
    1:1:void <init>():37:37 -> <init>
    1:1:boolean add(boolean):68:68 -> a
    1:1:boolean add(java.lang.Object):36:36 -> add
    2:2:boolean add(java.lang.Boolean):114:114 -> add
    2:2:boolean add(java.lang.Object):36 -> add
    boolean contains(boolean) -> b
    1:4:boolean rem(boolean):94:97 -> c
    1:1:boolean contains(java.lang.Object):129:129 -> contains
    1:1:boolean remove(java.lang.Object):143:143 -> remove
    1:14:java.lang.String toString():206:219 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.AbstractBooleanIterator -> com.android.tools.r8.u.a.a.a.e.b:
    1:1:void <init>():34:34 -> <init>
    1:1:java.lang.Boolean next():57:57 -> next
    1:1:java.lang.Object next():33 -> next
    1:1:void remove():68:68 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.AbstractBooleanSet -> com.android.tools.r8.u.a.a.a.e.c:
    1:1:void <init>():32:32 -> <init>
    1:1:boolean rem(boolean):87:87 -> c
    boolean remove(boolean) -> d
    1:4:boolean equals(java.lang.Object):41:44 -> equals
    1:2:int hashCode():57:58 -> hashCode
    3:3:boolean com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet$1.hasNext():124:124 -> hashCode
    3:3:boolean com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet$1.nextBoolean():129 -> hashCode
    3:3:int hashCode():61 -> hashCode
    4:4:boolean com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet$1.nextBoolean():130:130 -> hashCode
    4:4:int hashCode():61 -> hashCode
    5:5:boolean com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet$1.nextBoolean():129:129 -> hashCode
    5:5:int hashCode():61 -> hashCode
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet -> com.android.tools.r8.u.a.a.a.e.e:
    int size -> b
    1:4:void <init>(boolean[],int):104:107 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet):29:29 -> a
    2:10:boolean add(boolean):164:172 -> a
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet):29:29 -> b
    2:2:boolean contains(boolean):143:143 -> b
    1:1:boolean[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet):29:29 -> c
    1:1:void clear():178:178 -> clear
    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet clone():201:205 -> clone
    1:5:java.lang.Object clone():29 -> clone
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet clone():203:203 -> clone
    6:6:java.lang.Object clone():29 -> clone
    1:6:boolean remove(boolean):153:158 -> d
    1:2:int findKey(boolean):111:112 -> e
    1:1:boolean isEmpty():183:183 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():119:119 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():119:119 -> iterator
    2:2:java.util.Iterator iterator():29 -> iterator
    1:1:int size():148:148 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet$1 -> com.android.tools.r8.u.a.a.a.e.d:
    com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet this$0 -> b
    int next -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet):119:120 -> <init>
    1:1:boolean hasNext():124:124 -> hasNext
    1:2:boolean nextBoolean():129:130 -> nextBoolean
    3:3:boolean nextBoolean():129:129 -> nextBoolean
    1:2:void remove():135:136 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArrays -> com.android.tools.r8.u.a.a.a.e.f:
    boolean[] EMPTY_ARRAY -> a
    1:1:void <clinit>():95:95 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection -> com.android.tools.r8.u.a.a.a.e.g:
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollections -> com.android.tools.r8.u.a.a.a.e.i:
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection):536:536 -> a
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollections$UnmodifiableCollection -> com.android.tools.r8.u.a.a.a.e.h:
    com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection collection -> a
    1:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection):369:371 -> <init>
    4:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection):370:370 -> <init>
    1:1:boolean add(java.lang.Object):365:365 -> add
    2:2:boolean add(java.lang.Boolean):453:453 -> add
    2:2:boolean add(java.lang.Object):365 -> add
    1:1:boolean addAll(java.util.Collection):437:437 -> addAll
    1:1:void clear():417:417 -> clear
    1:1:boolean contains(java.lang.Object):459:459 -> contains
    1:1:boolean containsAll(java.util.Collection):432:432 -> containsAll
    1:1:boolean equals(java.lang.Object):523:523 -> equals
    1:1:int hashCode():517:517 -> hashCode
    1:1:boolean isEmpty():391:391 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():400:400 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterators.unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator):747:747 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():400 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():400:400 -> iterator
    3:3:java.util.Iterator iterator():365 -> iterator
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterators.unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator):747:747 -> iterator
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():400 -> iterator
    4:4:java.util.Iterator iterator():365 -> iterator
    1:1:boolean remove(java.lang.Object):465:465 -> remove
    1:1:boolean removeAll(java.util.Collection):442:442 -> removeAll
    1:1:boolean retainAll(java.util.Collection):447:447 -> retainAll
    1:1:int size():386:386 -> size
    1:1:java.lang.Object[] toArray(java.lang.Object[]):422:422 -> toArray
    2:2:java.lang.Object[] toArray():427:427 -> toArray
    1:1:java.lang.String toString():512:512 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator -> com.android.tools.r8.u.a.a.a.e.j:
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterators$UnmodifiableIterator -> com.android.tools.r8.u.a.a.a.e.k:
    com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator i -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator):724:725 -> <init>
    1:1:boolean hasNext():730:730 -> hasNext
    1:1:boolean nextBoolean():735:735 -> nextBoolean
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntMap -> com.android.tools.r8.u.a.a.a.f.b:
    int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.defRetValue -> a
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.<init>():44:44 -> <init>
    1:1:void <init>():46 -> <init>
    int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(int,int) -> a
    boolean containsValue(int) -> b
    1:1:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.containsKey(java.lang.Object):105:105 -> containsKey
    1:1:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.containsKey(java.lang.Object):0 -> containsKey
    1:1:boolean containsValue(java.lang.Object):63:63 -> containsValue
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.defaultReturnValue(int):55:55 -> e
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.defaultReturnValue(int):0 -> e
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():311:311 -> entrySet
    1:1:java.util.Set entrySet():43 -> entrySet
    1:3:boolean equals(java.lang.Object):334:336 -> equals
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():311:311 -> equals
    4:4:boolean equals(java.lang.Object):337 -> equals
    5:5:boolean equals(java.lang.Object):337:337 -> equals
    int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.remove(int) -> f
    1:2:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.get(java.lang.Object):120:121 -> get
    1:2:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.get(java.lang.Object):0 -> get
    1:2:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.get(java.lang.Object):41 -> get
    1:2:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.get(java.lang.Object):0 -> get
    1:1:int hashCode():324:324 -> hashCode
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():311:311 -> hashCode
    2:2:int hashCode():325 -> hashCode
    3:5:int hashCode():325:327 -> hashCode
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(java.lang.Object,java.lang.Object):41:41 -> put
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(java.lang.Object,java.lang.Object):0 -> put
    2:5:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(java.lang.Integer,java.lang.Integer):135:138 -> put
    2:5:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(java.lang.Integer,java.lang.Integer):0 -> put
    2:5:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(java.lang.Object,java.lang.Object):41 -> put
    2:5:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(java.lang.Object,java.lang.Object):0 -> put
    1:13:void putAll(java.util.Map):83:95 -> putAll
    14:16:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(java.lang.Integer,java.lang.Integer):135:137 -> putAll
    14:16:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.put(java.lang.Integer,java.lang.Integer):0 -> putAll
    14:16:void putAll(java.util.Map):95 -> putAll
    1:4:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.remove(java.lang.Object):153:156 -> remove
    1:4:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.remove(java.lang.Object):0 -> remove
    1:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.remove(java.lang.Object):41 -> remove
    1:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction.remove(java.lang.Object):0 -> remove
    1:1:java.lang.String toString():342:342 -> toString
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():311:311 -> toString
    2:2:java.lang.String toString():343 -> toString
    3:17:java.lang.String toString():343:357 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntMap$BasicEntry -> com.android.tools.r8.u.a.a.a.f.a:
    int value -> b
    int key -> a
    1:3:void <init>(int,int):122:124 -> <init>
    1:1:int getIntValue():158:158 -> a
    1:1:int getIntKey():141:141 -> b
    1:5:boolean equals(java.lang.Object):180:184 -> equals
    1:1:java.lang.Integer getKey():136:136 -> getKey
    1:1:java.lang.Object getKey():113 -> getKey
    1:1:java.lang.Integer getValue():153:153 -> getValue
    1:1:java.lang.Object getValue():113 -> getValue
    1:1:int hashCode():189:189 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):113:113 -> setValue
    2:2:java.lang.Integer setValue(java.lang.Integer):175:175 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):113 -> setValue
    3:3:int setValue(int):163:163 -> setValue
    3:3:java.lang.Integer setValue(java.lang.Integer):175 -> setValue
    3:3:java.lang.Object setValue(java.lang.Object):113 -> setValue
    1:1:java.lang.String toString():194:194 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceFunction -> com.android.tools.r8.u.a.a.a.f.c:
    java.lang.Object defRetValue -> a
    1:1:void <init>():44:44 -> <init>
    1:1:java.lang.Object put(int,java.lang.Object):71:71 -> a
    1:1:boolean containsKey(java.lang.Object):105:105 -> containsKey
    1:2:java.lang.Object get(java.lang.Object):120:121 -> get
    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):41:41 -> put
    2:4:java.lang.Object put(java.lang.Integer,java.lang.Object):135:137 -> put
    2:4:java.lang.Object put(java.lang.Object,java.lang.Object):41 -> put
    1:1:java.lang.Object remove(int):82:82 -> remove
    2:4:java.lang.Object remove(java.lang.Object):153:155 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceMap -> com.android.tools.r8.u.a.a.a.f.e:
    1:1:void <init>():45:45 -> <init>
    boolean containsKey(int) -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():273:273 -> c
    1:1:java.util.Set entrySet():42:42 -> entrySet
    1:4:boolean equals(java.lang.Object):296:299 -> equals
    1:4:int hashCode():286:289 -> hashCode
    1:13:void putAll(java.util.Map):70:82 -> putAll
    14:16:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceFunction.put(java.lang.Integer,java.lang.Object):135:137 -> putAll
    14:16:void putAll(java.util.Map):82 -> putAll
    1:17:java.lang.String toString():304:320 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceMap$BasicEntry -> com.android.tools.r8.u.a.a.a.f.d:
    java.lang.Object value -> b
    int key -> a
    1:3:void <init>(int,java.lang.Object):109:111 -> <init>
    1:1:int getIntKey():128:128 -> b
    1:4:boolean equals(java.lang.Object):143:146 -> equals
    1:1:java.lang.Integer getKey():123:123 -> getKey
    1:1:java.lang.Object getKey():100 -> getKey
    1:1:java.lang.Object getValue():133:133 -> getValue
    1:1:int hashCode():151:151 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):138:138 -> setValue
    1:1:java.lang.String toString():156:156 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap -> com.android.tools.r8.u.a.a.a.f.f:
    1:1:void <init>():33:33 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():293:293 -> c
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():30 -> c
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():293:293 -> entrySet
    1:1:java.util.Set entrySet():30 -> entrySet
    1:1:java.lang.Integer firstKey():85:85 -> firstKey
    1:1:java.lang.Object firstKey():30 -> firstKey
    1:1:java.util.SortedMap headMap(java.lang.Object):30:30 -> headMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(java.lang.Integer):46:46 -> headMap
    2:2:java.util.SortedMap headMap(java.lang.Object):30 -> headMap
    1:1:java.lang.Integer lastKey():98:98 -> lastKey
    1:1:java.lang.Object lastKey():30 -> lastKey
    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):30:30 -> subMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(java.lang.Integer,java.lang.Integer):72:72 -> subMap
    2:2:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):30 -> subMap
    1:1:java.util.SortedMap tailMap(java.lang.Object):30:30 -> tailMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(java.lang.Integer):59:59 -> tailMap
    2:2:java.util.SortedMap tailMap(java.lang.Object):30 -> tailMap
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap$KeySet -> com.android.tools.r8.u.a.a.a.f.f$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap):122:122 -> <init>
    1:1:boolean contains(int):125:125 -> b
    1:1:void clear():135:135 -> clear
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator comparator():140:140 -> comparator
    1:1:java.util.Comparator comparator():122 -> comparator
    1:1:int size():130:130 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection -> com.android.tools.r8.u.a.a.a.f.g:
    1:1:void <init>():37:37 -> <init>
    1:1:boolean add(int):68:68 -> a
    2:2:boolean add(java.lang.Integer):114:114 -> a
    3:4:int[] toArray(int[]):148:149 -> a
    5:5:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators.unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[]):312:312 -> a
    5:5:int[] toArray(int[]):149 -> a
    6:9:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators.unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[],int,int):289:292 -> a
    6:9:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators.unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[]):312 -> a
    6:9:int[] toArray(int[]):149 -> a
    10:10:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators.unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[],int,int):289:289 -> a
    10:10:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators.unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[]):312 -> a
    10:10:int[] toArray(int[]):149 -> a
    11:11:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators.unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[],int,int):288:288 -> a
    11:11:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators.unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[]):312 -> a
    11:11:int[] toArray(int[]):149 -> a
    12:13:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):173:174 -> a
    1:1:boolean add(java.lang.Object):36:36 -> add
    boolean contains(int) -> b
    1:4:boolean rem(int):94:97 -> c
    5:5:int[] toIntArray(int[]):167:167 -> c
    5:5:int[] toIntArray():155 -> c
    1:1:boolean contains(java.lang.Object):129:129 -> contains
    1:1:boolean remove(java.lang.Object):143:143 -> remove
    1:14:java.lang.String toString():206:219 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntIterator -> com.android.tools.r8.u.a.a.a.f.h:
    1:1:void <init>():34:34 -> <init>
    1:1:java.lang.Integer next():57:57 -> next
    1:1:java.lang.Object next():33 -> next
    1:1:void remove():68:68 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList -> com.android.tools.r8.u.a.a.a.f.k:
    1:1:void <init>():33:33 -> <init>
    boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList) -> a
    1:1:boolean add(int):86:86 -> a
    2:8:void removeElements(int,int):341:347 -> a
    9:9:void removeElements(int,int):344:344 -> a
    10:15:void getElements(int,int[],int,int):388:393 -> a
    16:16:void getElements(int,int[],int,int):391:391 -> a
    17:17:void getElements(int,int[],int,int):390:390 -> a
    18:18:void getElements(int,int[],int,int):389:389 -> a
    19:23:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):525:529 -> a
    24:24:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):553:553 -> a
    25:25:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):564:564 -> a
    1:1:void add(int,java.lang.Object):32:32 -> add
    2:2:void add(int,java.lang.Integer):578:578 -> add
    2:2:void add(int,java.lang.Object):32 -> add
    3:3:void add(int,int):74:74 -> add
    1:5:boolean addAll(int,java.util.Collection):120:124 -> addAll
    6:6:void add(int,java.lang.Integer):578:578 -> addAll
    6:6:boolean addAll(int,java.util.Collection):124 -> addAll
    7:7:boolean addAll(java.util.Collection):137:137 -> addAll
    1:1:boolean contains(int):274:274 -> b
    2:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):310:313 -> b
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):312:312 -> b
    7:25:int compareTo(java.util.List):464:482 -> b
    1:1:void clear():403:403 -> clear
    1:1:int compareTo(java.lang.Object):32:32 -> compareTo
    1:1:void ensureIndex(int):47:47 -> d
    2:2:void ensureIndex(int):46:46 -> d
    3:3:int set(int,int):111:111 -> d
    int removeInt(int) -> e
    1:14:boolean equals(java.lang.Object):430:443 -> equals
    15:15:boolean valEquals(java.lang.Object,java.lang.Object):407:407 -> equals
    15:15:boolean equals(java.lang.Object):443 -> equals
    1:1:void ensureRestrictedIndex(int):62:62 -> g
    2:2:void ensureRestrictedIndex(int):61:61 -> g
    1:1:java.lang.Integer get(int):606:606 -> get
    1:1:java.lang.Object get(int):32 -> get
    1:5:int indexOf(int):279:283 -> h
    1:4:int hashCode():418:421 -> hashCode
    1:5:int lastIndexOf(int):290:294 -> i
    1:1:int indexOf(java.lang.Object):620:620 -> indexOf
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():32:32 -> iterator
    2:2:java.util.Iterator iterator():32:32 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():180:180 -> iterator
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int) -> j
    1:1:int lastIndexOf(java.lang.Object):634:634 -> lastIndexOf
    1:1:java.util.ListIterator listIterator():32:32 -> listIterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator():192:192 -> listIterator
    1:1:java.lang.Integer remove(int):648:648 -> remove
    1:1:java.lang.Object remove(int):32 -> remove
    1:1:java.lang.Object set(int,java.lang.Object):32:32 -> set
    2:2:java.lang.Integer set(int,java.lang.Integer):592:592 -> set
    2:2:java.lang.Object set(int,java.lang.Object):32 -> set
    1:1:java.util.List subList(int,int):32:32 -> subList
    1:14:java.lang.String toString():709:722 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList -> com.android.tools.r8.u.a.a.a.f.j:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList l -> a
    int from -> b
    int to -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():726:726 -> <clinit>
    1:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList,int,int):735:738 -> <init>
    1:1:boolean access$000(com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList):726:726 -> a
    2:4:boolean assertRange():742:744 -> a
    5:7:boolean add(int):750:752 -> a
    8:10:void getElements(int,int[],int,int):797:799 -> a
    11:11:void getElements(int,int[],int,int):798:798 -> a
    12:16:void removeElements(int,int):804:808 -> a
    17:18:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):898:899 -> a
    19:19:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):904:904 -> a
    20:20:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):542:542 -> a
    20:20:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):905 -> a
    1:1:void add(int,java.lang.Object):726:726 -> add
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.add(int,java.lang.Integer):578:578 -> add
    2:2:void add(int,java.lang.Object):726 -> add
    3:6:void add(int,int):758:761 -> add
    1:3:boolean addAll(int,java.util.Collection):766:768 -> addAll
    1:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):880:883 -> b
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):882:882 -> b
    1:5:boolean rem(int):888:892 -> c
    1:1:int compareTo(java.lang.Object):726:726 -> compareTo
    1:2:int set(int,int):786:787 -> d
    1:3:int removeInt(int):779:781 -> e
    1:2:int getInt(int):773:774 -> get
    1:2:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.get(int):606 -> get
    1:2:java.lang.Object get(int):726 -> get
    3:3:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.get(int):606:606 -> get
    3:3:java.lang.Object get(int):726 -> get
    1:2:int getInt(int):773:774 -> getInt
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.iterator():180:180 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():726 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.iterator():180:180 -> iterator
    2:2:java.util.Iterator iterator():726 -> iterator
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):821:822 -> j
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.listIterator():192:192 -> listIterator
    1:1:java.util.ListIterator listIterator():726 -> listIterator
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):821:822 -> listIterator
    2:3:java.util.ListIterator listIterator(int):726 -> listIterator
    1:1:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.remove(int):648:648 -> remove
    1:1:java.lang.Object remove(int):726 -> remove
    1:1:java.lang.Object set(int,java.lang.Object):726:726 -> set
    2:2:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.set(int,java.lang.Integer):592:592 -> set
    2:2:java.lang.Object set(int,java.lang.Object):726 -> set
    3:4:int set(int,int):786:787 -> set
    3:4:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.set(int,java.lang.Integer):592 -> set
    3:4:java.lang.Object set(int,java.lang.Object):726 -> set
    5:5:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.set(int,java.lang.Integer):592:592 -> set
    5:5:java.lang.Object set(int,java.lang.Object):726 -> set
    1:1:int size():792:792 -> size
    1:1:java.util.List subList(int,int):726:726 -> subList
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList$1 -> com.android.tools.r8.u.a.a.a.f.i:
    boolean $assertionsDisabled -> e
    int last -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList this$0 -> d
    int val$index -> c
    int pos -> a
    1:1:void <clinit>():822:822 -> <clinit>
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList,int):822:823 -> <init>
    1:4:void add(int):852:855 -> a
    5:5:void add(int):852:852 -> a
    1:2:void set(int):859:860 -> b
    3:3:void set(int):859:859 -> b
    1:2:int previousInt():839:840 -> d
    3:3:int previousInt():839:839 -> d
    1:1:boolean hasNext():826:826 -> hasNext
    1:1:boolean hasPrevious():830:830 -> hasPrevious
    1:1:int nextIndex():844:844 -> nextIndex
    1:2:int nextInt():834:835 -> nextInt
    3:3:int nextInt():834:834 -> nextInt
    1:1:int previousIndex():848:848 -> previousIndex
    1:10:void remove():864:873 -> remove
    11:11:void remove():864:864 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntListIterator -> com.android.tools.r8.u.a.a.a.f.l:
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntBidirectionalIterator.<init>():34:34 -> <init>
    1:1:void <init>():35 -> <init>
    1:1:void add(int):57:57 -> a
    1:1:void add(java.lang.Object):34:34 -> add
    2:2:void add(java.lang.Integer):83:83 -> add
    2:2:void add(java.lang.Object):34 -> add
    1:1:void set(int):46:46 -> b
    int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntBidirectionalIterator.previousInt() -> d
    1:1:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntBidirectionalIterator.previous():56:56 -> previous
    1:1:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntBidirectionalIterator.previous():0 -> previous
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntBidirectionalIterator.previous():33 -> previous
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntBidirectionalIterator.previous():0 -> previous
    1:1:void set(java.lang.Object):34:34 -> set
    2:2:void set(java.lang.Integer):70:70 -> set
    2:2:void set(java.lang.Object):34 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntSet -> com.android.tools.r8.u.a.a.a.f.m:
    1:1:void <init>():32:32 -> <init>
    1:1:boolean rem(int):87:87 -> c
    1:4:boolean equals(java.lang.Object):41:44 -> equals
    1:5:int hashCode():57:61 -> hashCode
    1:1:boolean remove(int):75:75 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntSortedSet -> com.android.tools.r8.u.a.a.a.f.n:
    1:1:void <init>():23:23 -> <init>
    1:1:java.lang.Integer first():94:94 -> first
    1:1:java.lang.Object first():22 -> first
    2:2:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap$KeySet.firstInt():145:145 -> first
    2:2:java.lang.Integer first():94 -> first
    2:2:java.lang.Object first():22 -> first
    3:3:java.lang.Integer first():94:94 -> first
    3:3:java.lang.Object first():22 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):22:22 -> headSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(java.lang.Integer):55:55 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):22 -> headSet
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap$KeySet.headSet(int):155:155 -> headSet
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(java.lang.Integer):55 -> headSet
    3:3:java.util.SortedSet headSet(java.lang.Object):22 -> headSet
    1:1:java.lang.Integer last():107:107 -> last
    1:1:java.lang.Object last():22 -> last
    2:2:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap$KeySet.lastInt():150:150 -> last
    2:2:java.lang.Integer last():107 -> last
    2:2:java.lang.Object last():22 -> last
    3:3:java.lang.Integer last():107:107 -> last
    3:3:java.lang.Object last():22 -> last
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):22:22 -> subSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(java.lang.Integer,java.lang.Integer):81:81 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):22 -> subSet
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap$KeySet.subSet(int,int):165:165 -> subSet
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(java.lang.Integer,java.lang.Integer):81 -> subSet
    3:3:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):22 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):22:22 -> tailSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(java.lang.Integer):68:68 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):22 -> tailSet
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap$KeySet.tailSet(int):160:160 -> tailSet
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(java.lang.Integer):68 -> tailSet
    3:3:java.util.SortedSet tailSet(java.lang.Object):22 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap -> com.android.tools.r8.u.a.a.a.f.r:
    int[] key -> b
    int[] value -> c
    int size -> d
    1:3:void <init>():70:72 -> <init>
    4:6:void <init>(int):81:83 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap):37:37 -> a
    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap,int):37:37 -> a
    3:3:boolean containsKey(int):261:261 -> a
    4:23:int put(int,int):279:298 -> a
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap):37:37 -> b
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$FastEntrySet int2IntEntrySet():230:230 -> b
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2IntEntrySet():37 -> b
    3:4:boolean containsValue(int):266:267 -> b
    1:1:int[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap):37:37 -> c
    1:1:void clear():256:256 -> clear
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap clone():339:344 -> clone
    1:6:java.lang.Object clone():37 -> clone
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap clone():341:341 -> clone
    7:7:java.lang.Object clone():37 -> clone
    1:1:int[] access$200(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap):37:37 -> d
    1:7:int remove(int):304:310 -> f
    1:3:int findKey(int):234:236 -> g
    1:4:int get(int):243:246 -> get
    1:1:boolean isEmpty():273:273 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():316:316 -> keySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():316:316 -> keySet
    2:2:java.util.Set keySet():37 -> keySet
    1:1:int size():251:251 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():321:321 -> values
    1:1:java.util.Collection values():37 -> values
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollections.unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):536:536 -> values
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():321 -> values
    2:2:java.util.Collection values():37 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$1 -> com.android.tools.r8.u.a.a.a.f.o:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$EntrySet -> com.android.tools.r8.u.a.a.a.f.q:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap):133:133 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$1):133:133 -> <init>
    1:6:boolean contains(java.lang.Object):201:206 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:java.util.Iterator iterator():133 -> iterator
    1:12:boolean remove(java.lang.Object):212:223 -> remove
    1:1:int size():195:195 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$EntrySet$1 -> com.android.tools.r8.u.a.a.a.f.p:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$EntrySet this$1 -> c
    int next -> b
    int curr -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$EntrySet):136:137 -> <init>
    1:1:boolean hasNext():141:141 -> hasNext
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$Entry next():147:148 -> next
    1:2:java.lang.Object next():136 -> next
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$Entry next():147:147 -> next
    3:3:java.lang.Object next():136 -> next
    1:5:void remove():153:157 -> remove
    6:6:void remove():153:153 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntFunction -> com.android.tools.r8.u.a.a.a.f.s:
    boolean containsKey(int) -> a
    int put(int,int) -> a
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap -> com.android.tools.r8.u.a.a.a.f.v:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2IntEntrySet() -> b
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$Entry -> com.android.tools.r8.u.a.a.a.f.t:
    int getIntValue() -> a
    int getIntKey() -> b
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$FastEntrySet -> com.android.tools.r8.u.a.a.a.f.u:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap -> com.android.tools.r8.u.a.a.a.f.E:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values -> l
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$FastEntrySet entries -> j
    float f -> i
    int[] key -> b
    int[] value -> c
    int size -> h
    boolean containsNullKey -> e
    int n -> f
    int maxFill -> g
    int mask -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keys -> k
    1:9:void <init>(int,float):92:100 -> <init>
    10:10:void <init>(int,float):94:94 -> <init>
    11:11:void <init>(int,float):93:93 -> <init>
    12:12:void <init>():120:120 -> <init>
    13:14:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,float):156:157 -> <init>
    1:1:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):50:50 -> a
    2:2:int access$400(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,int):50:50 -> a
    3:18:int insert(int,int):248:263 -> a
    3:18:int put(int,int):270 -> a
    19:21:int put(int,int):271:273 -> a
    22:31:boolean containsKey(int):387:396 -> a
    1:5:boolean containsValue(int):403:407 -> b
    6:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$FastEntrySet int2IntEntrySet():773:774 -> b
    6:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2IntEntrySet():50 -> b
    1:4:int removeNullEntry():228:231 -> c
    1:4:void clear():420:423 -> clear
    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap clone():1017:1026 -> clone
    1:10:java.lang.Object clone():50 -> clone
    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap clone():1019:1019 -> clone
    11:11:java.lang.Object clone():50 -> clone
    1:12:int remove(int):352:363 -> f
    1:7:void rehash(int):979:985 -> g
    8:8:int realSize():206:206 -> g
    8:8:void rehash(int):986 -> g
    9:21:void rehash(int):987:999 -> g
    1:11:int get(int):370:380 -> get
    1:2:int removeEntry(int):220:221 -> h
    3:8:void shiftKeys(int):333:338 -> h
    3:8:int removeEntry(int):222 -> h
    9:9:int removeEntry(int):223:223 -> h
    10:15:void shiftKeys(int):341:346 -> h
    10:15:int removeEntry(int):222 -> h
    16:16:void shiftKeys(int):343:343 -> h
    16:16:int removeEntry(int):222 -> h
    1:1:int realSize():206:206 -> hashCode
    1:1:int hashCode():1043 -> hashCode
    2:10:int hashCode():1044:1052 -> hashCode
    1:1:boolean isEmpty():433:433 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():834:835 -> keySet
    1:2:java.util.Set keySet():50 -> keySet
    1:1:void putAll(java.util.Map):237:237 -> putAll
    2:3:void ensureCapacity(int):210:211 -> putAll
    2:3:void putAll(java.util.Map):237 -> putAll
    4:4:int size():428:428 -> putAll
    4:4:void putAll(java.util.Map):239 -> putAll
    5:5:void putAll(java.util.Map):239:239 -> putAll
    6:7:void tryCapacity(long):215:216 -> putAll
    6:7:void putAll(java.util.Map):239 -> putAll
    8:8:void putAll(java.util.Map):242:242 -> putAll
    1:1:int size():428:428 -> size
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():866:887 -> values
    1:22:java.util.Collection values():50 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.f.w:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):866:866 -> <init>
    1:1:boolean contains(int):879:879 -> b
    1:1:void clear():884:884 -> clear
    1:1:java.util.Iterator iterator():866:866 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():869:869 -> iterator
    1:1:int size():874:874 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.f.x:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapEntry entry -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):664:664 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$1):664:664 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapEntry next():669:669 -> next
    1:1:java.lang.Object next():664 -> next
    1:2:void remove():674:675 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.f.y:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):787:788 -> <init>
    1:1:java.lang.Integer next():799:799 -> next
    1:1:java.lang.Object next():786 -> next
    1:1:int nextInt():793:793 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.f.z:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):803:803 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$1):803:803 -> <init>
    1:1:boolean contains(int):816:816 -> b
    1:1:void clear():828:828 -> clear
    1:1:java.util.Iterator iterator():803:803 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():806:806 -> iterator
    1:3:boolean remove(int):821:823 -> remove
    1:1:int size():811:811 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.f.A:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,int):472:473 -> <init>
    1:1:int getIntValue():486:486 -> a
    1:1:int getIntKey():481:481 -> b
    1:3:boolean equals(java.lang.Object):535:537 -> equals
    1:1:java.lang.Integer getKey():505:505 -> getKey
    1:1:java.lang.Object getKey():467 -> getKey
    1:1:java.lang.Integer getValue():517:517 -> getValue
    1:1:java.lang.Object getValue():467 -> getValue
    1:1:int hashCode():542:542 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):467:467 -> setValue
    2:2:java.lang.Integer setValue(java.lang.Integer):529:529 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):467 -> setValue
    3:4:int setValue(int):491:492 -> setValue
    3:4:java.lang.Integer setValue(java.lang.Integer):529 -> setValue
    3:4:java.lang.Object setValue(java.lang.Object):467 -> setValue
    5:5:java.lang.Integer setValue(java.lang.Integer):529:529 -> setValue
    5:5:java.lang.Object setValue(java.lang.Object):467 -> setValue
    1:1:java.lang.String toString():547:547 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.f.B:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):689:689 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$1):689:689 -> <init>
    1:1:void clear():767:767 -> clear
    1:17:boolean contains(java.lang.Object):701:717 -> contains
    1:1:java.util.Iterator iterator():689:689 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():691:691 -> iterator
    1:30:boolean remove(java.lang.Object):724:753 -> remove
    1:1:int size():762:762 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.f.C:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList wrapped -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> f
    int last -> b
    int pos -> a
    boolean mustReturnNullKey -> d
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):552:575 -> <init>
    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$1):552:552 -> <init>
    1:18:int nextEntry():587:604 -> c
    19:19:int nextEntry():587:587 -> c
    1:1:boolean hasNext():583:583 -> hasNext
    1:4:void remove():641:644 -> remove
    5:10:void shiftKeys(int):619:624 -> remove
    5:10:void remove():644 -> remove
    11:12:void remove():651:652 -> remove
    13:22:void shiftKeys(int):627:636 -> remove
    13:22:void remove():644 -> remove
    23:23:void shiftKeys(int):629:629 -> remove
    23:23:void remove():644 -> remove
    24:25:void remove():647:648 -> remove
    26:26:void remove():641:641 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.f.D:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):848:849 -> <init>
    1:1:java.lang.Integer next():860:860 -> next
    1:1:java.lang.Object next():847 -> next
    1:1:int nextInt():854:854 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap -> com.android.tools.r8.u.a.a.a.f.K:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry -> e
    boolean modified -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator actualComparator -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entries -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keys -> g
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry tree -> b
    int count -> c
    boolean[] dirPath -> k
    1:1:void <init>():79:79 -> <init>
    2:10:void <init>():73:81 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():41:41 -> a
    2:12:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):305:315 -> a
    2:12:java.lang.Object put(int,java.lang.Object):283 -> a
    13:13:int compare(int,int):232:232 -> a
    13:13:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):315 -> a
    13:13:java.lang.Object put(int,java.lang.Object):283 -> a
    14:14:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
    14:14:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):318 -> a
    14:14:java.lang.Object put(int,java.lang.Object):283 -> a
    15:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):323:330 -> a
    15:22:java.lang.Object put(int,java.lang.Object):283 -> a
    23:24:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.right(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):862:863 -> a
    23:24:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):331 -> a
    23:24:java.lang.Object put(int,java.lang.Object):283 -> a
    25:33:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):335:343 -> a
    25:33:java.lang.Object put(int,java.lang.Object):283 -> a
    34:35:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.left(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):851:852 -> a
    34:35:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):344 -> a
    34:35:java.lang.Object put(int,java.lang.Object):283 -> a
    36:38:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):354:356 -> a
    36:38:java.lang.Object put(int,java.lang.Object):283 -> a
    39:39:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
    39:39:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):358 -> a
    39:39:java.lang.Object put(int,java.lang.Object):283 -> a
    40:40:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):359:359 -> a
    40:40:java.lang.Object put(int,java.lang.Object):283 -> a
    41:41:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
    41:41:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):360 -> a
    41:41:java.lang.Object put(int,java.lang.Object):283 -> a
    42:43:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):362:363 -> a
    42:43:java.lang.Object put(int,java.lang.Object):283 -> a
    44:45:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> a
    44:45:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):364 -> a
    44:45:java.lang.Object put(int,java.lang.Object):283 -> a
    46:56:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):365:375 -> a
    46:56:java.lang.Object put(int,java.lang.Object):283 -> a
    57:57:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
    57:57:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):376 -> a
    57:57:java.lang.Object put(int,java.lang.Object):283 -> a
    58:68:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):377:387 -> a
    58:68:java.lang.Object put(int,java.lang.Object):283 -> a
    69:70:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):840:841 -> a
    69:70:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):388 -> a
    69:70:java.lang.Object put(int,java.lang.Object):283 -> a
    71:73:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):389:391 -> a
    71:73:java.lang.Object put(int,java.lang.Object):283 -> a
    74:75:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> a
    74:75:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):392 -> a
    74:75:java.lang.Object put(int,java.lang.Object):283 -> a
    76:80:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):393:397 -> a
    76:80:java.lang.Object put(int,java.lang.Object):283 -> a
    81:81:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
    81:81:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):398 -> a
    81:81:java.lang.Object put(int,java.lang.Object):283 -> a
    82:83:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):400:401 -> a
    82:83:java.lang.Object put(int,java.lang.Object):283 -> a
    84:85:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):840:841 -> a
    84:85:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):402 -> a
    84:85:java.lang.Object put(int,java.lang.Object):283 -> a
    86:96:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):403:413 -> a
    86:96:java.lang.Object put(int,java.lang.Object):283 -> a
    97:97:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> a
    97:97:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):414 -> a
    97:97:java.lang.Object put(int,java.lang.Object):283 -> a
    98:108:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):415:425 -> a
    98:108:java.lang.Object put(int,java.lang.Object):283 -> a
    109:110:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):840:841 -> a
    109:110:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):426 -> a
    109:110:java.lang.Object put(int,java.lang.Object):283 -> a
    111:113:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):427:429 -> a
    111:113:java.lang.Object put(int,java.lang.Object):283 -> a
    114:115:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> a
    114:115:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):430 -> a
    114:115:java.lang.Object put(int,java.lang.Object):283 -> a
    116:123:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):431:438 -> a
    116:123:java.lang.Object put(int,java.lang.Object):283 -> a
    124:125:java.lang.Object put(int,java.lang.Object):284:285 -> a
    126:126:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):348:348 -> a
    126:126:java.lang.Object put(int,java.lang.Object):283 -> a
    127:127:boolean containsKey(int):980:980 -> a
    128:206:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet():1161:1239 -> a
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry findKey(int):245:247 -> b
    4:4:int compare(int,int):232:232 -> b
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry findKey(int):247 -> b
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry findKey(int):248:248 -> b
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1421:1421 -> b
    1:1:int compare(int,int):232:232 -> c
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):1416:1416 -> c
    1:6:void clear():701:706 -> clear
    1:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1948:1954 -> clone
    1:7:java.lang.Object clone():41 -> clone
    8:8:void allocatePaths():278:278 -> clone
    8:8:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1955 -> clone
    8:8:java.lang.Object clone():41 -> clone
    9:20:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1956:1967 -> clone
    9:20:java.lang.Object clone():41 -> clone
    21:22:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):840:841 -> clone
    21:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1968 -> clone
    21:22:java.lang.Object clone():41 -> clone
    23:24:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.left(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):851:852 -> clone
    23:24:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1969 -> clone
    23:24:java.lang.Object clone():41 -> clone
    25:48:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1970:1993 -> clone
    25:48:java.lang.Object clone():41 -> clone
    49:50:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> clone
    49:50:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1994 -> clone
    49:50:java.lang.Object clone():41 -> clone
    51:52:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.right(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):862:863 -> clone
    51:52:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1995 -> clone
    51:52:java.lang.Object clone():41 -> clone
    53:53:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1950:1950 -> clone
    53:53:java.lang.Object clone():41 -> clone
    1:3:boolean containsValue(java.lang.Object):689:691 -> containsValue
    4:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$ValueIterator.next():1351:1351 -> containsValue
    4:4:boolean containsValue(java.lang.Object):693 -> containsValue
    1:2:int firstIntKey():1001:1002 -> d
    3:3:int firstIntKey():1001:1001 -> d
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):1411:1411 -> d
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry locateKey(int):262:264 -> e
    4:4:int compare(int,int):232:232 -> e
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry locateKey(int):264 -> e
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry locateKey(int):266:266 -> e
    1:2:java.lang.Object get(int):995:996 -> get
    1:1:void allocatePaths():278:278 -> h
    1:2:int lastIntKey():1007:1008 -> i
    3:3:int lastIntKey():1007:1007 -> i
    1:1:boolean isEmpty():990:990 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():41:41 -> keySet
    2:2:java.util.Set keySet():41:41 -> keySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():1334:1335 -> keySet
    1:8:java.lang.Object remove(int):484:491 -> remove
    9:9:int compare(int,int):232:232 -> remove
    9:9:java.lang.Object remove(int):491 -> remove
    10:34:java.lang.Object remove(int):500:524 -> remove
    35:35:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
    35:35:java.lang.Object remove(int):525 -> remove
    36:46:java.lang.Object remove(int):525:535 -> remove
    47:48:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> remove
    47:48:java.lang.Object remove(int):535 -> remove
    49:60:java.lang.Object remove(int):536:547 -> remove
    61:61:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
    61:61:java.lang.Object remove(int):548 -> remove
    62:62:java.lang.Object remove(int):548:548 -> remove
    63:80:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry parent(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):453:470 -> remove
    63:80:java.lang.Object remove(int):556 -> remove
    81:82:java.lang.Object remove(int):558:559 -> remove
    83:83:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
    83:83:java.lang.Object remove(int):560 -> remove
    84:84:java.lang.Object remove(int):562:562 -> remove
    85:85:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
    85:85:java.lang.Object remove(int):564 -> remove
    86:90:java.lang.Object remove(int):567:571 -> remove
    91:91:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
    91:91:java.lang.Object remove(int):572 -> remove
    92:103:java.lang.Object remove(int):573:584 -> remove
    104:105:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):840:841 -> remove
    104:105:java.lang.Object remove(int):585 -> remove
    106:108:java.lang.Object remove(int):586:588 -> remove
    109:110:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> remove
    109:110:java.lang.Object remove(int):589 -> remove
    111:121:java.lang.Object remove(int):590:600 -> remove
    122:122:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
    122:122:java.lang.Object remove(int):601 -> remove
    123:141:java.lang.Object remove(int):602:620 -> remove
    142:142:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
    142:142:java.lang.Object remove(int):621 -> remove
    143:143:java.lang.Object remove(int):623:623 -> remove
    144:144:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
    144:144:java.lang.Object remove(int):625 -> remove
    145:149:java.lang.Object remove(int):628:632 -> remove
    150:150:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
    150:150:java.lang.Object remove(int):633 -> remove
    151:162:java.lang.Object remove(int):634:645 -> remove
    163:164:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):840:841 -> remove
    163:164:java.lang.Object remove(int):646 -> remove
    165:167:java.lang.Object remove(int):647:649 -> remove
    168:169:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> remove
    168:169:java.lang.Object remove(int):650 -> remove
    170:180:java.lang.Object remove(int):651:661 -> remove
    181:181:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry.balance():872:872 -> remove
    181:181:java.lang.Object remove(int):662 -> remove
    182:195:java.lang.Object remove(int):663:676 -> remove
    196:197:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry parent(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):474:475 -> remove
    196:197:java.lang.Object remove(int):556 -> remove
    198:201:java.lang.Object remove(int):681:684 -> remove
    202:205:java.lang.Object remove(int):494:497 -> remove
    1:1:int size():985:985 -> size
    1:1:java.util.Collection values():41:41 -> values
    2:19:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():1384:1401 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$1 -> com.android.tools.r8.u.a.a.a.f.F:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$2 -> com.android.tools.r8.u.a.a.a.f.H:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap this$0 -> b
    java.util.Comparator comparator -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1161:1162 -> <init>
    1:1:void clear():1211:1211 -> clear
    1:1:java.util.Comparator comparator():1170:1170 -> comparator
    1:5:boolean contains(java.lang.Object):1186:1190 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry first():1216:1216 -> first
    1:1:java.lang.Object first():1161 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):1161:1161 -> headSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1231:1231 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):1161 -> headSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1161:1161 -> iterator
    2:2:java.util.Iterator iterator():1161:1161 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1175:1175 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry last():1221:1221 -> last
    1:1:java.lang.Object last():1161 -> last
    1:5:boolean remove(java.lang.Object):1196:1200 -> remove
    1:1:int size():1206:1206 -> size
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1161:1161 -> subSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1226:1226 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1161 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1161:1161 -> tailSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1236:1236 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):1161 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$2$1 -> com.android.tools.r8.u.a.a.a.f.G:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$2 this$1 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$2):1162:1162 -> <init>
    1:1:int compare(java.lang.Object,java.lang.Object):1162:1162 -> compare
    2:2:int compare(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1164:1164 -> compare
    2:2:int compare(java.lang.Object,java.lang.Object):1162 -> compare
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$3 -> com.android.tools.r8.u.a.a.a.f.I:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1384:1384 -> <init>
    1:1:void clear():1398:1398 -> clear
    1:1:boolean contains(java.lang.Object):1390:1390 -> contains
    1:1:java.util.Iterator iterator():1384:1384 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1386:1386 -> iterator
    1:1:int size():1394:1394 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry -> com.android.tools.r8.u.a.a.a.f.J:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry right -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry left -> c
    int info -> e
    1:1:void <init>():745:745 -> <init>
    2:3:void <init>(int,java.lang.Object):757:758 -> <init>
    1:2:void pred(boolean):806:807 -> a
    3:4:void left(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):851:852 -> a
    5:6:void balance(int):882:883 -> a
    1:2:void succ(boolean):818:819 -> b
    3:4:void pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> b
    1:2:void succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):840:841 -> c
    1:1:java.lang.Object clone():720:720 -> clone
    1:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry clone():933:939 -> d
    8:8:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry clone():935:935 -> d
    1:1:void decBalance():893:893 -> e
    1:3:boolean equals(java.lang.Object):946:948 -> equals
    1:1:void incBalance():888:888 -> f
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry left():767:767 -> g
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry next():902:904 -> h
    1:1:int hashCode():953:953 -> hashCode
    1:1:boolean pred():786:786 -> i
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry prev():915:917 -> j
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry right():777:777 -> k
    1:1:boolean succ():795:795 -> l
    1:2:java.lang.Object setValue(java.lang.Object):923:924 -> setValue
    1:1:java.lang.String toString():958:958 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$EntryIterator -> com.android.tools.r8.u.a.a.a.f.K$a:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1131:1131 -> <init>
    1:1:void add(java.lang.Object):1130:1130 -> add
    2:2:void add(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1155:1155 -> add
    2:2:void add(java.lang.Object):1130 -> add
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry next():1140:1140 -> next
    1:1:java.lang.Object next():1130 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry previous():1145:1145 -> previous
    1:1:java.lang.Object previous():1130 -> previous
    1:1:void set(java.lang.Object):1130:1130 -> set
    2:2:void set(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1150:1150 -> set
    2:2:void set(java.lang.Object):1130 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$KeyIterator -> com.android.tools.r8.u.a.a.a.f.K$b:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1253:1253 -> <init>
    1:1:void add(java.lang.Object):1252:1252 -> add
    2:2:void add(java.lang.Integer):1301:1301 -> add
    2:2:void add(java.lang.Object):1252 -> add
    1:1:int previousInt():1267:1267 -> d
    1:1:java.lang.Integer next():1283:1283 -> next
    1:1:java.lang.Object next():1252 -> next
    1:1:int nextInt():1262:1262 -> nextInt
    1:1:java.lang.Integer previous():1289:1289 -> previous
    1:1:java.lang.Object previous():1252 -> previous
    1:1:void set(java.lang.Object):1252:1252 -> set
    2:2:void set(java.lang.Integer):1295:1295 -> set
    2:2:void set(java.lang.Object):1252 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$KeySet -> com.android.tools.r8.u.a.a.a.f.K$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap this$0 -> b
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1308:1308 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$1):1308:1308 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1308:1308 -> iterator
    2:2:java.util.Iterator iterator():1308:1308 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1311:1311 -> iterator
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap -> com.android.tools.r8.u.a.a.a.f.K$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap this$0 -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entries -> f
    boolean top -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keys -> g
    int from -> b
    int to -> c
    boolean bottom -> d
    1:7:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap,int,boolean,int,boolean):1466:1472 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():1435:1435 -> a
    2:82:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet():1497:1577 -> a
    83:83:boolean containsKey(int):1624:1624 -> a
    84:84:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.containsKey(int):980:980 -> a
    84:84:boolean containsKey(int):1624 -> a
    85:88:java.lang.Object put(int,java.lang.Object):1648:1651 -> a
    1:1:boolean in(int):1492:1492 -> b
    2:2:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> b
    2:2:boolean in(int):1492 -> b
    3:3:boolean in(int):1492:1492 -> b
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> b
    4:4:boolean in(int):1492 -> b
    5:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1698:1699 -> b
    7:7:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> b
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1699 -> b
    8:8:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1699:1699 -> b
    9:9:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> b
    9:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1699 -> b
    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1700:1700 -> b
    11:11:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> b
    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1700 -> b
    12:12:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1700:1700 -> b
    13:13:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> b
    13:13:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1700 -> b
    14:15:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1701:1702 -> b
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):1692:1693 -> c
    3:3:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> c
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):1693 -> c
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):1693:1693 -> c
    5:5:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> c
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):1693 -> c
    1:4:void clear():1477:1480 -> clear
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator comparator():1681:1681 -> comparator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator comparator():1681:1681 -> comparator
    2:2:java.util.Comparator comparator():1435 -> comparator
    1:4:boolean containsValue(java.lang.Object):1629:1632 -> containsValue
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):1686:1687 -> d
    3:3:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> d
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):1687 -> d
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):1687:1687 -> d
    5:5:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> d
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):1687 -> d
    6:8:int firstIntKey():1753:1755 -> d
    9:9:int firstIntKey():1754:1754 -> d
    1:1:java.lang.Object get(int):1643:1643 -> get
    1:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry():1712:1720 -> h
    10:10:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> h
    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry():1720 -> h
    11:15:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry():1720:1724 -> h
    16:16:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> h
    16:16:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry():1724 -> h
    17:17:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> h
    17:17:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry():1720 -> h
    1:3:int lastIntKey():1760:1762 -> i
    4:4:int lastIntKey():1761:1761 -> i
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapIterator.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1777:1777 -> isEmpty
    1:1:boolean isEmpty():1676 -> isEmpty
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$TreeIterator.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1043:1043 -> isEmpty
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapIterator.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1777 -> isEmpty
    2:2:boolean isEmpty():1676 -> isEmpty
    3:3:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapIterator.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1778:1778 -> isEmpty
    3:3:boolean isEmpty():1676 -> isEmpty
    1:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry():1735:1743 -> j
    10:10:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> j
    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry():1743 -> j
    11:15:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry():1743:1747 -> j
    16:16:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> j
    16:16:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry():1747 -> j
    17:17:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> j
    17:17:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry():1743 -> j
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():1435:1435 -> keySet
    2:2:java.util.Set keySet():1435:1435 -> keySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():1592:1593 -> keySet
    1:4:java.lang.Object remove(int):1657:1660 -> remove
    1:5:int size():1665:1669 -> size
    1:1:java.util.Collection values():1435:1435 -> values
    2:22:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():1598:1618 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$1 -> com.android.tools.r8.u.a.a.a.f.L:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap this$1 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1497:1497 -> <init>
    1:1:void clear():1549:1549 -> clear
    1:1:java.util.Comparator comparator():1510:1510 -> comparator
    1:5:boolean contains(java.lang.Object):1516:1520 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry first():1554:1554 -> first
    1:1:java.lang.Object first():1497 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):1497:1497 -> headSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1569:1569 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):1497 -> headSet
    1:1:boolean isEmpty():1544:1544 -> isEmpty
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapIterator.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1777:1777 -> isEmpty
    2:2:boolean isEmpty():1544 -> isEmpty
    3:3:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$TreeIterator.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1043:1043 -> isEmpty
    3:3:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapIterator.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1777 -> isEmpty
    3:3:boolean isEmpty():1544 -> isEmpty
    4:4:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapIterator.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1778:1778 -> isEmpty
    4:4:boolean isEmpty():1544 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1497:1497 -> iterator
    2:2:java.util.Iterator iterator():1497:1497 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1500:1500 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry last():1559:1559 -> last
    1:1:java.lang.Object last():1497 -> last
    1:5:boolean remove(java.lang.Object):1526:1530 -> remove
    1:1:int size():1537:1537 -> size
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapEntryIterator.next():1817:1817 -> size
    2:2:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapEntryIterator.next():1807 -> size
    2:2:int size():1537 -> size
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1497:1497 -> subSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1564:1564 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1497 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1497:1497 -> tailSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1574:1574 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):1497 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$2 -> com.android.tools.r8.u.a.a.a.f.M:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap this$1 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1598:1598 -> <init>
    1:1:void clear():1615:1615 -> clear
    1:1:boolean contains(java.lang.Object):1605:1605 -> contains
    1:1:java.util.Iterator iterator():1598:1598 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1600:1600 -> iterator
    1:1:int size():1610:1610 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$KeySet -> com.android.tools.r8.u.a.a.a.f.K$d$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap this$1 -> b
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1580:1580 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$1):1580:1580 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1580:1580 -> iterator
    2:2:java.util.Iterator iterator():1580:1580 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1582:1582 -> iterator
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapEntryIterator -> com.android.tools.r8.u.a.a.a.f.K$d$b:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1808:1808 -> <init>
    1:1:void add(java.lang.Object):1807:1807 -> add
    2:2:void add(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1832:1832 -> add
    2:2:void add(java.lang.Object):1807 -> add
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry next():1817:1817 -> next
    1:1:java.lang.Object next():1807 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry previous():1822:1822 -> previous
    1:1:java.lang.Object previous():1807 -> previous
    1:1:void set(java.lang.Object):1807:1807 -> set
    2:2:void set(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1827:1827 -> set
    2:2:void set(java.lang.Object):1807 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapIterator -> com.android.tools.r8.u.a.a.a.f.K$d$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap this$1 -> f
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1777:1778 -> <init>
    1:2:void updateNext():1802:1803 -> i
    3:3:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> i
    3:3:void updateNext():1803 -> i
    4:4:void updateNext():1803:1803 -> i
    5:5:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> i
    5:5:void updateNext():1803 -> i
    1:2:void updatePrevious():1797:1798 -> j
    3:3:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> j
    3:3:void updatePrevious():1798 -> j
    4:4:void updatePrevious():1798:1798 -> j
    5:5:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.compare(int,int):232:232 -> j
    5:5:void updatePrevious():1798 -> j
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapKeyIterator -> com.android.tools.r8.u.a.a.a.f.K$d$d:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1848:1848 -> <init>
    1:1:void add(java.lang.Object):1846:1846 -> add
    2:2:void add(java.lang.Integer):1896:1896 -> add
    2:2:void add(java.lang.Object):1846 -> add
    1:1:int previousInt():1862:1862 -> d
    1:1:java.lang.Integer next():1878:1878 -> next
    1:1:java.lang.Object next():1846 -> next
    1:1:int nextInt():1857:1857 -> nextInt
    1:1:java.lang.Integer previous():1884:1884 -> previous
    1:1:java.lang.Object previous():1846 -> previous
    1:1:void set(java.lang.Object):1846:1846 -> set
    2:2:void set(java.lang.Integer):1890:1890 -> set
    2:2:void set(java.lang.Object):1846 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapValueIterator -> com.android.tools.r8.u.a.a.a.f.K$d$e:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1910:1910 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$1):1910:1910 -> <init>
    1:1:void add(java.lang.Object):1928:1928 -> add
    1:1:java.lang.Object next():1913:1913 -> next
    1:1:java.lang.Object previous():1918:1918 -> previous
    1:1:void set(java.lang.Object):1923:1923 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$TreeIterator -> com.android.tools.r8.u.a.a.a.f.K$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry prev -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap this$0 -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry curr -> c
    int index -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry next -> b
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1042:1042 -> <init>
    2:5:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1040:1043 -> <init>
    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry nextEntry():1068:1072 -> c
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry nextEntry():1068:1068 -> c
    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry previousEntry():1080:1084 -> h
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry previousEntry():1080:1080 -> h
    1:1:boolean hasNext():1056:1056 -> hasNext
    1:1:boolean hasPrevious():1060:1060 -> hasPrevious
    1:1:void updateNext():1064:1064 -> i
    1:1:void updatePrevious():1076:1076 -> j
    1:1:int nextIndex():1088:1088 -> nextIndex
    1:1:int previousIndex():1092:1092 -> previousIndex
    1:11:void remove():1096:1106 -> remove
    12:12:void remove():1096:1096 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$ValueIterator -> com.android.tools.r8.u.a.a.a.f.K$f:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1348:1348 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$1):1348:1348 -> <init>
    1:1:void add(java.lang.Object):1366:1366 -> add
    1:1:java.lang.Object next():1351:1351 -> next
    1:1:java.lang.Object previous():1356:1356 -> previous
    1:1:void set(java.lang.Object):1361:1361 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap -> com.android.tools.r8.u.a.a.a.f.P:
    java.lang.Object[] value -> c
    int[] key -> b
    int size -> d
    1:3:void <init>():70:72 -> <init>
    4:6:void <init>(int):81:83 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap):37:37 -> a
    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap,int):37:37 -> a
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$FastEntrySet int2ReferenceEntrySet():231:231 -> a
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():37 -> a
    4:4:boolean containsKey(int):265:265 -> a
    5:24:java.lang.Object put(int,java.lang.Object):283:302 -> a
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap):37:37 -> b
    2:4:int findKey(int):235:237 -> b
    1:1:int[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap):37:37 -> c
    1:4:void clear():257:260 -> clear
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap clone():344:349 -> clone
    1:6:java.lang.Object clone():37 -> clone
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap clone():346:346 -> clone
    7:7:java.lang.Object clone():37 -> clone
    1:2:boolean containsValue(java.lang.Object):270:271 -> containsValue
    1:1:java.lang.Object[] access$200(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap):37:37 -> d
    1:4:java.lang.Object get(int):244:247 -> get
    1:1:boolean isEmpty():277:277 -> isEmpty
    1:1:java.util.Set keySet():37:37 -> keySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():321:321 -> keySet
    1:8:java.lang.Object remove(int):308:315 -> remove
    1:1:int size():252:252 -> size
    1:1:java.util.Collection values():37:37 -> values
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():326:326 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$1 -> com.android.tools.r8.u.a.a.a.f.N:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$EntrySet -> com.android.tools.r8.u.a.a.a.f.P$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap):133:133 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$1):133:133 -> <init>
    1:5:boolean contains(java.lang.Object):203:207 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:java.util.Iterator iterator():133 -> iterator
    1:12:boolean remove(java.lang.Object):213:224 -> remove
    1:1:int size():197:197 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$EntrySet$1 -> com.android.tools.r8.u.a.a.a.f.O:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$EntrySet this$1 -> c
    int next -> b
    int curr -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$EntrySet):136:137 -> <init>
    1:1:boolean hasNext():141:141 -> hasNext
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry next():147:148 -> next
    1:2:java.lang.Object next():136 -> next
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry next():147:147 -> next
    3:3:java.lang.Object next():136 -> next
    1:6:void remove():153:158 -> remove
    7:7:void remove():153:153 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceFunction -> com.android.tools.r8.u.a.a.a.f.Q:
    boolean containsKey(int) -> a
    java.lang.Object put(int,java.lang.Object) -> a
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap -> com.android.tools.r8.u.a.a.a.f.S:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet() -> a
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry -> com.android.tools.r8.u.a.a.a.f.S$a:
    int getIntKey() -> b
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$FastEntrySet -> com.android.tools.r8.u.a.a.a.f.T:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMaps -> com.android.tools.r8.u.a.a.a.f.V:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMaps$EmptyMap EMPTY_MAP -> a
    1:1:void <clinit>():124:124 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMaps$EmptyMap -> com.android.tools.r8.u.a.a.a.f.U:
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceFunctions$EmptyFunction.<init>():41:41 -> <init>
    1:1:void <init>():46 -> <init>
    boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceFunctions$EmptyFunction.containsKey(int) -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():62:62 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():75:75 -> c
    void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceFunctions$EmptyFunction.clear() -> clear
    1:1:java.lang.Object clone():95:95 -> clone
    1:1:java.util.Set entrySet():43:43 -> entrySet
    1:2:boolean equals(java.lang.Object):110:111 -> equals
    java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceFunctions$EmptyFunction.get(int) -> get
    1:1:java.util.Set keySet():43:43 -> keySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():80:80 -> keySet
    1:1:void putAll(java.util.Map):56:56 -> putAll
    int com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceFunctions$EmptyFunction.size() -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():86:86 -> values
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():86:86 -> values
    2:2:java.util.Collection values():43 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap -> com.android.tools.r8.u.a.a.a.f.X:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$FastEntrySet entries -> j
    java.lang.Object[] value -> c
    float f -> i
    int[] key -> b
    int size -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values -> l
    boolean containsNullKey -> e
    int n -> f
    int maxFill -> g
    int mask -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keys -> k
    1:9:void <init>(int,float):91:99 -> <init>
    10:10:void <init>(int,float):93:93 -> <init>
    11:11:void <init>(int,float):92:92 -> <init>
    12:12:void <init>():119:119 -> <init>
    13:14:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,float):155:156 -> <init>
    1:1:java.lang.Object access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):49:49 -> a
    2:2:java.lang.Object access$400(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,int):49:49 -> a
    3:18:int insert(int,java.lang.Object):249:264 -> a
    3:18:java.lang.Object put(int,java.lang.Object):271 -> a
    19:21:java.lang.Object put(int,java.lang.Object):272:274 -> a
    22:31:boolean containsKey(int):344:353 -> a
    32:33:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$FastEntrySet int2ReferenceEntrySet():707:708 -> a
    32:33:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():49 -> a
    1:7:void rehash(int):907:913 -> b
    8:8:int realSize():205:205 -> b
    8:8:void rehash(int):914 -> b
    9:21:void rehash(int):915:927 -> b
    1:5:void clear():377:381 -> clear
    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap clone():945:954 -> clone
    1:10:java.lang.Object clone():49 -> clone
    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap clone():947:947 -> clone
    11:11:java.lang.Object clone():49 -> clone
    1:5:boolean containsValue(java.lang.Object):360:364 -> containsValue
    1:3:java.lang.Object removeEntry(int):219:221 -> e
    4:10:void shiftKeys(int):289:295 -> e
    4:10:java.lang.Object removeEntry(int):222 -> e
    11:11:java.lang.Object removeEntry(int):223:223 -> e
    12:17:void shiftKeys(int):298:303 -> e
    12:17:java.lang.Object removeEntry(int):222 -> e
    18:18:void shiftKeys(int):300:300 -> e
    18:18:java.lang.Object removeEntry(int):222 -> e
    1:11:java.lang.Object get(int):327:337 -> get
    1:5:java.lang.Object removeNullEntry():228:232 -> h
    1:1:int realSize():205:205 -> hashCode
    1:1:int hashCode():971 -> hashCode
    2:10:int hashCode():972:980 -> hashCode
    1:1:boolean isEmpty():391:391 -> isEmpty
    1:1:java.util.Set keySet():49:49 -> keySet
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():768:769 -> keySet
    1:1:void putAll(java.util.Map):238:238 -> putAll
    2:3:void ensureCapacity(int):209:210 -> putAll
    2:3:void putAll(java.util.Map):238 -> putAll
    4:4:int size():386:386 -> putAll
    4:4:void putAll(java.util.Map):240 -> putAll
    5:5:void putAll(java.util.Map):240:240 -> putAll
    6:7:void tryCapacity(long):214:215 -> putAll
    6:7:void putAll(java.util.Map):240 -> putAll
    8:8:void putAll(java.util.Map):243:243 -> putAll
    1:12:java.lang.Object remove(int):309:320 -> remove
    1:1:int size():386:386 -> size
    1:1:java.util.Collection values():49:49 -> values
    2:23:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():794:815 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.f.W:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):794:794 -> <init>
    1:1:void clear():812:812 -> clear
    1:1:boolean contains(java.lang.Object):807:807 -> contains
    1:1:java.util.Iterator iterator():794:794 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():797:797 -> iterator
    1:1:int size():802:802 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.f.X$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapEntry entry -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):600:600 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$1):600:600 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapEntry next():605:605 -> next
    1:1:java.lang.Object next():600 -> next
    1:2:void remove():610:611 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.f.X$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):721:722 -> <init>
    1:1:java.lang.Integer next():733:733 -> next
    1:1:java.lang.Object next():720 -> next
    1:1:int nextInt():727:727 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.f.X$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):737:737 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$1):737:737 -> <init>
    1:1:boolean contains(int):750:750 -> b
    1:1:void clear():762:762 -> clear
    1:1:java.util.Iterator iterator():737:737 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():740:740 -> iterator
    1:3:boolean remove(int):755:757 -> remove
    1:1:int size():745:745 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.f.X$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,int):430:431 -> <init>
    1:1:int getIntKey():439:439 -> b
    1:3:boolean equals(java.lang.Object):469:471 -> equals
    1:1:java.lang.Integer getKey():463:463 -> getKey
    1:1:java.lang.Object getKey():425 -> getKey
    1:1:java.lang.Object getValue():444:444 -> getValue
    1:1:int hashCode():476:476 -> hashCode
    1:2:java.lang.Object setValue(java.lang.Object):449:450 -> setValue
    1:1:java.lang.String toString():481:481 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.f.X$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):625:625 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$1):625:625 -> <init>
    1:1:void clear():701:701 -> clear
    1:16:boolean contains(java.lang.Object):637:652 -> contains
    1:1:java.util.Iterator iterator():625:625 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():627:627 -> iterator
    1:29:boolean remove(java.lang.Object):659:687 -> remove
    1:1:int size():696:696 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.f.X$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList wrapped -> e
    int last -> b
    int pos -> a
    boolean mustReturnNullKey -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> f
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):486:509 -> <init>
    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$1):486:486 -> <init>
    1:18:int nextEntry():521:538 -> c
    19:19:int nextEntry():521:521 -> c
    1:1:boolean hasNext():517:517 -> hasNext
    1:5:void remove():576:580 -> remove
    6:12:void shiftKeys(int):553:559 -> remove
    6:12:void remove():580 -> remove
    13:14:void remove():587:588 -> remove
    15:24:void shiftKeys(int):562:571 -> remove
    15:24:void remove():580 -> remove
    25:25:void shiftKeys(int):564:564 -> remove
    25:25:void remove():580 -> remove
    26:27:void remove():583:584 -> remove
    28:28:void remove():576:576 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.f.X$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):782:783 -> <init>
    1:1:java.lang.Object next():788:788 -> next
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap -> com.android.tools.r8.u.a.a.a.f.Y:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet() -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int) -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int) -> c
    int firstIntKey() -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int) -> d
    int lastIntKey() -> i
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMaps -> com.android.tools.r8.u.a.a.a.f.a0:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMaps$EmptySortedMap EMPTY_MAP -> a
    1:1:void <clinit>():185:185 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMaps$EmptySortedMap -> com.android.tools.r8.u.a.a.a.f.Z:
    1:1:void <init>():60:60 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet():71:71 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():57 -> a
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet():71:71 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):95:95 -> b
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():84:84 -> c
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():57 -> c
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):107:107 -> c
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):101:101 -> d
    2:2:int firstIntKey():112:112 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():84:84 -> entrySet
    1:1:java.util.Set entrySet():57 -> entrySet
    1:1:int firstIntKey():112:112 -> firstKey
    1:1:java.lang.Integer firstKey():165 -> firstKey
    1:1:java.lang.Object firstKey():57 -> firstKey
    1:1:java.util.SortedMap headMap(java.lang.Object):57:57 -> headMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(java.lang.Integer):129:129 -> headMap
    2:2:java.util.SortedMap headMap(java.lang.Object):57 -> headMap
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):101:101 -> headMap
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(java.lang.Integer):129 -> headMap
    3:3:java.util.SortedMap headMap(java.lang.Object):57 -> headMap
    1:1:int lastIntKey():117:117 -> i
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():89:89 -> keySet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():57 -> keySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():89:89 -> keySet
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():89:89 -> keySet
    3:3:java.util.Set keySet():57 -> keySet
    1:1:int lastIntKey():117:117 -> lastKey
    1:1:java.lang.Integer lastKey():177 -> lastKey
    1:1:java.lang.Object lastKey():57 -> lastKey
    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):57:57 -> subMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(java.lang.Integer,java.lang.Integer):153:153 -> subMap
    2:2:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):57 -> subMap
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):95:95 -> subMap
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(java.lang.Integer,java.lang.Integer):153 -> subMap
    3:3:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):57 -> subMap
    1:1:java.util.SortedMap tailMap(java.lang.Object):57:57 -> tailMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(java.lang.Integer):141:141 -> tailMap
    2:2:java.util.SortedMap tailMap(java.lang.Object):57 -> tailMap
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):107:107 -> tailMap
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(java.lang.Integer):141 -> tailMap
    3:3:java.util.SortedMap tailMap(java.lang.Object):57 -> tailMap
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList -> com.android.tools.r8.u.a.a.a.f.c0:
    int size -> b
    1:3:void <init>(int):81:83 -> <init>
    4:4:void <init>(int):82:82 -> <init>
    5:5:void <init>():90:90 -> <init>
    6:8:void <init>(int[],int,int):149:151 -> <init>
    1:2:boolean add(int):266:267 -> a
    3:3:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrays.ensureOffsetLength(int[],int,int):389:389 -> a
    3:3:void getElements(int,int[],int,int):393 -> a
    4:4:void getElements(int,int[],int,int):394:394 -> a
    5:5:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureOffsetLength(int,int,int):73:73 -> a
    5:5:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrays.ensureOffsetLength(int[],int,int):389 -> a
    5:5:void getElements(int,int[],int,int):393 -> a
    6:6:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureOffsetLength(int,int,int):72:72 -> a
    6:6:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrays.ensureOffsetLength(int[],int,int):389 -> a
    6:6:void getElements(int,int[],int,int):393 -> a
    7:7:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureOffsetLength(int,int,int):71:71 -> a
    7:7:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrays.ensureOffsetLength(int[],int,int):389 -> a
    7:7:void getElements(int,int[],int,int):393 -> a
    8:10:void removeElements(int,int):407:409 -> a
    11:12:int[] toArray(int[]):436:437 -> a
    13:21:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):443:451 -> a
    22:28:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):458:464 -> a
    1:5:void add(int,int):256:260 -> add
    1:3:boolean rem(int):304:306 -> c
    1:1:void clear():321:321 -> clear
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList clone():549:551 -> clone
    1:3:java.lang.Object clone():48 -> clone
    1:3:int set(int,int):313:315 -> d
    4:4:int set(int,int):313:313 -> d
    1:4:int removeInt(int):294:297 -> e
    5:5:int removeInt(int):294:294 -> e
    1:2:int getInt(int):274:275 -> getInt
    3:3:int getInt(int):274:274 -> getInt
    1:2:int indexOf(int):280:281 -> h
    1:2:int lastIndexOf(int):287:288 -> i
    1:1:boolean isEmpty():339:339 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):493:494 -> j
    1:1:void grow(int):250:250 -> k
    2:5:int[] com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrays.grow(int[],int,int):204:207 -> k
    2:5:void grow(int):250 -> k
    6:6:void grow(int):250:250 -> k
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):493:494 -> listIterator
    1:2:java.util.ListIterator listIterator(int):48 -> listIterator
    1:6:boolean removeAll(java.util.Collection):482:487 -> removeAll
    1:1:int size():327:327 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList$1 -> com.android.tools.r8.u.a.a.a.f.b0:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList this$0 -> d
    int last -> b
    int val$index -> c
    int pos -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList,int):494:495 -> <init>
    1:2:void add(int):524:525 -> a
    1:2:void set(int):529:530 -> b
    3:3:void set(int):529:529 -> b
    1:2:int previousInt():511:512 -> d
    3:3:int previousInt():511:511 -> d
    1:1:boolean hasNext():498:498 -> hasNext
    1:1:boolean hasPrevious():502:502 -> hasPrevious
    1:1:int nextIndex():516:516 -> nextIndex
    1:2:int nextInt():506:507 -> nextInt
    3:3:int nextInt():506:506 -> nextInt
    1:1:int previousIndex():520:520 -> previousIndex
    1:9:void remove():534:542 -> remove
    10:10:void remove():534:534 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet -> com.android.tools.r8.u.a.a.a.f.e0:
    int size -> b
    1:2:void <init>():55:56 -> <init>
    3:4:void <init>(int):65:66 -> <init>
    5:8:void <init>(int[],int):104:107 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet):29:29 -> a
    2:10:boolean add(int):164:172 -> a
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet):29:29 -> b
    2:2:boolean contains(int):143:143 -> b
    1:1:int[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet):29:29 -> c
    1:1:void clear():178:178 -> clear
    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet clone():201:205 -> clone
    1:5:java.lang.Object clone():29 -> clone
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet clone():203:203 -> clone
    6:6:java.lang.Object clone():29 -> clone
    1:2:int findKey(int):111:112 -> d
    1:1:boolean isEmpty():183:183 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():119:119 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():119:119 -> iterator
    2:2:java.util.Iterator iterator():29 -> iterator
    1:6:boolean remove(int):153:158 -> remove
    1:1:int size():148:148 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet$1 -> com.android.tools.r8.u.a.a.a.f.d0:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet this$0 -> b
    int next -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet):119:120 -> <init>
    1:1:boolean hasNext():124:124 -> hasNext
    1:2:int nextInt():129:130 -> nextInt
    3:3:int nextInt():129:129 -> nextInt
    1:2:void remove():135:136 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrays -> com.android.tools.r8.u.a.a.a.f.f0:
    int[] EMPTY_ARRAY -> a
    1:1:void <clinit>():100:100 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator -> com.android.tools.r8.u.a.a.a.f.g0:
    int previousInt() -> d
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection -> com.android.tools.r8.u.a.a.a.f.h0:
    boolean add(int) -> a
    boolean contains(int) -> b
    int[] toIntArray() -> c
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollections -> com.android.tools.r8.u.a.a.a.f.k0:
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):536:536 -> a
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollections$EmptyCollection -> com.android.tools.r8.u.a.a.a.f.i0:
    1:1:void <init>():39:39 -> <init>
    1:1:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):96:96 -> a
    1:1:boolean addAll(java.util.Collection):81:81 -> addAll
    boolean contains(int) -> b
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():38:38 -> iterator
    2:2:java.util.Iterator iterator():38:38 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():55:55 -> iterator
    1:1:boolean removeAll(java.util.Collection):86:86 -> removeAll
    1:1:boolean retainAll(java.util.Collection):91:91 -> retainAll
    1:1:java.lang.Object[] toArray():49:49 -> toArray
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollections$UnmodifiableCollection -> com.android.tools.r8.u.a.a.a.f.j0:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection collection -> a
    1:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):369:371 -> <init>
    4:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):370:370 -> <init>
    1:1:boolean add(int):376:376 -> a
    1:1:boolean add(java.lang.Object):365:365 -> add
    2:2:boolean add(java.lang.Integer):453:453 -> add
    2:2:boolean add(java.lang.Object):365 -> add
    1:1:boolean addAll(java.util.Collection):437:437 -> addAll
    1:1:boolean contains(int):396:396 -> b
    1:1:int[] toIntArray():470:470 -> c
    1:1:void clear():417:417 -> clear
    1:1:boolean contains(java.lang.Object):459:459 -> contains
    1:1:boolean containsAll(java.util.Collection):432:432 -> containsAll
    1:1:boolean equals(java.lang.Object):523:523 -> equals
    1:1:int hashCode():517:517 -> hashCode
    1:1:boolean isEmpty():391:391 -> isEmpty
    1:1:java.util.Iterator iterator():365:365 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():400:400 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators.unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator):830:830 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():400 -> iterator
    1:1:boolean remove(java.lang.Object):465:465 -> remove
    1:1:boolean removeAll(java.util.Collection):442:442 -> removeAll
    1:1:boolean retainAll(java.util.Collection):447:447 -> retainAll
    1:1:int size():386:386 -> size
    1:1:java.lang.Object[] toArray(java.lang.Object[]):422:422 -> toArray
    2:2:java.lang.Object[] toArray():427:427 -> toArray
    1:1:java.lang.String toString():512:512 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator -> com.android.tools.r8.u.a.a.a.f.l0:
    int compare(int,int) -> c
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator -> com.android.tools.r8.u.a.a.a.f.m0:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators -> com.android.tools.r8.u.a.a.a.f.q0:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators$EmptyIterator EMPTY_ITERATOR -> a
    1:1:void <clinit>():103:103 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators$EmptyIterator -> com.android.tools.r8.u.a.a.a.f.n0:
    1:1:void <init>():42:42 -> <init>
    1:1:java.lang.Object clone():87:87 -> clone
    1:1:int previousInt():62:62 -> d
    1:1:int nextInt():57:57 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators$SingletonIterator -> com.android.tools.r8.u.a.a.a.f.o0:
    int curr -> b
    int element -> a
    1:2:void <init>(int):110:111 -> <init>
    1:3:int previousInt():133:135 -> d
    4:4:int previousInt():133:133 -> d
    1:1:boolean hasNext():116:116 -> hasNext
    1:1:boolean hasPrevious():121:121 -> hasPrevious
    1:1:int nextIndex():140:140 -> nextIndex
    1:3:int nextInt():126:128 -> nextInt
    4:4:int nextInt():126:126 -> nextInt
    1:1:int previousIndex():145:145 -> previousIndex
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators$UnmodifiableIterator -> com.android.tools.r8.u.a.a.a.f.p0:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator i -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator):807:808 -> <init>
    1:1:boolean hasNext():813:813 -> hasNext
    1:1:int nextInt():818:818 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList -> com.android.tools.r8.u.a.a.a.f.r0:
    boolean add(int) -> a
    boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList) -> a
    void getElements(int,int[],int,int) -> a
    void removeElements(int,int) -> a
    int set(int,int) -> d
    int removeInt(int) -> e
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator -> com.android.tools.r8.u.a.a.a.f.s0:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists -> com.android.tools.r8.u.a.a.a.f.u0:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists$EmptyList EMPTY_LIST -> a
    1:1:void <clinit>():323:323 -> <clinit>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList singleton(int):478:478 -> a
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists$1 -> com.android.tools.r8.u.a.a.a.f.t0:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists$EmptyList -> com.android.tools.r8.u.a.a.a.f.u0$a:
    1:1:void <init>():65:65 -> <init>
    1:1:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):110:110 -> a
    2:2:boolean add(java.lang.Integer):156:156 -> a
    3:4:void getElements(int,int[],int,int):263:264 -> a
    5:5:void removeElements(int,int):269:269 -> a
    1:1:void add(int,java.lang.Object):62:62 -> add
    2:2:void add(int,java.lang.Integer):132:132 -> add
    2:2:void add(int,java.lang.Object):62 -> add
    3:3:boolean add(java.lang.Object):62:62 -> add
    4:4:boolean add(java.lang.Integer):156:156 -> add
    4:4:boolean add(java.lang.Object):62 -> add
    5:5:void add(int,int):85:85 -> add
    1:1:boolean addAll(int,java.util.Collection):105:105 -> addAll
    1:1:boolean rem(int):75:75 -> c
    1:1:java.lang.Object clone():295:295 -> clone
    1:1:int compareTo(java.lang.Object):62:62 -> compareTo
    2:2:int compareTo(java.util.List):290:290 -> compareTo
    2:2:int compareTo(java.lang.Object):62 -> compareTo
    1:1:int set(int,int):90:90 -> d
    1:1:int removeInt(int):80:80 -> e
    1:1:boolean equals(java.lang.Object):306:306 -> equals
    1:1:java.lang.Integer get(int):144:144 -> get
    1:1:java.lang.Object get(int):62 -> get
    1:1:int getInt(int):70:70 -> getInt
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():212:212 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():62 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():212:212 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():62 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():212:212 -> iterator
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():212:212 -> iterator
    4:4:java.util.Iterator iterator():62 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator():208:208 -> listIterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator():208:208 -> listIterator
    2:2:java.util.ListIterator listIterator():62 -> listIterator
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):216:217 -> listIterator
    3:4:java.util.ListIterator listIterator(int):62 -> listIterator
    1:1:java.lang.Integer remove(int):180:180 -> remove
    1:1:java.lang.Object remove(int):62 -> remove
    1:1:java.lang.Object set(int,java.lang.Object):62:62 -> set
    2:2:java.lang.Integer set(int,java.lang.Integer):168:168 -> set
    2:2:java.lang.Object set(int,java.lang.Object):62 -> set
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):246:246 -> subList
    1:1:java.util.List subList(int,int):62 -> subList
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists$Singleton -> com.android.tools.r8.u.a.a.a.f.v0:
    int element -> a
    1:1:void <init>(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists$1):332:332 -> <init>
    2:3:void <init>(int):336:337 -> <init>
    1:1:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):419:419 -> a
    2:2:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):424:424 -> a
    3:3:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):429:429 -> a
    4:4:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):434:434 -> a
    1:1:boolean addAll(int,java.util.Collection):399:399 -> addAll
    2:2:boolean addAll(java.util.Collection):404:404 -> addAll
    1:1:boolean contains(int):358:358 -> b
    2:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):390:393 -> b
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):392:392 -> b
    1:1:boolean rem(int):348:348 -> c
    2:3:int[] toIntArray():364:365 -> c
    1:1:void clear():459:459 -> clear
    1:1:int removeInt(int):353:353 -> e
    1:2:int getInt(int):342:343 -> getInt
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():376:376 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():332 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():376:376 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():376:376 -> iterator
    3:3:java.util.Iterator iterator():332 -> iterator
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):382:383 -> j
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):381:381 -> j
    1:1:java.util.ListIterator listIterator():332:332 -> listIterator
    2:2:java.util.ListIterator listIterator(int):332:332 -> listIterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator():371:371 -> listIterator
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators.singleton(int):159:159 -> listIterator
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator():371 -> listIterator
    1:1:boolean removeAll(java.util.Collection):409:409 -> removeAll
    1:1:boolean retainAll(java.util.Collection):414:414 -> retainAll
    1:1:java.util.List subList(int,int):332:332 -> subList
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet -> com.android.tools.r8.u.a.a.a.f.y0:
    float f -> g
    int size -> f
    int n -> d
    int[] key -> a
    int maxFill -> e
    int mask -> b
    boolean containsNull -> c
    1:8:void <init>(int,float):77:84 -> <init>
    9:9:void <init>(int,float):79:79 -> <init>
    10:10:void <init>(int,float):78:78 -> <init>
    11:11:void <init>():104:104 -> <init>
    1:2:void tryCapacity(long):271:272 -> a
    3:3:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):277:277 -> a
    4:5:void ensureCapacity(int):266:267 -> a
    4:5:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):277 -> a
    6:6:int size():412:412 -> a
    6:6:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):280 -> a
    7:10:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):280:283 -> a
    11:24:boolean add(int):302:315 -> a
    1:1:boolean addAll(java.util.Collection):289:289 -> addAll
    2:3:void ensureCapacity(int):266:267 -> addAll
    2:3:boolean addAll(java.util.Collection):289 -> addAll
    4:4:int size():412:412 -> addAll
    4:4:boolean addAll(java.util.Collection):292 -> addAll
    5:8:boolean addAll(java.util.Collection):292:295 -> addAll
    1:9:boolean contains(int):382:390 -> b
    1:4:void clear():404:407 -> clear
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet clone():672:677 -> clone
    1:6:java.lang.Object clone():40 -> clone
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet clone():674:674 -> clone
    7:7:java.lang.Object clone():40 -> clone
    1:5:void rehash(int):639:643 -> d
    6:6:int realSize():262:262 -> d
    6:6:void rehash(int):644 -> d
    7:16:void rehash(int):645:654 -> d
    1:1:boolean removeEntry(int):348:348 -> g
    2:7:void shiftKeys(int):331:336 -> g
    2:7:boolean removeEntry(int):349 -> g
    8:8:boolean removeEntry(int):350:350 -> g
    9:13:void shiftKeys(int):339:343 -> g
    9:13:boolean removeEntry(int):349 -> g
    14:14:void shiftKeys(int):341:341 -> g
    14:14:boolean removeEntry(int):349 -> g
    1:1:int realSize():262:262 -> hashCode
    1:1:int hashCode():694 -> hashCode
    2:4:int hashCode():695:697 -> hashCode
    1:1:boolean isEmpty():417:417 -> isEmpty
    1:1:java.util.Iterator iterator():40:40 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():547:547 -> iterator
    1:1:boolean remove(int):365:365 -> remove
    2:5:boolean removeNullEntry():355:358 -> remove
    2:5:boolean remove(int):365 -> remove
    6:13:boolean remove(int):369:376 -> remove
    1:1:int size():412:412 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet$1 -> com.android.tools.r8.u.a.a.a.f.w0:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet$SetIterator -> com.android.tools.r8.u.a.a.a.f.x0:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList wrapped -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet this$0 -> f
    int last -> b
    int pos -> a
    boolean mustReturnNull -> d
    1:21:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet):446:466 -> <init>
    22:22:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet$1):446:446 -> <init>
    1:1:boolean hasNext():474:474 -> hasNext
    1:15:int nextInt():478:492 -> nextInt
    16:16:int nextInt():478:478 -> nextInt
    1:5:void remove():528:532 -> remove
    6:11:void shiftKeys(int):507:512 -> remove
    6:11:void remove():532 -> remove
    12:13:void remove():539:540 -> remove
    14:22:void shiftKeys(int):515:523 -> remove
    14:22:void remove():532 -> remove
    23:23:void shiftKeys(int):517:517 -> remove
    23:23:void remove():532 -> remove
    24:25:void remove():535:536 -> remove
    26:26:void remove():528:528 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet -> com.android.tools.r8.u.a.a.a.f.z0:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSets -> com.android.tools.r8.u.a.a.a.f.B0:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSets$EmptySet EMPTY_SET -> a
    1:1:void <clinit>():76:76 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSets$EmptySet -> com.android.tools.r8.u.a.a.a.f.A0:
    1:1:void <init>():42:42 -> <init>
    1:1:boolean rem(int):64:64 -> c
    1:1:java.lang.Object clone():52:52 -> clone
    1:1:boolean equals(java.lang.Object):58:58 -> equals
    1:1:boolean remove(int):47:47 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet -> com.android.tools.r8.u.a.a.a.f.C0:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSets -> com.android.tools.r8.u.a.a.a.f.E0:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSets$EmptySet EMPTY_SET -> a
    1:1:void <clinit>():168:168 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSets$EmptySet -> com.android.tools.r8.u.a.a.a.f.D0:
    1:1:void <init>():42:42 -> <init>
    1:1:java.lang.Object clone():155:155 -> clone
    1:1:java.lang.Integer first():139:139 -> first
    1:1:java.lang.Object first():39 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):39:39 -> headSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(java.lang.Integer):117:117 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):39 -> headSet
    1:1:java.lang.Integer last():150:150 -> last
    1:1:java.lang.Object last():39 -> last
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):39:39 -> subSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(java.lang.Integer,java.lang.Integer):106:106 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):39 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):39:39 -> tailSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(java.lang.Integer):128:128 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):39 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntStack -> com.android.tools.r8.u.a.a.a.f.F0:
com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceMap -> com.android.tools.r8.u.a.a.a.g.a:
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.<init>():44:44 -> <init>
    1:1:void <init>():45 -> <init>
    java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(long,java.lang.Object) -> a
    java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.remove(long) -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():273:273 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap$FastEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap.long2ReferenceEntrySet():707:708 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap.long2ReferenceEntrySet():49 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():273 -> c
    1:1:boolean com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.containsKey(java.lang.Object):105:105 -> containsKey
    1:1:boolean com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.containsKey(java.lang.Object):0 -> containsKey
    1:1:java.util.Set entrySet():42:42 -> entrySet
    1:3:boolean equals(java.lang.Object):296:298 -> equals
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap.size():386:386 -> equals
    4:4:boolean equals(java.lang.Object):298 -> equals
    5:5:boolean equals(java.lang.Object):299:299 -> equals
    1:2:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.get(java.lang.Object):120:121 -> get
    1:2:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.get(java.lang.Object):0 -> get
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Object,java.lang.Object):41:41 -> put
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Object,java.lang.Object):0 -> put
    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Long,java.lang.Object):135:137 -> put
    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Long,java.lang.Object):0 -> put
    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Object,java.lang.Object):41 -> put
    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Object,java.lang.Object):0 -> put
    1:7:void putAll(java.util.Map):70:76 -> putAll
    8:8:long com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$MapEntry.getLongKey():439:439 -> putAll
    8:8:void putAll(java.util.Map):76 -> putAll
    9:15:void putAll(java.util.Map):76:82 -> putAll
    16:18:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Long,java.lang.Object):135:137 -> putAll
    16:18:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.put(java.lang.Long,java.lang.Object):0 -> putAll
    16:18:void putAll(java.util.Map):82 -> putAll
    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.remove(java.lang.Object):153:155 -> remove
    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLong2ReferenceFunction.remove(java.lang.Object):0 -> remove
    1:3:java.lang.String toString():304:306 -> toString
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap.size():386:386 -> toString
    4:4:java.lang.String toString():306 -> toString
    5:10:java.lang.String toString():309:314 -> toString
    11:11:long com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$MapEntry.getLongKey():439:439 -> toString
    11:11:java.lang.String toString():314 -> toString
    12:18:java.lang.String toString():314:320 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongBidirectionalIterator -> com.android.tools.r8.u.a.a.a.g.b:
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongIterator.<init>():34:34 -> <init>
    1:1:void <init>():34 -> <init>
    long previousLong() -> a
    1:1:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongIterator.next():57:57 -> next
    1:1:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongIterator.next():0 -> next
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongIterator.next():33 -> next
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongIterator.next():0 -> next
    long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongIterator.nextLong() -> nextLong
    1:1:java.lang.Long previous():56:56 -> previous
    1:1:java.lang.Object previous():33 -> previous
com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongCollection -> com.android.tools.r8.u.a.a.a.g.c:
    1:1:void <init>():37:37 -> <init>
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator iterator() -> a
    1:1:boolean add(long):68:68 -> a
    1:1:boolean add(java.lang.Object):36:36 -> add
    2:2:boolean add(java.lang.Long):114:114 -> add
    2:2:boolean add(java.lang.Object):36 -> add
    boolean contains(long) -> b
    1:4:boolean rem(long):94:97 -> c
    1:1:boolean contains(java.lang.Object):129:129 -> contains
    1:1:boolean remove(java.lang.Object):143:143 -> remove
    1:14:java.lang.String toString():206:219 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList -> com.android.tools.r8.u.a.a.a.g.f:
    1:1:void <init>():33:33 -> <init>
    void add(int,long) -> a
    void removeElements(int,int) -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator iterator():180 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator iterator():32 -> a
    1:1:void add(int,java.lang.Object):32:32 -> add
    2:2:void add(int,java.lang.Long):577:577 -> add
    2:2:void add(int,java.lang.Object):32 -> add
    1:5:boolean addAll(int,java.util.Collection):120:124 -> addAll
    6:6:void add(int,java.lang.Long):577:577 -> addAll
    6:6:boolean addAll(int,java.util.Collection):124 -> addAll
    7:7:boolean addAll(java.util.Collection):137:137 -> addAll
    long set(int,long) -> b
    1:1:boolean contains(long):274:274 -> b
    2:5:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList subList(int,int):310:313 -> b
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList subList(int,int):312:312 -> b
    7:7:int compareTo(java.util.List):464:464 -> b
    8:8:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> b
    8:8:int compareTo(java.util.List):465 -> b
    9:9:int compareTo(java.util.List):466:466 -> b
    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> b
    10:10:int compareTo(java.util.List):466 -> b
    11:16:int compareTo(java.util.List):469:474 -> b
    17:17:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> b
    17:17:int compareTo(java.util.List):476 -> b
    18:23:int compareTo(java.util.List):476:481 -> b
    1:1:void ensureIndex(int):47:47 -> c
    2:2:void ensureIndex(int):46:46 -> c
    1:1:void clear():403:403 -> clear
    1:1:int compareTo(java.lang.Object):32:32 -> compareTo
    1:1:void ensureRestrictedIndex(int):62:62 -> d
    2:2:void ensureRestrictedIndex(int):61:61 -> d
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> d
    3:3:int indexOf(long):279 -> d
    4:6:int indexOf(long):281:283 -> d
    1:5:int lastIndexOf(long):290:294 -> e
    1:5:boolean equals(java.lang.Object):430:434 -> equals
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> equals
    6:6:boolean equals(java.lang.Object):435 -> equals
    7:7:boolean equals(java.lang.Object):436:436 -> equals
    8:8:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> equals
    8:8:boolean equals(java.lang.Object):436 -> equals
    9:9:boolean equals(java.lang.Object):438:438 -> equals
    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> equals
    10:10:boolean equals(java.lang.Object):441 -> equals
    11:13:boolean equals(java.lang.Object):441:443 -> equals
    14:14:boolean valEquals(java.lang.Object,java.lang.Object):407:407 -> equals
    14:14:boolean equals(java.lang.Object):443 -> equals
    long removeLong(int) -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator(int) -> g
    1:1:java.lang.Long get(int):605:605 -> get
    1:1:java.lang.Object get(int):32 -> get
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> hashCode
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator iterator():180 -> hashCode
    1:1:int hashCode():418 -> hashCode
    2:5:int hashCode():419:422 -> hashCode
    1:1:int indexOf(java.lang.Object):619:619 -> indexOf
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator iterator():180 -> iterator
    1:1:java.util.Iterator iterator():32 -> iterator
    1:1:int lastIndexOf(java.lang.Object):633:633 -> lastIndexOf
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> listIterator
    1:1:java.util.ListIterator listIterator():32 -> listIterator
    1:1:java.lang.Long remove(int):647:647 -> remove
    1:1:java.lang.Object remove(int):32 -> remove
    1:1:java.lang.Object set(int,java.lang.Object):32:32 -> set
    2:2:java.lang.Long set(int,java.lang.Long):591:591 -> set
    2:2:java.lang.Object set(int,java.lang.Object):32 -> set
    1:1:java.util.List subList(int,int):32:32 -> subList
    1:1:java.lang.String toString():708:708 -> toString
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator():192:192 -> toString
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator iterator():180 -> toString
    2:2:java.lang.String toString():709 -> toString
    3:14:java.lang.String toString():710:721 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList$LongSubList -> com.android.tools.r8.u.a.a.a.g.e:
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList l -> a
    int from -> b
    int to -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():725:725 -> <clinit>
    1:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList,int,int):734:737 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.listIterator():192:192 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.iterator():180 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator iterator():725 -> a
    2:2:boolean access$000(com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList$LongSubList):725:725 -> a
    3:5:boolean add(long):749:751 -> a
    6:9:void add(int,long):757:760 -> a
    10:14:void removeElements(int,int):803:807 -> a
    1:1:void add(int,java.lang.Object):725:725 -> add
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.add(int,java.lang.Long):577:577 -> add
    2:2:void add(int,java.lang.Object):725 -> add
    1:3:boolean addAll(int,java.util.Collection):765:767 -> addAll
    1:3:boolean assertRange():741:743 -> b
    4:5:long set(int,long):785:786 -> b
    6:9:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList subList(int,int):879:882 -> b
    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList subList(int,int):881:881 -> b
    1:5:boolean rem(long):887:891 -> c
    1:1:int compareTo(java.lang.Object):725:725 -> compareTo
    1:3:long removeLong(int):778:780 -> f
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator(int):820:821 -> g
    1:2:long getLong(int):772:773 -> get
    1:2:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.get(int):605 -> get
    1:2:java.lang.Object get(int):725 -> get
    3:3:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.get(int):605:605 -> get
    3:3:java.lang.Object get(int):725 -> get
    1:2:long getLong(int):772:773 -> getLong
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.listIterator():192:192 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.iterator():180 -> iterator
    1:1:java.util.Iterator iterator():725 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.listIterator():192:192 -> listIterator
    1:1:java.util.ListIterator listIterator():725 -> listIterator
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator(int):820:821 -> listIterator
    2:3:java.util.ListIterator listIterator(int):725 -> listIterator
    1:1:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.remove(int):647:647 -> remove
    1:1:java.lang.Object remove(int):725 -> remove
    1:1:java.lang.Object set(int,java.lang.Object):725:725 -> set
    2:2:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.set(int,java.lang.Long):591:591 -> set
    2:2:java.lang.Object set(int,java.lang.Object):725 -> set
    3:4:long set(int,long):785:786 -> set
    3:4:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.set(int,java.lang.Long):591 -> set
    3:4:java.lang.Object set(int,java.lang.Object):725 -> set
    5:5:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList.set(int,java.lang.Long):591:591 -> set
    5:5:java.lang.Object set(int,java.lang.Object):725 -> set
    1:1:int size():791:791 -> size
    1:1:java.util.List subList(int,int):725:725 -> subList
com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList$LongSubList$1 -> com.android.tools.r8.u.a.a.a.g.d:
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList$LongSubList this$0 -> d
    boolean $assertionsDisabled -> e
    int last -> b
    int val$index -> c
    int pos -> a
    1:1:void <clinit>():821:821 -> <clinit>
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongList$LongSubList,int):821:822 -> <init>
    1:2:long previousLong():838:839 -> a
    3:3:long previousLong():838:838 -> a
    4:7:void add(long):851:854 -> a
    8:8:void add(long):851:851 -> a
    1:2:void set(long):858:859 -> b
    3:3:void set(long):858:858 -> b
    1:1:boolean hasNext():825:825 -> hasNext
    1:1:boolean hasPrevious():829:829 -> hasPrevious
    1:1:int nextIndex():843:843 -> nextIndex
    1:2:long nextLong():833:834 -> nextLong
    3:3:long nextLong():833:833 -> nextLong
    1:1:int previousIndex():847:847 -> previousIndex
    1:10:void remove():863:872 -> remove
    11:11:void remove():863:863 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongListIterator -> com.android.tools.r8.u.a.a.a.g.g:
    1:1:void <init>():35:35 -> <init>
    void add(long) -> a
    1:1:void add(java.lang.Object):34:34 -> add
    2:2:void add(java.lang.Long):83:83 -> add
    2:2:void add(java.lang.Object):34 -> add
    void set(long) -> b
    1:1:void set(java.lang.Object):34:34 -> set
    2:2:void set(java.lang.Long):70:70 -> set
    2:2:void set(java.lang.Object):34 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.longs.AbstractLongSet -> com.android.tools.r8.u.a.a.a.g.h:
    1:1:void <init>():32:32 -> <init>
    1:1:boolean rem(long):87:87 -> c
    2:4:boolean com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$KeySet.remove(long):755:757 -> c
    2:4:boolean rem(long):87 -> c
    1:4:boolean equals(java.lang.Object):41:44 -> equals
    1:7:int hashCode():57:63 -> hashCode
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap -> com.android.tools.r8.u.a.a.a.g.k:
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap$Entry -> com.android.tools.r8.u.a.a.a.g.i:
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap$FastEntrySet -> com.android.tools.r8.u.a.a.a.g.j:
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap -> com.android.tools.r8.u.a.a.a.g.m:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values -> k
    java.lang.Object[] value -> b
    float f -> h
    long[] key -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceMap$FastEntrySet entries -> i
    int maxFill -> f
    int size -> g
    int n -> e
    int mask -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongSet keys -> j
    boolean containsNullKey -> d
    1:9:void <init>(int,float):91:99 -> <init>
    10:10:void <init>(int,float):93:93 -> <init>
    11:11:void <init>(int,float):92:92 -> <init>
    1:1:java.lang.Object access$300(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap):49:49 -> a
    2:2:java.lang.Object access$400(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap,int):49:49 -> a
    3:18:int insert(long,java.lang.Object):249:264 -> a
    3:18:java.lang.Object put(long,java.lang.Object):271 -> a
    19:20:java.lang.Object put(long,java.lang.Object):273:274 -> a
    21:32:java.lang.Object remove(long):309:320 -> a
    1:10:boolean containsKey(long):344:353 -> b
    11:17:void rehash(int):907:913 -> b
    18:18:int realSize():205:205 -> b
    18:18:void rehash(int):914 -> b
    19:31:void rehash(int):915:927 -> b
    1:11:java.lang.Object get(long):327:337 -> c
    1:5:void clear():377:381 -> clear
    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap clone():945:954 -> clone
    1:10:java.lang.Object clone():49 -> clone
    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap clone():947:947 -> clone
    11:11:java.lang.Object clone():49 -> clone
    1:5:boolean containsValue(java.lang.Object):360:364 -> containsValue
    1:3:java.lang.Object removeEntry(int):219:221 -> e
    4:10:void shiftKeys(int):289:295 -> e
    4:10:java.lang.Object removeEntry(int):222 -> e
    11:11:java.lang.Object removeEntry(int):223:223 -> e
    12:17:void shiftKeys(int):298:303 -> e
    12:17:java.lang.Object removeEntry(int):222 -> e
    18:18:void shiftKeys(int):300:300 -> e
    18:18:java.lang.Object removeEntry(int):222 -> e
    1:5:java.lang.Object removeNullEntry():228:232 -> h
    1:1:int realSize():205:205 -> hashCode
    1:1:int hashCode():971 -> hashCode
    2:10:int hashCode():972:980 -> hashCode
    1:1:boolean isEmpty():391:391 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongSet keySet():768:769 -> keySet
    1:2:java.util.Set keySet():49 -> keySet
    1:1:void putAll(java.util.Map):238:238 -> putAll
    2:3:void ensureCapacity(int):209:210 -> putAll
    2:3:void putAll(java.util.Map):238 -> putAll
    4:4:int size():386:386 -> putAll
    4:4:void putAll(java.util.Map):240 -> putAll
    5:5:void putAll(java.util.Map):240:240 -> putAll
    6:7:void tryCapacity(long):214:215 -> putAll
    6:7:void putAll(java.util.Map):240 -> putAll
    8:8:void putAll(java.util.Map):243:243 -> putAll
    1:1:int size():386:386 -> size
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():794:815 -> values
    1:22:java.util.Collection values():49 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.g.l:
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap):794:794 -> <init>
    1:1:void clear():812:812 -> clear
    1:1:boolean contains(java.lang.Object):807:807 -> contains
    1:1:java.util.Iterator iterator():794:794 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():797:797 -> iterator
    1:1:int size():802:802 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.g.m$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$MapEntry entry -> g
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap this$0 -> h
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap):600:600 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$1):600:600 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$MapEntry next():605:605 -> next
    1:1:java.lang.Object next():600 -> next
    1:2:void remove():610:611 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.g.m$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap):721:722 -> <init>
    1:1:java.lang.Long next():733:733 -> next
    1:1:java.lang.Object next():720 -> next
    1:1:long nextLong():727:727 -> nextLong
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.g.m$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap):737:737 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$1):737:737 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator iterator():740:740 -> a
    1:1:boolean contains(long):750:750 -> b
    1:1:void clear():762:762 -> clear
    1:1:java.util.Iterator iterator():737:737 -> iterator
    1:1:int size():745:745 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.g.m$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap,int):430:431 -> <init>
    1:3:boolean equals(java.lang.Object):469:471 -> equals
    1:1:java.lang.Long getKey():463:463 -> getKey
    1:1:java.lang.Object getKey():425 -> getKey
    1:1:java.lang.Object getValue():444:444 -> getValue
    1:1:int hashCode():476:476 -> hashCode
    1:2:java.lang.Object setValue(java.lang.Object):449:450 -> setValue
    1:1:java.lang.String toString():481:481 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.g.m$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap):625:625 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$1):625:625 -> <init>
    1:1:void clear():701:701 -> clear
    1:16:boolean contains(java.lang.Object):637:652 -> contains
    1:1:java.util.Iterator iterator():625:625 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():627:627 -> iterator
    1:29:boolean remove(java.lang.Object):659:687 -> remove
    1:1:int size():696:696 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.g.m$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap this$0 -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongArrayList wrapped -> e
    int last -> b
    int pos -> a
    boolean mustReturnNullKey -> d
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap):486:509 -> <init>
    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$1):486:486 -> <init>
    1:18:int nextEntry():521:538 -> c
    19:19:int nextEntry():521:521 -> c
    1:1:boolean hasNext():517:517 -> hasNext
    1:5:void remove():576:580 -> remove
    6:12:void shiftKeys(int):553:559 -> remove
    6:12:void remove():580 -> remove
    13:14:void remove():587:588 -> remove
    15:24:void shiftKeys(int):562:571 -> remove
    15:24:void remove():580 -> remove
    25:25:void shiftKeys(int):564:564 -> remove
    25:25:void remove():580 -> remove
    26:27:void remove():583:584 -> remove
    28:28:void remove():576:576 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.g.m$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.Long2ReferenceOpenHashMap):782:783 -> <init>
    1:1:java.lang.Object next():788:788 -> next
com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongArrayList -> com.android.tools.r8.u.a.a.a.g.o:
    int size -> b
    1:3:void <init>(int):81:83 -> <init>
    4:4:void <init>(int):82:82 -> <init>
    1:5:void add(int,long):256:260 -> a
    6:7:boolean add(long):266:267 -> a
    8:10:void removeElements(int,int):407:409 -> a
    1:3:long set(int,long):313:315 -> b
    4:4:long set(int,long):313:313 -> b
    1:3:boolean rem(long):304:306 -> c
    1:1:void clear():321:321 -> clear
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongArrayList clone():549:551 -> clone
    1:3:java.lang.Object clone():48 -> clone
    1:2:int indexOf(long):280:281 -> d
    1:2:int lastIndexOf(long):287:288 -> e
    1:4:long removeLong(int):294:297 -> f
    5:5:long removeLong(int):294:294 -> f
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator(int):493:494 -> g
    1:2:long getLong(int):274:275 -> getLong
    3:3:long getLong(int):274:274 -> getLong
    1:1:void grow(int):250:250 -> h
    2:5:long[] com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongArrays.grow(long[],int,int):205:208 -> h
    2:5:void grow(int):250 -> h
    6:6:void grow(int):250:250 -> h
    1:1:boolean isEmpty():339:339 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongListIterator listIterator(int):493:494 -> listIterator
    1:2:java.util.ListIterator listIterator(int):48 -> listIterator
    1:6:boolean removeAll(java.util.Collection):482:487 -> removeAll
    1:1:int size():327:327 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongArrayList$1 -> com.android.tools.r8.u.a.a.a.g.n:
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongArrayList this$0 -> d
    int last -> b
    int val$index -> c
    int pos -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongArrayList,int):494:495 -> <init>
    1:2:long previousLong():511:512 -> a
    3:3:long previousLong():511:511 -> a
    4:5:void add(long):524:525 -> a
    1:2:void set(long):529:530 -> b
    3:3:void set(long):529:529 -> b
    1:1:boolean hasNext():498:498 -> hasNext
    1:1:boolean hasPrevious():502:502 -> hasPrevious
    1:1:int nextIndex():516:516 -> nextIndex
    1:2:long nextLong():506:507 -> nextLong
    3:3:long nextLong():506:506 -> nextLong
    1:1:int previousIndex():520:520 -> previousIndex
    1:9:void remove():534:542 -> remove
    10:10:void remove():534:534 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongBidirectionalIterator -> com.android.tools.r8.u.a.a.a.g.p:
    long previousLong() -> a
com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongCollection -> com.android.tools.r8.u.a.a.a.g.q:
com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator -> com.android.tools.r8.u.a.a.a.g.r:
com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongList -> com.android.tools.r8.u.a.a.a.g.s:
    void add(int,long) -> a
    void removeElements(int,int) -> a
    long set(int,long) -> b
    long removeLong(int) -> f
com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongSet -> com.android.tools.r8.u.a.a.a.g.t:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanMap -> com.android.tools.r8.u.a.a.a.h.b:
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.<init>():44:44 -> <init>
    1:1:void <init>():45 -> <init>
    boolean containsValue(boolean) -> a
    boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,boolean) -> a
    boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.removeBoolean(java.lang.Object) -> b
    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> entrySet
    1:1:java.util.Set entrySet():42 -> entrySet
    1:3:boolean equals(java.lang.Object):320:322 -> equals
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> equals
    4:4:boolean equals(java.lang.Object):323 -> equals
    5:5:boolean equals(java.lang.Object):323:323 -> equals
    1:1:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.get(java.lang.Object):108:108 -> get
    1:1:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.get(java.lang.Object):0 -> get
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.get(java.lang.Object):41 -> get
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.get(java.lang.Object):0 -> get
    1:1:int hashCode():310:310 -> hashCode
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> hashCode
    2:2:int hashCode():311 -> hashCode
    3:3:int hashCode():311:311 -> hashCode
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet.iterator():136:136 -> hashCode
    4:4:int hashCode():311 -> hashCode
    5:5:int hashCode():313:313 -> hashCode
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,java.lang.Object):41:41 -> put
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,java.lang.Object):0 -> put
    2:4:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,java.lang.Boolean):123:125 -> put
    2:4:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,java.lang.Boolean):0 -> put
    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,java.lang.Object):41 -> put
    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,java.lang.Object):0 -> put
    1:7:void putAll(java.util.Map):82:88 -> putAll
    8:8:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanMap$BasicEntry.getBooleanValue():145:145 -> putAll
    8:8:void putAll(java.util.Map):88 -> putAll
    9:15:void putAll(java.util.Map):88:94 -> putAll
    16:17:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,java.lang.Boolean):123:124 -> putAll
    16:17:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.put(java.lang.Object,java.lang.Boolean):0 -> putAll
    16:17:void putAll(java.util.Map):94 -> putAll
    1:3:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.remove(java.lang.Object):140:142 -> remove
    1:3:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.remove(java.lang.Object):0 -> remove
    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.remove(java.lang.Object):41 -> remove
    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction.remove(java.lang.Object):0 -> remove
    1:1:java.lang.String toString():328:328 -> toString
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> toString
    2:2:java.lang.String toString():329 -> toString
    3:3:java.lang.String toString():329:329 -> toString
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet.iterator():136:136 -> toString
    4:4:java.lang.String toString():329 -> toString
    5:16:java.lang.String toString():330:341 -> toString
    17:17:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanMap$BasicEntry.getBooleanValue():145:145 -> toString
    17:17:java.lang.String toString():341 -> toString
    18:21:java.lang.String toString():341:344 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanMap$BasicEntry -> com.android.tools.r8.u.a.a.a.h.a:
    java.lang.Object key -> a
    boolean value -> b
    1:3:void <init>(java.lang.Object,boolean):121:123 -> <init>
    1:1:boolean getBooleanValue():145:145 -> d
    1:4:boolean equals(java.lang.Object):167:170 -> equals
    1:1:java.lang.Object getKey():128:128 -> getKey
    1:1:java.lang.Boolean getValue():140:140 -> getValue
    1:1:java.lang.Object getValue():112 -> getValue
    1:1:int hashCode():175:175 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):112:112 -> setValue
    2:2:java.lang.Boolean setValue(java.lang.Boolean):162:162 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):112 -> setValue
    3:3:boolean setValue(boolean):150:150 -> setValue
    3:3:java.lang.Boolean setValue(java.lang.Boolean):162 -> setValue
    3:3:java.lang.Object setValue(java.lang.Object):112 -> setValue
    1:1:java.lang.String toString():180:180 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntMap -> com.android.tools.r8.u.a.a.a.h.d:
    int com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.defRetValue -> a
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.<init>():44:44 -> <init>
    1:1:void <init>():45 -> <init>
    int com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,int) -> a
    boolean containsValue(int) -> b
    int com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.removeInt(java.lang.Object) -> b
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> c
    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.defaultReturnValue(int):55:55 -> e
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.defaultReturnValue(int):0 -> e
    1:1:java.util.Set entrySet():42:42 -> entrySet
    1:4:boolean equals(java.lang.Object):320:323 -> equals
    1:1:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.get(java.lang.Object):108:108 -> get
    1:1:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.get(java.lang.Object):0 -> get
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.get(java.lang.Object):41 -> get
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.get(java.lang.Object):0 -> get
    1:4:int hashCode():310:313 -> hashCode
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,java.lang.Object):41:41 -> put
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,java.lang.Object):0 -> put
    2:4:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,java.lang.Integer):123:125 -> put
    2:4:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,java.lang.Integer):0 -> put
    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,java.lang.Object):41 -> put
    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,java.lang.Object):0 -> put
    1:13:void putAll(java.util.Map):82:94 -> putAll
    14:15:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,java.lang.Integer):123:124 -> putAll
    14:15:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.put(java.lang.Object,java.lang.Integer):0 -> putAll
    14:15:void putAll(java.util.Map):94 -> putAll
    1:3:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.remove(java.lang.Object):140:142 -> remove
    1:3:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.remove(java.lang.Object):0 -> remove
    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.remove(java.lang.Object):41 -> remove
    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction.remove(java.lang.Object):0 -> remove
    1:17:java.lang.String toString():328:344 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntMap$BasicEntry -> com.android.tools.r8.u.a.a.a.h.c:
    java.lang.Object key -> a
    int value -> b
    1:3:void <init>(java.lang.Object,int):121:123 -> <init>
    1:1:int getIntValue():145:145 -> a
    1:4:boolean equals(java.lang.Object):167:170 -> equals
    1:1:java.lang.Object getKey():128:128 -> getKey
    1:1:java.lang.Integer getValue():140:140 -> getValue
    1:1:java.lang.Object getValue():112 -> getValue
    1:1:int hashCode():175:175 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):112:112 -> setValue
    2:2:java.lang.Integer setValue(java.lang.Integer):162:162 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):112 -> setValue
    3:3:int setValue(int):150:150 -> setValue
    3:3:java.lang.Integer setValue(java.lang.Integer):162 -> setValue
    3:3:java.lang.Object setValue(java.lang.Object):112 -> setValue
    1:1:java.lang.String toString():180:180 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntSortedMap -> com.android.tools.r8.u.a.a.a.h.e:
    1:1:void <init>():34:34 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229:229 -> c
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():31 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap$FastSortedEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.object2IntEntrySet():1422:1423 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.object2IntEntrySet():87 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():31 -> c
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229:229 -> entrySet
    1:1:java.util.Set entrySet():31 -> entrySet
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap$FastSortedEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.object2IntEntrySet():1422:1423 -> entrySet
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.object2IntEntrySet():87 -> entrySet
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229 -> entrySet
    2:3:java.util.Set entrySet():31 -> entrySet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongMap -> com.android.tools.r8.u.a.a.a.h.f:
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.<init>():44:44 -> <init>
    1:1:void <init>():45 -> <init>
    boolean containsValue(long) -> a
    long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,long) -> a
    long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.removeLong(java.lang.Object) -> b
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap$FastEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap.object2LongEntrySet():761:762 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap.object2LongEntrySet():49 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297 -> c
    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
    1:1:java.util.Set entrySet():42:42 -> entrySet
    1:3:boolean equals(java.lang.Object):320:322 -> equals
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap.size():429:429 -> equals
    4:4:boolean equals(java.lang.Object):322 -> equals
    5:5:boolean equals(java.lang.Object):323:323 -> equals
    1:1:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):108:108 -> get
    1:1:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):0 -> get
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):41 -> get
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):0 -> get
    2:12:long com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap.getLong(java.lang.Object):371:381 -> get
    2:12:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):108 -> get
    2:12:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):0 -> get
    2:12:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):41 -> get
    2:12:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):0 -> get
    13:13:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):108:108 -> get
    13:13:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):0 -> get
    13:13:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):41 -> get
    13:13:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.get(java.lang.Object):0 -> get
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,java.lang.Object):41:41 -> put
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,java.lang.Object):0 -> put
    2:4:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,java.lang.Long):123:125 -> put
    2:4:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,java.lang.Long):0 -> put
    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,java.lang.Object):41 -> put
    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,java.lang.Object):0 -> put
    1:13:void putAll(java.util.Map):82:94 -> putAll
    14:15:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,java.lang.Long):123:124 -> putAll
    14:15:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.put(java.lang.Object,java.lang.Long):0 -> putAll
    14:15:void putAll(java.util.Map):94 -> putAll
    1:3:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.remove(java.lang.Object):140:142 -> remove
    1:3:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.remove(java.lang.Object):0 -> remove
    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.remove(java.lang.Object):41 -> remove
    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction.remove(java.lang.Object):0 -> remove
    1:3:java.lang.String toString():328:330 -> toString
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap.size():429:429 -> toString
    4:4:java.lang.String toString():330 -> toString
    5:16:java.lang.String toString():333:344 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectMap -> com.android.tools.r8.u.a.a.a.h.g:
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectFunction.<init>():44:44 -> <init>
    1:1:void <init>():45 -> <init>
    1:3:boolean equals(java.lang.Object):272:274 -> equals
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.size():761:761 -> equals
    4:4:boolean equals(java.lang.Object):274 -> equals
    5:5:boolean equals(java.lang.Object):275:275 -> equals
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap.entrySet():226:226 -> equals
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap.entrySet():31 -> equals
    6:6:boolean equals(java.lang.Object):275 -> equals
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.object2ObjectEntrySet():85:85 -> equals
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap.entrySet():226 -> equals
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap.entrySet():31 -> equals
    7:7:boolean equals(java.lang.Object):275 -> equals
    8:8:boolean equals(java.lang.Object):275:275 -> equals
    java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectFunction.put(java.lang.Object,java.lang.Object) -> put
    1:13:void putAll(java.util.Map):69:81 -> putAll
    1:2:java.lang.String toString():280:281 -> toString
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap.entrySet():226:226 -> toString
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap.entrySet():31 -> toString
    3:3:java.lang.String toString():281 -> toString
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.object2ObjectEntrySet():85:85 -> toString
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap.entrySet():226 -> toString
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap.entrySet():31 -> toString
    4:4:java.lang.String toString():281 -> toString
    5:5:java.lang.String toString():281:281 -> toString
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntrySet.iterator():1228:1228 -> toString
    6:6:java.lang.String toString():281 -> toString
    7:7:java.lang.String toString():282:282 -> toString
    8:8:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.size():761:761 -> toString
    8:8:java.lang.String toString():282 -> toString
    9:21:java.lang.String toString():285:297 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap -> com.android.tools.r8.u.a.a.a.h.h:
    1:1:void <init>():34:34 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():226:226 -> entrySet
    1:1:java.util.Set entrySet():31 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.object2ObjectEntrySet():85:85 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():226 -> entrySet
    2:2:java.util.Set entrySet():31 -> entrySet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectCollection -> com.android.tools.r8.u.a.a.a.h.i:
    1:1:void <init>():37:37 -> <init>
    1:15:java.lang.String toString():61:75 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectIterator -> com.android.tools.r8.u.a.a.a.h.j:
    1:1:void <init>():34:34 -> <init>
    1:1:void remove():45:45 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList -> com.android.tools.r8.u.a.a.a.h.m:
    1:1:void <init>():34:34 -> <init>
    void removeElements(int,int) -> a
    1:5:boolean addAll(int,java.util.Collection):121:125 -> addAll
    6:6:boolean addAll(java.util.Collection):138:138 -> addAll
    1:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectList subList(int,int):311:314 -> b
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectList subList(int,int):313:313 -> b
    6:6:int compareTo(java.util.List):458:458 -> b
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> b
    7:7:int compareTo(java.util.List):459 -> b
    8:8:int compareTo(java.util.List):460:460 -> b
    9:9:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> b
    9:9:int compareTo(java.util.List):460 -> b
    10:15:int compareTo(java.util.List):463:468 -> b
    16:16:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> b
    16:16:int compareTo(java.util.List):470 -> b
    17:22:int compareTo(java.util.List):470:475 -> b
    1:1:void ensureIndex(int):48:48 -> c
    2:2:void ensureIndex(int):47:47 -> c
    1:1:void clear():404:404 -> clear
    1:1:int compareTo(java.lang.Object):33:33 -> compareTo
    1:1:boolean contains(java.lang.Object):275:275 -> contains
    1:1:void ensureRestrictedIndex(int):63:63 -> d
    2:2:void ensureRestrictedIndex(int):62:62 -> d
    1:4:boolean equals(java.lang.Object):431:434 -> equals
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> equals
    5:5:boolean equals(java.lang.Object):435 -> equals
    6:8:boolean equals(java.lang.Object):435:437 -> equals
    9:9:boolean valEquals(java.lang.Object,java.lang.Object):408:408 -> equals
    9:9:boolean equals(java.lang.Object):437 -> equals
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int) -> g
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> hashCode
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181 -> hashCode
    1:1:int hashCode():419 -> hashCode
    2:5:int hashCode():420:423 -> hashCode
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> indexOf
    1:1:int indexOf(java.lang.Object):280 -> indexOf
    2:4:int indexOf(java.lang.Object):282:284 -> indexOf
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():33 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181 -> iterator
    2:2:java.util.Iterator iterator():33 -> iterator
    1:5:int lastIndexOf(java.lang.Object):291:295 -> lastIndexOf
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> listIterator
    1:1:java.util.ListIterator listIterator():33 -> listIterator
    1:1:java.util.List subList(int,int):33:33 -> subList
    1:1:java.lang.String toString():502:502 -> toString
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> toString
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181 -> toString
    2:2:java.lang.String toString():503 -> toString
    3:15:java.lang.String toString():504:516 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList$ObjectSubList -> com.android.tools.r8.u.a.a.a.h.l:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectList l -> a
    int from -> b
    int to -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():520:520 -> <clinit>
    1:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectList,int,int):529:532 -> <init>
    1:1:boolean access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList$ObjectSubList):520:520 -> a
    2:4:boolean assertRange():536:538 -> a
    5:9:void removeElements(int,int):598:602 -> a
    1:3:boolean add(java.lang.Object):544:546 -> add
    4:7:void add(int,java.lang.Object):552:555 -> add
    1:3:boolean addAll(int,java.util.Collection):560:562 -> addAll
    1:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectList subList(int,int):674:677 -> b
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectList subList(int,int):676:676 -> b
    1:1:int compareTo(java.lang.Object):520:520 -> compareTo
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):615:616 -> g
    1:2:java.lang.Object get(int):567:568 -> get
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList.listIterator():193:193 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList.iterator():181 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():520 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList.listIterator():193:193 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList.iterator():181 -> iterator
    2:2:java.util.Iterator iterator():520 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList.listIterator():193:193 -> listIterator
    1:1:java.util.ListIterator listIterator():520 -> listIterator
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):615:616 -> listIterator
    2:3:java.util.ListIterator listIterator(int):520 -> listIterator
    1:3:java.lang.Object remove(int):573:575 -> remove
    1:2:java.lang.Object set(int,java.lang.Object):580:581 -> set
    1:1:int size():586:586 -> size
    1:1:java.util.List subList(int,int):520:520 -> subList
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList$ObjectSubList$1 -> com.android.tools.r8.u.a.a.a.h.k:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList$ObjectSubList this$0 -> d
    boolean $assertionsDisabled -> e
    int last -> b
    int val$index -> c
    int pos -> a
    1:1:void <clinit>():616:616 -> <clinit>
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectList$ObjectSubList,int):616:617 -> <init>
    1:4:void add(java.lang.Object):646:649 -> add
    5:5:void add(java.lang.Object):646:646 -> add
    1:1:boolean hasNext():620:620 -> hasNext
    1:1:boolean hasPrevious():624:624 -> hasPrevious
    1:2:java.lang.Object next():628:629 -> next
    3:3:java.lang.Object next():628:628 -> next
    1:1:int nextIndex():638:638 -> nextIndex
    1:2:java.lang.Object previous():633:634 -> previous
    3:3:java.lang.Object previous():633:633 -> previous
    1:1:int previousIndex():642:642 -> previousIndex
    1:10:void remove():658:667 -> remove
    11:11:void remove():658:658 -> remove
    1:2:void set(java.lang.Object):653:654 -> set
    3:3:void set(java.lang.Object):653:653 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectListIterator -> com.android.tools.r8.u.a.a.a.h.n:
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectBidirectionalIterator.<init>():34:34 -> <init>
    1:1:void <init>():35 -> <init>
    1:1:void add(java.lang.Object):57:57 -> add
    1:1:void set(java.lang.Object):46:46 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectSet -> com.android.tools.r8.u.a.a.a.h.o:
    1:1:void <init>():32:32 -> <init>
    1:4:boolean equals(java.lang.Object):41:44 -> equals
    1:7:int hashCode():57:63 -> hashCode
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectSortedSet -> com.android.tools.r8.u.a.a.a.h.p:
    1:1:void <init>():23:23 -> <init>
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanMap -> com.android.tools.r8.u.a.a.a.h.q:
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.<init>():44:44 -> <init>
    1:1:void <init>():45 -> <init>
    boolean containsValue(boolean) -> a
    boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,boolean) -> a
    boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.removeBoolean(java.lang.Object) -> b
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap$FastEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap.reference2BooleanEntrySet():716:717 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap.reference2BooleanEntrySet():49 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297 -> c
    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
    1:1:java.util.Set entrySet():42:42 -> entrySet
    1:3:boolean equals(java.lang.Object):320:322 -> equals
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap.size():384:384 -> equals
    4:4:boolean equals(java.lang.Object):322 -> equals
    5:5:boolean equals(java.lang.Object):323:323 -> equals
    1:1:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.get(java.lang.Object):108:108 -> get
    1:1:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.get(java.lang.Object):0 -> get
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.get(java.lang.Object):41 -> get
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.get(java.lang.Object):0 -> get
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Object):41:41 -> put
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Object):0 -> put
    2:4:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Boolean):123:125 -> put
    2:4:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Boolean):0 -> put
    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Object):41 -> put
    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Object):0 -> put
    1:7:void putAll(java.util.Map):82:88 -> putAll
    8:8:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntry.getBooleanValue():442:442 -> putAll
    8:8:void putAll(java.util.Map):88 -> putAll
    9:15:void putAll(java.util.Map):88:94 -> putAll
    16:17:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Boolean):123:124 -> putAll
    16:17:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.put(java.lang.Object,java.lang.Boolean):0 -> putAll
    16:17:void putAll(java.util.Map):94 -> putAll
    1:3:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.remove(java.lang.Object):140:142 -> remove
    1:3:java.lang.Boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.remove(java.lang.Object):0 -> remove
    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.remove(java.lang.Object):41 -> remove
    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction.remove(java.lang.Object):0 -> remove
    1:3:java.lang.String toString():328:330 -> toString
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap.size():384:384 -> toString
    4:4:java.lang.String toString():330 -> toString
    5:13:java.lang.String toString():333:341 -> toString
    14:14:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntry.getBooleanValue():442:442 -> toString
    14:14:java.lang.String toString():341 -> toString
    15:18:java.lang.String toString():341:344 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntMap -> com.android.tools.r8.u.a.a.a.h.s:
    int com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.defRetValue -> a
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.<init>():44:44 -> <init>
    1:1:void <init>():45 -> <init>
    int com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,int) -> a
    boolean containsValue(int) -> b
    int com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.removeInt(java.lang.Object) -> b
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> c
    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.defaultReturnValue(int):55:55 -> e
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.defaultReturnValue(int):0 -> e
    1:1:java.util.Set entrySet():42:42 -> entrySet
    1:4:boolean equals(java.lang.Object):320:323 -> equals
    1:1:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.get(java.lang.Object):108:108 -> get
    1:1:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.get(java.lang.Object):0 -> get
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.get(java.lang.Object):41 -> get
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.get(java.lang.Object):0 -> get
    1:4:int hashCode():310:313 -> hashCode
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,java.lang.Object):41:41 -> put
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,java.lang.Object):0 -> put
    2:4:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,java.lang.Integer):123:125 -> put
    2:4:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,java.lang.Integer):0 -> put
    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,java.lang.Object):41 -> put
    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,java.lang.Object):0 -> put
    1:13:void putAll(java.util.Map):82:94 -> putAll
    14:15:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,java.lang.Integer):123:124 -> putAll
    14:15:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.put(java.lang.Object,java.lang.Integer):0 -> putAll
    14:15:void putAll(java.util.Map):94 -> putAll
    1:3:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.remove(java.lang.Object):140:142 -> remove
    1:3:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.remove(java.lang.Object):0 -> remove
    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.remove(java.lang.Object):41 -> remove
    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction.remove(java.lang.Object):0 -> remove
    1:17:java.lang.String toString():328:344 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntMap$BasicEntry -> com.android.tools.r8.u.a.a.a.h.r:
    java.lang.Object key -> a
    int value -> b
    1:3:void <init>(java.lang.Object,int):121:123 -> <init>
    1:1:int getIntValue():145:145 -> a
    1:4:boolean equals(java.lang.Object):167:170 -> equals
    1:1:java.lang.Object getKey():128:128 -> getKey
    1:1:java.lang.Integer getValue():140:140 -> getValue
    1:1:java.lang.Object getValue():112 -> getValue
    1:1:int hashCode():175:175 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):112:112 -> setValue
    2:2:java.lang.Integer setValue(java.lang.Integer):162:162 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):112 -> setValue
    3:3:int setValue(int):150:150 -> setValue
    3:3:java.lang.Integer setValue(java.lang.Integer):162 -> setValue
    3:3:java.lang.Object setValue(java.lang.Object):112 -> setValue
    1:1:java.lang.String toString():180:180 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntSortedMap -> com.android.tools.r8.u.a.a.a.h.t:
    1:1:void <init>():34:34 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229:229 -> c
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():31 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap$FastSortedEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.reference2IntEntrySet():1422:1423 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.reference2IntEntrySet():87 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():31 -> c
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229:229 -> entrySet
    1:1:java.util.Set entrySet():31 -> entrySet
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap$FastSortedEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.reference2IntEntrySet():1422:1423 -> entrySet
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.reference2IntEntrySet():87 -> entrySet
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229 -> entrySet
    2:3:java.util.Set entrySet():31 -> entrySet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongMap -> com.android.tools.r8.u.a.a.a.h.u:
    1:1:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.<init>():44:44 -> <init>
    1:1:void <init>():45 -> <init>
    boolean containsValue(long) -> a
    long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,long) -> a
    long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.removeLong(java.lang.Object) -> b
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongMap$FastEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap.reference2LongEntrySet():761:762 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap.reference2LongEntrySet():49 -> c
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297 -> c
    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
    1:1:java.util.Set entrySet():42:42 -> entrySet
    1:3:boolean equals(java.lang.Object):320:322 -> equals
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap.size():429:429 -> equals
    4:4:boolean equals(java.lang.Object):322 -> equals
    5:5:boolean equals(java.lang.Object):323:323 -> equals
    1:1:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.get(java.lang.Object):108:108 -> get
    1:1:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.get(java.lang.Object):0 -> get
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.get(java.lang.Object):41 -> get
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.get(java.lang.Object):0 -> get
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,java.lang.Object):41:41 -> put
    1:1:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,java.lang.Object):0 -> put
    2:4:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,java.lang.Long):123:125 -> put
    2:4:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,java.lang.Long):0 -> put
    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,java.lang.Object):41 -> put
    2:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,java.lang.Object):0 -> put
    1:7:void putAll(java.util.Map):82:88 -> putAll
    8:8:long com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$MapEntry.getLongValue():487:487 -> putAll
    8:8:void putAll(java.util.Map):88 -> putAll
    9:15:void putAll(java.util.Map):88:94 -> putAll
    16:17:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,java.lang.Long):123:124 -> putAll
    16:17:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.put(java.lang.Object,java.lang.Long):0 -> putAll
    16:17:void putAll(java.util.Map):94 -> putAll
    1:3:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.remove(java.lang.Object):140:142 -> remove
    1:3:java.lang.Long com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.remove(java.lang.Object):0 -> remove
    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.remove(java.lang.Object):41 -> remove
    1:3:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2LongFunction.remove(java.lang.Object):0 -> remove
    1:3:java.lang.String toString():328:330 -> toString
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap.size():429:429 -> toString
    4:4:java.lang.String toString():330 -> toString
    5:13:java.lang.String toString():333:341 -> toString
    14:14:long com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$MapEntry.getLongValue():487:487 -> toString
    14:14:java.lang.String toString():341 -> toString
    15:18:java.lang.String toString():341:344 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceCollection -> com.android.tools.r8.u.a.a.a.h.v:
    1:1:void <init>():37:37 -> <init>
    1:15:java.lang.String toString():61:75 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList -> com.android.tools.r8.u.a.a.a.h.y:
    1:1:void <init>():34:34 -> <init>
    void removeElements(int,int) -> a
    1:5:boolean addAll(int,java.util.Collection):121:125 -> addAll
    6:6:boolean addAll(java.util.Collection):138:138 -> addAll
    1:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):311:314 -> b
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):313:313 -> b
    1:1:void ensureIndex(int):48:48 -> c
    2:2:void ensureIndex(int):47:47 -> c
    1:1:void clear():404:404 -> clear
    1:1:boolean contains(java.lang.Object):275:275 -> contains
    1:1:void ensureRestrictedIndex(int):63:63 -> d
    2:2:void ensureRestrictedIndex(int):62:62 -> d
    1:4:boolean equals(java.lang.Object):427:430 -> equals
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> equals
    5:5:boolean equals(java.lang.Object):431 -> equals
    6:8:boolean equals(java.lang.Object):431:433 -> equals
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int) -> g
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> hashCode
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181 -> hashCode
    1:1:int hashCode():415 -> hashCode
    2:5:int hashCode():416:419 -> hashCode
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> indexOf
    1:1:int indexOf(java.lang.Object):280 -> indexOf
    2:4:int indexOf(java.lang.Object):282:284 -> indexOf
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():33 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181 -> iterator
    2:2:java.util.Iterator iterator():33 -> iterator
    1:5:int lastIndexOf(java.lang.Object):291:295 -> lastIndexOf
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> listIterator
    1:1:java.util.ListIterator listIterator():33 -> listIterator
    1:1:java.util.List subList(int,int):33:33 -> subList
    1:1:java.lang.String toString():461:461 -> toString
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> toString
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181 -> toString
    2:2:java.lang.String toString():462 -> toString
    3:15:java.lang.String toString():463:475 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList -> com.android.tools.r8.u.a.a.a.h.x:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList l -> a
    int from -> b
    int to -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():479:479 -> <clinit>
    1:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList,int,int):488:491 -> <init>
    1:1:boolean access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList):479:479 -> a
    2:4:boolean assertRange():495:497 -> a
    5:9:void removeElements(int,int):557:561 -> a
    1:3:boolean add(java.lang.Object):503:505 -> add
    4:7:void add(int,java.lang.Object):511:514 -> add
    1:3:boolean addAll(int,java.util.Collection):519:521 -> addAll
    1:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):633:636 -> b
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):635:635 -> b
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):574:575 -> g
    1:2:java.lang.Object get(int):526:527 -> get
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList.listIterator():193:193 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList.iterator():181 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():479 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList.listIterator():193:193 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList.iterator():181 -> iterator
    2:2:java.util.Iterator iterator():479 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList.listIterator():193:193 -> listIterator
    1:1:java.util.ListIterator listIterator():479 -> listIterator
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):574:575 -> listIterator
    2:3:java.util.ListIterator listIterator(int):479 -> listIterator
    1:3:java.lang.Object remove(int):532:534 -> remove
    1:2:java.lang.Object set(int,java.lang.Object):539:540 -> set
    1:1:int size():545:545 -> size
    1:1:java.util.List subList(int,int):479:479 -> subList
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList$1 -> com.android.tools.r8.u.a.a.a.h.w:
    boolean $assertionsDisabled -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList this$0 -> d
    int last -> b
    int val$index -> c
    int pos -> a
    1:1:void <clinit>():575:575 -> <clinit>
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList,int):575:576 -> <init>
    1:4:void add(java.lang.Object):605:608 -> add
    5:5:void add(java.lang.Object):605:605 -> add
    1:1:boolean hasNext():579:579 -> hasNext
    1:1:boolean hasPrevious():583:583 -> hasPrevious
    1:2:java.lang.Object next():587:588 -> next
    3:3:java.lang.Object next():587:587 -> next
    1:1:int nextIndex():597:597 -> nextIndex
    1:2:java.lang.Object previous():592:593 -> previous
    3:3:java.lang.Object previous():592:592 -> previous
    1:1:int previousIndex():601:601 -> previousIndex
    1:10:void remove():617:626 -> remove
    11:11:void remove():617:617 -> remove
    1:2:void set(java.lang.Object):612:613 -> set
    3:3:void set(java.lang.Object):612:612 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceSet -> com.android.tools.r8.u.a.a.a.h.z:
    1:1:void <init>():32:32 -> <init>
    1:4:boolean equals(java.lang.Object):41:44 -> equals
    1:7:int hashCode():57:63 -> hashCode
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceSortedSet -> com.android.tools.r8.u.a.a.a.h.A:
    1:1:void <init>():23:23 -> <init>
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap -> com.android.tools.r8.u.a.a.a.h.D:
    java.lang.Object[] key -> a
    boolean[] value -> b
    int size -> c
    1:3:void <init>():70:72 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap):37:37 -> a
    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap,java.lang.Object):37:37 -> a
    3:4:boolean containsValue(boolean):270:271 -> a
    5:23:boolean put(java.lang.Object,boolean):283:301 -> a
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap):37:37 -> b
    2:9:boolean removeBoolean(java.lang.Object):308:315 -> b
    1:1:java.lang.Object[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap):37:37 -> c
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$FastEntrySet object2BooleanEntrySet():231:231 -> c
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2BooleanEntrySet():37 -> c
    3:5:int findKey(java.lang.Object):235:237 -> c
    1:4:void clear():257:260 -> clear
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap clone():344:349 -> clone
    1:6:java.lang.Object clone():37 -> clone
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap clone():346:346 -> clone
    7:7:java.lang.Object clone():37 -> clone
    1:1:boolean containsKey(java.lang.Object):265:265 -> containsKey
    1:1:boolean[] access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap):37:37 -> d
    2:4:boolean getBoolean(java.lang.Object):244:246 -> d
    1:1:boolean isEmpty():277:277 -> isEmpty
    1:1:java.util.Set keySet():37:37 -> keySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet keySet():321:321 -> keySet
    1:1:int size():252:252 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection values():326:326 -> values
    1:1:java.util.Collection values():37 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$1 -> com.android.tools.r8.u.a.a.a.h.B:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet -> com.android.tools.r8.u.a.a.a.h.D$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap):133:133 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$1):133:133 -> <init>
    1:5:boolean contains(java.lang.Object):203:207 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:java.util.Iterator iterator():133 -> iterator
    1:12:boolean remove(java.lang.Object):213:224 -> remove
    1:1:int size():197:197 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet$1 -> com.android.tools.r8.u.a.a.a.h.C:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet this$1 -> c
    int next -> b
    int curr -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet):136:137 -> <init>
    1:1:boolean hasNext():141:141 -> hasNext
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$Entry next():147:148 -> next
    1:2:java.lang.Object next():136 -> next
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$Entry next():147:147 -> next
    3:3:java.lang.Object next():136 -> next
    1:6:void remove():153:158 -> remove
    7:7:void remove():153:153 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap -> com.android.tools.r8.u.a.a.a.h.E:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$Entry -> com.android.tools.r8.u.a.a.a.h.E$a:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap -> com.android.tools.r8.u.a.a.a.h.H:
    java.lang.Object[] key -> b
    int[] value -> c
    int size -> d
    1:3:void <init>():70:72 -> <init>
    4:6:void <init>(int):81:83 -> <init>
    7:8:void <init>(java.util.Map):104:105 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap):37:37 -> a
    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap,java.lang.Object):37:37 -> a
    3:6:int getInt(java.lang.Object):244:247 -> a
    7:26:int put(java.lang.Object,int):283:302 -> a
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap):37:37 -> b
    2:3:boolean containsValue(int):270:271 -> b
    4:11:int removeInt(java.lang.Object):308:315 -> b
    1:1:java.lang.Object[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap):37:37 -> c
    2:4:int findKey(java.lang.Object):235:237 -> c
    1:4:void clear():257:260 -> clear
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap clone():344:349 -> clone
    1:6:java.lang.Object clone():37 -> clone
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap clone():346:346 -> clone
    7:7:java.lang.Object clone():37 -> clone
    1:1:boolean containsKey(java.lang.Object):265:265 -> containsKey
    1:1:int[] access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap):37:37 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$FastEntrySet object2IntEntrySet():231:231 -> g
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2IntEntrySet():37 -> g
    1:1:boolean isEmpty():277:277 -> isEmpty
    1:1:java.util.Set keySet():37:37 -> keySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet keySet():321:321 -> keySet
    1:1:int size():252:252 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():326:326 -> values
    1:1:java.util.Collection values():37 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap$1 -> com.android.tools.r8.u.a.a.a.h.F:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap$EntrySet -> com.android.tools.r8.u.a.a.a.h.H$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap):133:133 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap$1):133:133 -> <init>
    1:5:boolean contains(java.lang.Object):203:207 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:java.util.Iterator iterator():133 -> iterator
    1:12:boolean remove(java.lang.Object):213:224 -> remove
    1:1:int size():197:197 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap$EntrySet$1 -> com.android.tools.r8.u.a.a.a.h.G:
    int next -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap$EntrySet this$1 -> c
    int curr -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntArrayMap$EntrySet):136:137 -> <init>
    1:1:boolean hasNext():141:141 -> hasNext
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry next():147:148 -> next
    1:2:java.lang.Object next():136 -> next
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry next():147:147 -> next
    3:3:java.lang.Object next():136 -> next
    1:6:void remove():153:158 -> remove
    7:7:void remove():153:153 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntFunction -> com.android.tools.r8.u.a.a.a.h.I:
    int getInt(java.lang.Object) -> a
    int put(java.lang.Object,int) -> a
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap -> com.android.tools.r8.u.a.a.a.h.K:
    float f -> l
    java.lang.Object[] key -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values -> o
    int maxFill -> j
    int size -> k
    int n -> i
    int first -> f
    int last -> g
    int mask -> d
    long[] link -> h
    int[] value -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap$FastSortedEntrySet entries -> m
    boolean containsNullKey -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet keys -> n
    1:1:void <init>(int,float):147:147 -> <init>
    2:56:void <init>(int,float):102:156 -> <init>
    57:57:void <init>(int,float):149:149 -> <init>
    58:58:void <init>(int,float):148:148 -> <init>
    59:59:void <init>():176:176 -> <init>
    1:1:int access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):87:87 -> a
    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap,int):87:87 -> a
    3:27:int insert(java.lang.Object,int):307:331 -> a
    3:27:int put(java.lang.Object,int):338 -> a
    28:30:int put(java.lang.Object,int):339:341 -> a
    31:41:int getInt(java.lang.Object):721:731 -> a
    1:12:int removeInt(java.lang.Object):431:442 -> b
    13:17:boolean containsValue(int):754:758 -> b
    1:24:void fixPointers(int,int):937:960 -> c
    1:5:void clear():771:775 -> clear
    1:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap clone():1768:1778 -> clone
    1:11:java.lang.Object clone():87 -> clone
    12:12:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap clone():1770:1770 -> clone
    12:12:java.lang.Object clone():87 -> clone
    1:11:boolean containsKey(java.lang.Object):738:748 -> containsKey
    1:25:void fixPointers(int):899:923 -> f
    1:2:java.lang.Object firstKey():970:971 -> firstKey
    3:3:java.lang.Object firstKey():970:970 -> firstKey
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap$FastSortedEntrySet object2IntEntrySet():1422:1423 -> g
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2IntEntrySet():87 -> g
    3:44:void rehash(int):1709:1750 -> g
    1:3:int removeEntry(int):276:278 -> h
    4:9:void shiftKeys(int):410:415 -> h
    4:9:int removeEntry(int):279 -> h
    10:10:int removeEntry(int):280:280 -> h
    11:17:void shiftKeys(int):418:424 -> h
    11:17:int removeEntry(int):279 -> h
    18:18:void shiftKeys(int):420:420 -> h
    18:18:int removeEntry(int):279 -> h
    19:24:int removeNullEntry():285:290 -> h
    1:1:int realSize():262:262 -> hashCode
    1:1:int hashCode():1795 -> hashCode
    2:10:int hashCode():1796:1804 -> hashCode
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap headMap(java.lang.Object):1002:1002 -> headMap
    1:1:java.util.SortedMap headMap(java.lang.Object):87 -> headMap
    1:1:boolean isEmpty():785:785 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet keySet():1531:1532 -> keySet
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet keySet():87 -> keySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet keySet():1531:1532 -> keySet
    3:4:java.util.Set keySet():87 -> keySet
    1:2:java.lang.Object lastKey():981:982 -> lastKey
    3:3:java.lang.Object lastKey():981:981 -> lastKey
    1:1:void putAll(java.util.Map):296:296 -> putAll
    2:3:void ensureCapacity(int):266:267 -> putAll
    2:3:void putAll(java.util.Map):296 -> putAll
    4:4:int size():780:780 -> putAll
    4:4:void putAll(java.util.Map):298 -> putAll
    5:5:void putAll(java.util.Map):298:298 -> putAll
    6:7:void tryCapacity(long):271:272 -> putAll
    6:7:void putAll(java.util.Map):298 -> putAll
    8:8:void putAll(java.util.Map):301:301 -> putAll
    1:1:int size():780:780 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap subMap(java.lang.Object,java.lang.Object):1012:1012 -> subMap
    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):87 -> subMap
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap tailMap(java.lang.Object):992:992 -> tailMap
    1:1:java.util.SortedMap tailMap(java.lang.Object):87 -> tailMap
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():1596:1617 -> values
    1:22:java.util.Collection values():87 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.h.J:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1596:1596 -> <init>
    1:1:boolean contains(int):1609:1609 -> b
    1:1:void clear():1614:1614 -> clear
    1:1:java.util.Iterator iterator():1596:1596 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1599:1599 -> iterator
    1:1:int size():1604:1604 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.h.K$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapEntry entry -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1222:1222 -> <init>
    1:1:void add(java.lang.Object):1219:1219 -> add
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapIterator.add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry):1215:1215 -> add
    2:2:void add(java.lang.Object):1219 -> add
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapEntry next():1231:1231 -> next
    1:1:java.lang.Object next():1219 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapEntry previous():1236:1236 -> previous
    1:1:java.lang.Object previous():1219 -> previous
    1:2:void remove():1241:1242 -> remove
    1:1:void set(java.lang.Object):1219:1219 -> set
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapIterator.set(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry):1211:1211 -> set
    2:2:void set(java.lang.Object):1219 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.h.K$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> f
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1455:1456 -> <init>
    1:1:void add(java.lang.Object):1452:1452 -> add
    1:1:java.lang.Object next():1461:1461 -> next
    1:1:java.lang.Object previous():1442:1442 -> previous
    1:1:void set(java.lang.Object):1447:1447 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.h.K$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1465:1465 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$1):1465:1465 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():1471:1471 -> a
    1:1:void clear():1493:1493 -> clear
    1:1:boolean contains(java.lang.Object):1481:1481 -> contains
    1:2:java.lang.Object first():1498:1499 -> first
    3:3:java.lang.Object first():1498:1498 -> first
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(java.lang.Object):1520:1520 -> headSet
    1:1:java.util.SortedSet headSet(java.lang.Object):1465 -> headSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1465:1465 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1465:1465 -> iterator
    3:3:java.util.Iterator iterator():1465:1465 -> iterator
    1:2:java.lang.Object last():1504:1505 -> last
    3:3:java.lang.Object last():1504:1504 -> last
    1:3:boolean remove(java.lang.Object):1486:1488 -> remove
    1:1:int size():1476:1476 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(java.lang.Object,java.lang.Object):1525:1525 -> subSet
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1465 -> subSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(java.lang.Object):1515:1515 -> tailSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1465 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.h.K$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap,int):824:825 -> <init>
    1:1:int getIntValue():838:838 -> a
    1:3:boolean equals(java.lang.Object):875:877 -> equals
    1:1:java.lang.Object getKey():833:833 -> getKey
    1:1:java.lang.Integer getValue():857:857 -> getValue
    1:1:java.lang.Object getValue():819 -> getValue
    1:1:int hashCode():882:882 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):819:819 -> setValue
    2:2:java.lang.Integer setValue(java.lang.Integer):869:869 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):819 -> setValue
    3:4:int setValue(int):843:844 -> setValue
    3:4:java.lang.Integer setValue(java.lang.Integer):869 -> setValue
    3:4:java.lang.Object setValue(java.lang.Object):819 -> setValue
    5:5:java.lang.Integer setValue(java.lang.Integer):869:869 -> setValue
    5:5:java.lang.Object setValue(java.lang.Object):819 -> setValue
    1:1:java.lang.String toString():887:887 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.h.K$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1269:1269 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$1):1269:1269 -> <init>
    1:1:void clear():1373:1373 -> clear
    1:16:boolean contains(java.lang.Object):1309:1324 -> contains
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry first():1296:1297 -> first
    1:2:java.lang.Object first():1269 -> first
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry first():1296:1296 -> first
    3:3:java.lang.Object first():1269 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):1269:1269 -> headSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry):1286:1286 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):1269 -> headSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1269:1269 -> iterator
    2:2:java.util.Iterator iterator():1269:1269 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1271:1271 -> iterator
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry last():1302:1303 -> last
    1:2:java.lang.Object last():1269 -> last
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry last():1302:1302 -> last
    3:3:java.lang.Object last():1269 -> last
    1:29:boolean remove(java.lang.Object):1331:1359 -> remove
    1:1:int size():1368:1368 -> size
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1269:1269 -> subSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry):1281:1281 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1269 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1269:1269 -> tailSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry):1291:1291 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):1269 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.h.K$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> e
    int index -> d
    int next -> b
    int curr -> c
    int prev -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$1):1032:1032 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1057:1057 -> <init>
    3:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1038:1059 -> <init>
    1:14:void ensureIndexKnown():1099:1112 -> c
    1:6:int nextEntry():1127:1132 -> h
    7:7:int nextEntry():1127:1127 -> h
    1:1:boolean hasNext():1091:1091 -> hasNext
    1:1:boolean hasPrevious():1095:1095 -> hasPrevious
    1:6:int previousEntry():1136:1141 -> i
    7:7:int previousEntry():1136:1136 -> i
    1:2:int nextIndex():1117:1118 -> nextIndex
    1:2:int previousIndex():1122:1123 -> previousIndex
    1:47:void remove():1145:1191 -> remove
    48:48:void remove():1185:1185 -> remove
    49:49:void remove():1146:1146 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.h.K$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> f
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1578:1579 -> <init>
    1:1:void add(java.lang.Object):1544:1544 -> add
    2:2:void add(java.lang.Integer):1565:1565 -> add
    2:2:void add(java.lang.Object):1544 -> add
    1:1:int previousInt():1547:1547 -> d
    1:1:java.lang.Integer next():1590:1590 -> next
    1:1:java.lang.Object next():1544 -> next
    1:1:int nextInt():1584:1584 -> nextInt
    1:1:java.lang.Integer previous():1553:1553 -> previous
    1:1:java.lang.Object previous():1544 -> previous
    1:1:void set(java.lang.Object):1544:1544 -> set
    2:2:void set(java.lang.Integer):1559:1559 -> set
    2:2:void set(java.lang.Object):1544 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap -> com.android.tools.r8.u.a.a.a.h.N:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2IntEntrySet() -> g
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry -> com.android.tools.r8.u.a.a.a.h.L:
    int getIntValue() -> a
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$FastEntrySet -> com.android.tools.r8.u.a.a.a.h.M:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap -> com.android.tools.r8.u.a.a.a.h.P:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet keys -> k
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values -> l
    java.lang.Object[] key -> b
    float f -> i
    int[] value -> c
    int size -> h
    boolean containsNullKey -> e
    int n -> f
    int maxFill -> g
    int mask -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$FastEntrySet entries -> j
    1:9:void <init>(int,float):91:99 -> <init>
    10:10:void <init>(int,float):93:93 -> <init>
    11:11:void <init>(int,float):92:92 -> <init>
    1:1:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap):49:49 -> a
    2:2:int access$400(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap,int):49:49 -> a
    3:18:int insert(java.lang.Object,int):248:263 -> a
    3:18:int put(java.lang.Object,int):270 -> a
    19:21:int put(java.lang.Object,int):271:273 -> a
    22:32:int getInt(java.lang.Object):371:381 -> a
    1:12:int removeInt(java.lang.Object):353:364 -> b
    13:17:boolean containsValue(int):404:408 -> b
    1:4:void clear():421:424 -> clear
    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap clone():999:1008 -> clone
    1:10:java.lang.Object clone():49 -> clone
    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap clone():1001:1001 -> clone
    11:11:java.lang.Object clone():49 -> clone
    1:11:boolean containsKey(java.lang.Object):388:398 -> containsKey
    1:7:void rehash(int):961:967 -> f
    8:8:int realSize():205:205 -> f
    8:8:void rehash(int):968 -> f
    9:21:void rehash(int):969:981 -> f
    1:2:int removeEntry(int):219:220 -> g
    3:8:void shiftKeys(int):333:338 -> g
    3:8:int removeEntry(int):221 -> g
    9:9:int removeEntry(int):222:222 -> g
    10:15:void shiftKeys(int):341:346 -> g
    10:15:int removeEntry(int):221 -> g
    16:16:void shiftKeys(int):343:343 -> g
    16:16:int removeEntry(int):221 -> g
    17:18:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$FastEntrySet object2IntEntrySet():761:762 -> g
    17:18:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2IntEntrySet():49 -> g
    1:5:int removeNullEntry():227:231 -> h
    1:1:int realSize():205:205 -> hashCode
    1:1:int hashCode():1025 -> hashCode
    2:10:int hashCode():1026:1034 -> hashCode
    1:1:boolean isEmpty():434:434 -> isEmpty
    1:1:java.util.Set keySet():49:49 -> keySet
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet keySet():816:817 -> keySet
    1:1:void putAll(java.util.Map):237:237 -> putAll
    2:3:void ensureCapacity(int):209:210 -> putAll
    2:3:void putAll(java.util.Map):237 -> putAll
    4:4:int size():429:429 -> putAll
    4:4:void putAll(java.util.Map):239 -> putAll
    5:5:void putAll(java.util.Map):239:239 -> putAll
    6:7:void tryCapacity(long):214:215 -> putAll
    6:7:void putAll(java.util.Map):239 -> putAll
    8:8:void putAll(java.util.Map):242:242 -> putAll
    1:1:int size():429:429 -> size
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():848:869 -> values
    1:22:java.util.Collection values():49 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.h.O:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap):848:848 -> <init>
    1:1:boolean contains(int):861:861 -> b
    1:1:void clear():866:866 -> clear
    1:1:java.util.Iterator iterator():848:848 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():851:851 -> iterator
    1:1:int size():856:856 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.h.P$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$MapEntry entry -> g
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap this$0 -> h
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap):654:654 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$1):654:654 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$MapEntry next():659:659 -> next
    1:1:java.lang.Object next():654 -> next
    1:2:void remove():664:665 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.h.P$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap):775:776 -> <init>
    1:1:java.lang.Object next():781:781 -> next
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.h.P$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap):785:785 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$1):785:785 -> <init>
    1:1:void clear():810:810 -> clear
    1:1:boolean contains(java.lang.Object):798:798 -> contains
    1:1:java.util.Iterator iterator():785:785 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():788:788 -> iterator
    1:3:boolean remove(java.lang.Object):803:805 -> remove
    1:1:int size():793:793 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.h.P$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap,int):473:474 -> <init>
    1:1:int getIntValue():487:487 -> a
    1:3:boolean equals(java.lang.Object):524:526 -> equals
    1:1:java.lang.Object getKey():482:482 -> getKey
    1:1:java.lang.Integer getValue():506:506 -> getValue
    1:1:java.lang.Object getValue():468 -> getValue
    1:1:int hashCode():531:531 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):468:468 -> setValue
    2:2:java.lang.Integer setValue(java.lang.Integer):518:518 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):468 -> setValue
    3:4:int setValue(int):492:493 -> setValue
    3:4:java.lang.Integer setValue(java.lang.Integer):518 -> setValue
    3:4:java.lang.Object setValue(java.lang.Object):468 -> setValue
    5:5:java.lang.Integer setValue(java.lang.Integer):518:518 -> setValue
    5:5:java.lang.Object setValue(java.lang.Object):468 -> setValue
    1:1:java.lang.String toString():536:536 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.h.P$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap):679:679 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$1):679:679 -> <init>
    1:1:void clear():755:755 -> clear
    1:16:boolean contains(java.lang.Object):691:706 -> contains
    1:1:java.util.Iterator iterator():679:679 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():681:681 -> iterator
    1:29:boolean remove(java.lang.Object):713:741 -> remove
    1:1:int size():750:750 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.h.P$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap this$0 -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrayList wrapped -> e
    int last -> b
    int pos -> a
    boolean mustReturnNullKey -> d
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap):541:564 -> <init>
    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$1):541:541 -> <init>
    1:18:int nextEntry():576:593 -> c
    19:19:int nextEntry():576:576 -> c
    1:1:boolean hasNext():572:572 -> hasNext
    1:5:void remove():630:634 -> remove
    6:11:void shiftKeys(int):608:613 -> remove
    6:11:void remove():634 -> remove
    12:13:void remove():641:642 -> remove
    14:23:void shiftKeys(int):616:625 -> remove
    14:23:void remove():634 -> remove
    24:24:void shiftKeys(int):618:618 -> remove
    24:24:void remove():634 -> remove
    25:26:void remove():637:638 -> remove
    27:27:void remove():630:630 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.h.P$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap):830:831 -> <init>
    1:1:java.lang.Integer next():842:842 -> next
    1:1:java.lang.Object next():829 -> next
    1:1:int nextInt():836:836 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap$FastSortedEntrySet -> com.android.tools.r8.u.a.a.a.h.Q:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap -> com.android.tools.r8.u.a.a.a.h.S:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap$Entry -> com.android.tools.r8.u.a.a.a.h.S$a:
    long getLongValue() -> c
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap$FastEntrySet -> com.android.tools.r8.u.a.a.a.h.T:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap -> com.android.tools.r8.u.a.a.a.h.V:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet keys -> j
    float f -> h
    java.lang.Object[] key -> a
    long[] value -> b
    int maxFill -> f
    int size -> g
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongCollection values -> k
    int n -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap$FastEntrySet entries -> i
    int mask -> c
    boolean containsNullKey -> d
    1:9:void <init>(int,float):91:99 -> <init>
    10:10:void <init>(int,float):93:93 -> <init>
    11:11:void <init>(int,float):92:92 -> <init>
    12:12:void <init>():119:119 -> <init>
    1:1:long access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap):49:49 -> a
    2:2:long access$400(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap,int):49:49 -> a
    3:18:int insert(java.lang.Object,long):248:263 -> a
    3:18:long put(java.lang.Object,long):270 -> a
    19:20:long put(java.lang.Object,long):272:273 -> a
    21:25:boolean containsValue(long):404:408 -> a
    1:12:long removeLong(java.lang.Object):353:364 -> b
    13:19:void rehash(int):961:967 -> b
    20:20:int realSize():205:205 -> b
    20:20:void rehash(int):968 -> b
    21:33:void rehash(int):969:981 -> b
    1:4:void clear():421:424 -> clear
    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap clone():999:1008 -> clone
    1:10:java.lang.Object clone():49 -> clone
    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap clone():1001:1001 -> clone
    11:11:java.lang.Object clone():49 -> clone
    1:11:boolean containsKey(java.lang.Object):388:398 -> containsKey
    1:2:long removeEntry(int):219:220 -> e
    3:8:void shiftKeys(int):333:338 -> e
    3:8:long removeEntry(int):221 -> e
    9:9:long removeEntry(int):222:222 -> e
    10:15:void shiftKeys(int):341:346 -> e
    10:15:long removeEntry(int):221 -> e
    16:16:void shiftKeys(int):343:343 -> e
    16:16:long removeEntry(int):221 -> e
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongMap$FastEntrySet object2LongEntrySet():761:762 -> h
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2LongEntrySet():49 -> h
    1:1:int realSize():205:205 -> hashCode
    1:1:int hashCode():1025 -> hashCode
    2:10:int hashCode():1026:1034 -> hashCode
    1:1:boolean isEmpty():434:434 -> isEmpty
    1:5:long removeNullEntry():227:231 -> j
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet keySet():816:817 -> keySet
    1:2:java.util.Set keySet():49 -> keySet
    1:1:void putAll(java.util.Map):237:237 -> putAll
    2:3:void ensureCapacity(int):209:210 -> putAll
    2:3:void putAll(java.util.Map):237 -> putAll
    4:4:int size():429:429 -> putAll
    4:4:void putAll(java.util.Map):239 -> putAll
    5:5:void putAll(java.util.Map):239:239 -> putAll
    6:7:void tryCapacity(long):214:215 -> putAll
    6:7:void putAll(java.util.Map):239 -> putAll
    8:8:void putAll(java.util.Map):242:242 -> putAll
    1:1:int size():429:429 -> size
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongCollection values():848:869 -> values
    1:22:java.util.Collection values():49 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.h.U:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap):848:848 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator iterator():851:851 -> a
    1:1:boolean contains(long):861:861 -> b
    1:1:void clear():866:866 -> clear
    1:1:java.util.Iterator iterator():848:848 -> iterator
    1:1:int size():856:856 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.h.V$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$MapEntry entry -> g
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap this$0 -> h
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap):654:654 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$1):654:654 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$MapEntry next():659:659 -> next
    1:1:java.lang.Object next():654 -> next
    1:2:void remove():664:665 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.h.V$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap):775:776 -> <init>
    1:1:java.lang.Object next():781:781 -> next
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.h.V$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap):785:785 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$1):785:785 -> <init>
    1:1:void clear():810:810 -> clear
    1:1:boolean contains(java.lang.Object):798:798 -> contains
    1:1:java.util.Iterator iterator():785:785 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():788:788 -> iterator
    1:3:boolean remove(java.lang.Object):803:805 -> remove
    1:1:int size():793:793 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.h.V$d:
    int index -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap this$0 -> b
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap,int):473:474 -> <init>
    1:1:long getLongValue():487:487 -> c
    1:3:boolean equals(java.lang.Object):524:526 -> equals
    1:1:java.lang.Object getKey():482:482 -> getKey
    1:1:java.lang.Long getValue():506:506 -> getValue
    1:1:java.lang.Object getValue():468 -> getValue
    1:1:int hashCode():531:531 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):468:468 -> setValue
    2:2:java.lang.Long setValue(java.lang.Long):518:518 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):468 -> setValue
    3:4:long setValue(long):492:493 -> setValue
    3:4:java.lang.Long setValue(java.lang.Long):518 -> setValue
    3:4:java.lang.Object setValue(java.lang.Object):468 -> setValue
    5:5:java.lang.Long setValue(java.lang.Long):518:518 -> setValue
    5:5:java.lang.Object setValue(java.lang.Object):468 -> setValue
    1:1:java.lang.String toString():536:536 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.h.V$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap):679:679 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$1):679:679 -> <init>
    1:1:void clear():755:755 -> clear
    1:16:boolean contains(java.lang.Object):691:706 -> contains
    1:1:java.util.Iterator iterator():679:679 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():681:681 -> iterator
    1:29:boolean remove(java.lang.Object):713:741 -> remove
    1:1:int size():750:750 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.h.V$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrayList wrapped -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap this$0 -> f
    int last -> b
    int pos -> a
    boolean mustReturnNullKey -> d
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap):541:564 -> <init>
    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$1):541:541 -> <init>
    1:18:int nextEntry():576:593 -> c
    19:19:int nextEntry():576:576 -> c
    1:1:boolean hasNext():572:572 -> hasNext
    1:5:void remove():630:634 -> remove
    6:11:void shiftKeys(int):608:613 -> remove
    6:11:void remove():634 -> remove
    12:13:void remove():641:642 -> remove
    14:23:void shiftKeys(int):616:625 -> remove
    14:23:void remove():634 -> remove
    24:24:void shiftKeys(int):618:618 -> remove
    24:24:void remove():634 -> remove
    25:26:void remove():637:638 -> remove
    27:27:void remove():630:630 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.h.V$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap):830:831 -> <init>
    1:1:java.lang.Long next():842:842 -> next
    1:1:java.lang.Object next():829 -> next
    1:1:long nextLong():836:836 -> nextLong
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap -> com.android.tools.r8.u.a.a.a.h.X:
    float f -> l
    java.lang.Object[] value -> b
    int maxFill -> j
    java.lang.Object[] key -> a
    int size -> k
    int n -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy strategy -> e
    int first -> f
    int last -> g
    int mask -> c
    long[] link -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values -> o
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap$FastSortedEntrySet entries -> m
    boolean containsNullKey -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet keys -> n
    1:1:void <init>(int,float,com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy):149:149 -> <init>
    2:59:void <init>(int,float,com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy):102:159 -> <init>
    60:60:void <init>(int,float,com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy):152:152 -> <init>
    61:61:void <init>(int,float,com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy):151:151 -> <init>
    1:1:java.lang.Object access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):85:85 -> a
    2:2:java.lang.Object access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap,int):85:85 -> a
    1:25:void fixPointers(int):856:880 -> b
    1:24:void fixPointers(int,int):894:917 -> c
    25:26:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap$FastSortedEntrySet object2ObjectEntrySet():1379:1380 -> c
    1:6:void clear():751:756 -> clear
    1:12:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap clone():1701:1712 -> clone
    1:12:java.lang.Object clone():85 -> clone
    13:13:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap clone():1703:1703 -> clone
    13:13:java.lang.Object clone():85 -> clone
    1:11:boolean containsKey(java.lang.Object):718:728 -> containsKey
    1:5:boolean containsValue(java.lang.Object):734:738 -> containsValue
    1:42:void rehash(int):1642:1683 -> e
    1:4:java.lang.Object removeEntry(int):305:308 -> f
    5:11:void shiftKeys(int):387:393 -> f
    5:11:java.lang.Object removeEntry(int):309 -> f
    12:12:java.lang.Object removeEntry(int):310:310 -> f
    13:19:void shiftKeys(int):396:402 -> f
    13:19:java.lang.Object removeEntry(int):309 -> f
    20:20:void shiftKeys(int):398:398 -> f
    20:20:java.lang.Object removeEntry(int):309 -> f
    1:2:java.lang.Object firstKey():927:928 -> firstKey
    3:3:java.lang.Object firstKey():927:927 -> firstKey
    1:11:java.lang.Object get(java.lang.Object):701:711 -> get
    1:7:java.lang.Object removeNullEntry():315:321 -> h
    1:1:int realSize():291:291 -> hashCode
    1:1:int hashCode():1729 -> hashCode
    2:10:int hashCode():1730:1738 -> hashCode
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap headMap(java.lang.Object):959:959 -> headMap
    1:1:java.util.SortedMap headMap(java.lang.Object):85 -> headMap
    1:1:boolean isEmpty():766:766 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet keySet():1488:1489 -> keySet
    1:2:java.util.Set keySet():85 -> keySet
    1:2:java.lang.Object lastKey():938:939 -> lastKey
    3:3:java.lang.Object lastKey():938:938 -> lastKey
    1:26:int insert(java.lang.Object,java.lang.Object):337:362 -> put
    1:26:java.lang.Object put(java.lang.Object,java.lang.Object):369 -> put
    27:28:java.lang.Object put(java.lang.Object,java.lang.Object):371:372 -> put
    1:1:void putAll(java.util.Map):327:327 -> putAll
    2:3:void ensureCapacity(int):295:296 -> putAll
    2:3:void putAll(java.util.Map):327 -> putAll
    4:4:int size():761:761 -> putAll
    4:4:void putAll(java.util.Map):329 -> putAll
    5:5:void putAll(java.util.Map):329:329 -> putAll
    6:7:void tryCapacity(long):300:301 -> putAll
    6:7:void putAll(java.util.Map):329 -> putAll
    8:8:void putAll(java.util.Map):332:332 -> putAll
    1:13:java.lang.Object remove(java.lang.Object):408:420 -> remove
    1:1:int size():761:761 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap subMap(java.lang.Object,java.lang.Object):969:969 -> subMap
    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):85 -> subMap
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap tailMap(java.lang.Object):949:949 -> tailMap
    1:1:java.util.SortedMap tailMap(java.lang.Object):85 -> tailMap
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values():1529:1550 -> values
    1:22:java.util.Collection values():85 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$1 -> com.android.tools.r8.u.a.a.a.h.W:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1529:1529 -> <init>
    1:1:void clear():1547:1547 -> clear
    1:1:boolean contains(java.lang.Object):1542:1542 -> contains
    1:1:java.util.Iterator iterator():1529:1529 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1532:1532 -> iterator
    1:1:int size():1537:1537 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.h.X$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntry entry -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1181:1181 -> <init>
    1:1:void add(java.lang.Object):1178:1178 -> add
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapIterator.add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):1174:1174 -> add
    2:2:void add(java.lang.Object):1178 -> add
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntry next():1190:1190 -> next
    1:1:java.lang.Object next():1178 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntry previous():1195:1195 -> previous
    1:1:java.lang.Object previous():1178 -> previous
    1:2:void remove():1200:1201 -> remove
    1:1:void set(java.lang.Object):1178:1178 -> set
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapIterator.set(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):1170:1170 -> set
    2:2:void set(java.lang.Object):1178 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.h.X$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> f
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1412:1413 -> <init>
    1:1:void add(java.lang.Object):1409:1409 -> add
    1:1:java.lang.Object next():1418:1418 -> next
    1:1:java.lang.Object previous():1399:1399 -> previous
    1:1:void set(java.lang.Object):1404:1404 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$KeySet -> com.android.tools.r8.u.a.a.a.h.X$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1422:1422 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$1):1422:1422 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():1428:1428 -> a
    1:1:void clear():1450:1450 -> clear
    1:1:boolean contains(java.lang.Object):1438:1438 -> contains
    1:2:java.lang.Object first():1455:1456 -> first
    3:3:java.lang.Object first():1455:1455 -> first
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(java.lang.Object):1477:1477 -> headSet
    1:1:java.util.SortedSet headSet(java.lang.Object):1422 -> headSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1422:1422 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1422:1422 -> iterator
    3:3:java.util.Iterator iterator():1422:1422 -> iterator
    1:2:java.lang.Object last():1461:1462 -> last
    3:3:java.lang.Object last():1461:1461 -> last
    1:3:boolean remove(java.lang.Object):1443:1445 -> remove
    1:1:int size():1433:1433 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(java.lang.Object,java.lang.Object):1482:1482 -> subSet
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1422 -> subSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(java.lang.Object):1472:1472 -> tailSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1422 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.h.X$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap,int):805:806 -> <init>
    1:3:boolean equals(java.lang.Object):832:834 -> equals
    1:1:java.lang.Object getKey():814:814 -> getKey
    1:1:java.lang.Object getValue():819:819 -> getValue
    1:1:int hashCode():839:839 -> hashCode
    1:2:java.lang.Object setValue(java.lang.Object):824:825 -> setValue
    1:1:java.lang.String toString():844:844 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.h.X$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1228:1228 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$1):1228:1228 -> <init>
    1:1:void clear():1330:1330 -> clear
    1:15:boolean contains(java.lang.Object):1268:1282 -> contains
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry first():1255:1256 -> first
    1:2:java.lang.Object first():1228 -> first
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry first():1255:1255 -> first
    3:3:java.lang.Object first():1228 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):1228:1228 -> headSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):1245:1245 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):1228 -> headSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1228:1228 -> iterator
    2:2:java.util.Iterator iterator():1228:1228 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1230:1230 -> iterator
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry last():1261:1262 -> last
    1:2:java.lang.Object last():1228 -> last
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry last():1261:1261 -> last
    3:3:java.lang.Object last():1228 -> last
    1:28:boolean remove(java.lang.Object):1289:1316 -> remove
    1:1:int size():1325:1325 -> size
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1228:1228 -> subSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):1240:1240 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1228 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1228:1228 -> tailSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):1250:1250 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):1228 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.h.X$f:
    int index -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> e
    int next -> b
    int curr -> c
    int prev -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$1):989:989 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1014:1014 -> <init>
    3:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):995:1016 -> <init>
    1:14:void ensureIndexKnown():1056:1069 -> c
    1:6:int nextEntry():1084:1089 -> h
    7:7:int nextEntry():1084:1084 -> h
    1:1:boolean hasNext():1048:1048 -> hasNext
    1:1:boolean hasPrevious():1052:1052 -> hasPrevious
    1:6:int previousEntry():1093:1098 -> i
    7:7:int previousEntry():1093:1093 -> i
    1:2:int nextIndex():1074:1075 -> nextIndex
    1:2:int previousIndex():1079:1080 -> previousIndex
    1:49:void remove():1102:1150 -> remove
    50:50:void remove():1144:1144 -> remove
    51:51:void remove():1103:1103 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.h.X$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> f
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1517:1518 -> <init>
    1:1:void add(java.lang.Object):1514:1514 -> add
    1:1:java.lang.Object next():1523:1523 -> next
    1:1:java.lang.Object previous():1504:1504 -> previous
    1:1:void set(java.lang.Object):1509:1509 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap -> com.android.tools.r8.u.a.a.a.h.Z:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry -> com.android.tools.r8.u.a.a.a.h.Y:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap$FastSortedEntrySet -> com.android.tools.r8.u.a.a.a.h.a0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrayList -> com.android.tools.r8.u.a.a.a.h.c0:
    java.lang.Object[] a -> b
    boolean wrapped -> a
    int size -> c
    1:4:void <init>(int):96:99 -> <init>
    5:5:void <init>(int):97:97 -> <init>
    1:6:void removeElements(int,int):453:458 -> a
    1:5:void add(int,java.lang.Object):299:303 -> add
    6:7:boolean add(java.lang.Object):309:310 -> add
    1:2:void clear():365:366 -> clear
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrayList clone():553:555 -> clone
    1:3:java.lang.Object clone():57 -> clone
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):497:498 -> g
    1:2:java.lang.Object get(int):317:318 -> get
    3:3:java.lang.Object get(int):317:317 -> get
    1:7:void grow(int):285:291 -> h
    1:2:int indexOf(java.lang.Object):323:324 -> indexOf
    1:1:boolean isEmpty():385:385 -> isEmpty
    1:2:int lastIndexOf(java.lang.Object):330:331 -> lastIndexOf
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):497:498 -> listIterator
    1:2:java.util.ListIterator listIterator(int):57 -> listIterator
    1:5:java.lang.Object remove(int):337:341 -> remove
    6:6:java.lang.Object remove(int):337:337 -> remove
    7:9:boolean remove(java.lang.Object):348:350 -> remove
    1:7:boolean removeAll(java.util.Collection):485:491 -> removeAll
    1:3:java.lang.Object set(int,java.lang.Object):357:359 -> set
    4:4:java.lang.Object set(int,java.lang.Object):357:357 -> set
    1:1:int size():372:372 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrayList$1 -> com.android.tools.r8.u.a.a.a.h.b0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrayList this$0 -> d
    int last -> b
    int val$index -> c
    int pos -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrayList,int):498:499 -> <init>
    1:2:void add(java.lang.Object):528:529 -> add
    1:1:boolean hasNext():502:502 -> hasNext
    1:1:boolean hasPrevious():506:506 -> hasPrevious
    1:2:java.lang.Object next():510:511 -> next
    3:3:java.lang.Object next():510:510 -> next
    1:1:int nextIndex():520:520 -> nextIndex
    1:2:java.lang.Object previous():515:516 -> previous
    3:3:java.lang.Object previous():515:515 -> previous
    1:1:int previousIndex():524:524 -> previousIndex
    1:9:void remove():538:546 -> remove
    10:10:void remove():538:538 -> remove
    1:2:void set(java.lang.Object):533:534 -> set
    3:3:void set(java.lang.Object):533:533 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet -> com.android.tools.r8.u.a.a.a.h.e0:
    int size -> b
    1:4:void <init>(java.lang.Object[],int):104:107 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet):29:29 -> a
    1:9:boolean add(java.lang.Object):166:174 -> add
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet):29:29 -> b
    1:1:java.lang.Object[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet):29:29 -> c
    2:3:int findKey(java.lang.Object):111:112 -> c
    1:2:void clear():180:181 -> clear
    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet clone():204:208 -> clone
    1:5:java.lang.Object clone():29 -> clone
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet clone():206:206 -> clone
    6:6:java.lang.Object clone():29 -> clone
    1:1:boolean contains(java.lang.Object):144:144 -> contains
    1:1:boolean isEmpty():186:186 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():119:119 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():119:119 -> iterator
    2:2:java.util.Iterator iterator():29 -> iterator
    1:7:boolean remove(java.lang.Object):154:160 -> remove
    1:1:int size():149:149 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet$1 -> com.android.tools.r8.u.a.a.a.h.d0:
    int next -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet this$0 -> b
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet):119:120 -> <init>
    1:1:boolean hasNext():124:124 -> hasNext
    1:2:java.lang.Object next():129:130 -> next
    3:3:java.lang.Object next():129:129 -> next
    1:3:void remove():135:137 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrays -> com.android.tools.r8.u.a.a.a.h.f0:
    java.lang.Object[] EMPTY_ARRAY -> a
    1:1:void <clinit>():88:88 -> <clinit>
    1:2:java.lang.Object[] grow(java.lang.Object[],int,int):213:214 -> a
    3:5:java.lang.Object[] newArray(java.lang.Object[],int):106:108 -> a
    3:5:java.lang.Object[] grow(java.lang.Object[],int,int):215 -> a
    6:6:java.lang.Object[] grow(java.lang.Object[],int,int):216:216 -> a
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator -> com.android.tools.r8.u.a.a.a.h.g0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection -> com.android.tools.r8.u.a.a.a.h.h0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollections$EmptyCollection -> com.android.tools.r8.u.a.a.a.h.i0:
    1:1:void <init>():39:39 -> <init>
    1:1:boolean addAll(java.util.Collection):81:81 -> addAll
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():55:55 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():55:55 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():38 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():55:55 -> iterator
    3:3:java.util.Iterator iterator():38 -> iterator
    1:1:boolean removeAll(java.util.Collection):86:86 -> removeAll
    1:1:boolean retainAll(java.util.Collection):91:91 -> retainAll
    1:1:java.lang.Object[] toArray():49:49 -> toArray
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator -> com.android.tools.r8.u.a.a.a.h.j0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterators -> com.android.tools.r8.u.a.a.a.h.m0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterators$EmptyIterator EMPTY_ITERATOR -> a
    1:1:void <clinit>():103:103 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterators$EmptyIterator -> com.android.tools.r8.u.a.a.a.h.k0:
    1:1:void <init>():42:42 -> <init>
    1:1:java.lang.Object clone():87:87 -> clone
    1:1:java.lang.Object next():57:57 -> next
    1:1:java.lang.Object previous():62:62 -> previous
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterators$UnmodifiableIterator -> com.android.tools.r8.u.a.a.a.h.l0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator i -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator):739:740 -> <init>
    1:1:boolean hasNext():745:745 -> hasNext
    1:1:java.lang.Object next():750:750 -> next
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectList -> com.android.tools.r8.u.a.a.a.h.n0:
    void removeElements(int,int) -> a
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator -> com.android.tools.r8.u.a.a.a.h.o0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet -> com.android.tools.r8.u.a.a.a.h.p0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSets -> com.android.tools.r8.u.a.a.a.h.r0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSets$EmptySet EMPTY_SET -> a
    1:1:void <clinit>():70:70 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSets$EmptySet -> com.android.tools.r8.u.a.a.a.h.q0:
    1:1:void <init>():42:42 -> <init>
    1:1:java.lang.Object clone():52:52 -> clone
    1:1:boolean equals(java.lang.Object):58:58 -> equals
    1:1:boolean remove(java.lang.Object):47:47 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet -> com.android.tools.r8.u.a.a.a.h.s0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSets -> com.android.tools.r8.u.a.a.a.h.u0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSets$EmptySet EMPTY_SET -> a
    1:1:void <clinit>():114:114 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSets$EmptySet -> com.android.tools.r8.u.a.a.a.h.t0:
    1:1:void <init>():43:43 -> <init>
    1:1:java.lang.Object clone():101:101 -> clone
    1:1:java.lang.Object first():86:86 -> first
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(java.lang.Object):75:75 -> headSet
    1:1:java.util.SortedSet headSet(java.lang.Object):40 -> headSet
    1:1:java.lang.Object last():91:91 -> last
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(java.lang.Object,java.lang.Object):69:69 -> subSet
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):40 -> subSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(java.lang.Object):81:81 -> tailSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):40 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap -> com.android.tools.r8.u.a.a.a.h.x0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap$Entry -> com.android.tools.r8.u.a.a.a.h.v0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap$FastEntrySet -> com.android.tools.r8.u.a.a.a.h.w0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap -> com.android.tools.r8.u.a.a.a.h.z0:
    com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection values -> k
    float f -> h
    java.lang.Object[] key -> a
    int maxFill -> f
    boolean[] value -> b
    int size -> g
    int n -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keys -> j
    int mask -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap$FastEntrySet entries -> i
    boolean containsNullKey -> d
    1:9:void <init>(int,float):91:99 -> <init>
    10:10:void <init>(int,float):93:93 -> <init>
    11:11:void <init>(int,float):92:92 -> <init>
    12:12:void <init>():119:119 -> <init>
    1:1:boolean access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):49:49 -> a
    2:2:boolean access$400(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,int):49:49 -> a
    3:18:int insert(java.lang.Object,boolean):248:263 -> a
    3:18:boolean put(java.lang.Object,boolean):270 -> a
    19:20:boolean put(java.lang.Object,boolean):272:273 -> a
    21:25:boolean containsValue(boolean):359:363 -> a
    1:12:boolean removeBoolean(java.lang.Object):308:319 -> b
    13:19:void rehash(int):916:922 -> b
    20:20:int realSize():205:205 -> b
    20:20:void rehash(int):923 -> b
    21:33:void rehash(int):924:936 -> b
    1:11:boolean getBoolean(java.lang.Object):326:336 -> c
    1:4:void clear():376:379 -> clear
    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap clone():954:963 -> clone
    1:10:java.lang.Object clone():49 -> clone
    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap clone():956:956 -> clone
    11:11:java.lang.Object clone():49 -> clone
    1:10:boolean containsKey(java.lang.Object):343:352 -> containsKey
    1:2:boolean removeEntry(int):219:220 -> e
    3:8:void shiftKeys(int):288:293 -> e
    3:8:boolean removeEntry(int):221 -> e
    9:9:boolean removeEntry(int):222:222 -> e
    10:15:void shiftKeys(int):296:301 -> e
    10:15:boolean removeEntry(int):221 -> e
    16:16:void shiftKeys(int):298:298 -> e
    16:16:boolean removeEntry(int):221 -> e
    1:5:boolean removeNullEntry():227:231 -> h
    1:1:int realSize():205:205 -> hashCode
    1:1:int hashCode():980 -> hashCode
    2:10:int hashCode():981:989 -> hashCode
    1:1:boolean isEmpty():389:389 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keySet():771:772 -> keySet
    1:2:java.util.Set keySet():49 -> keySet
    1:1:void putAll(java.util.Map):237:237 -> putAll
    2:3:void ensureCapacity(int):209:210 -> putAll
    2:3:void putAll(java.util.Map):237 -> putAll
    4:4:int size():384:384 -> putAll
    4:4:void putAll(java.util.Map):239 -> putAll
    5:5:void putAll(java.util.Map):239:239 -> putAll
    6:7:void tryCapacity(long):214:215 -> putAll
    6:7:void putAll(java.util.Map):239 -> putAll
    8:8:void putAll(java.util.Map):242:242 -> putAll
    1:1:int size():384:384 -> size
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection values():803:824 -> values
    1:22:java.util.Collection values():49 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.h.y0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):803:803 -> <init>
    1:1:boolean contains(boolean):816:816 -> b
    1:1:void clear():821:821 -> clear
    1:1:java.util.Iterator iterator():803:803 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():806:806 -> iterator
    1:1:int size():811:811 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.h.z0$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntry entry -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):609:609 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$1):609:609 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntry next():614:614 -> next
    1:1:java.lang.Object next():609 -> next
    1:2:void remove():619:620 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.h.z0$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):730:731 -> <init>
    1:1:java.lang.Object next():736:736 -> next
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.h.z0$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):740:740 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$1):740:740 -> <init>
    1:1:void clear():765:765 -> clear
    1:1:boolean contains(java.lang.Object):753:753 -> contains
    1:1:java.util.Iterator iterator():740:740 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():743:743 -> iterator
    1:3:boolean remove(java.lang.Object):758:760 -> remove
    1:1:int size():748:748 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.h.z0$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,int):428:429 -> <init>
    1:3:boolean equals(java.lang.Object):479:481 -> equals
    1:1:java.lang.Object getKey():437:437 -> getKey
    1:1:java.lang.Boolean getValue():461:461 -> getValue
    1:1:java.lang.Object getValue():423 -> getValue
    1:1:int hashCode():486:486 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):423:423 -> setValue
    2:2:java.lang.Boolean setValue(java.lang.Boolean):473:473 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):423 -> setValue
    3:4:boolean setValue(boolean):447:448 -> setValue
    3:4:java.lang.Boolean setValue(java.lang.Boolean):473 -> setValue
    3:4:java.lang.Object setValue(java.lang.Object):423 -> setValue
    5:5:java.lang.Boolean setValue(java.lang.Boolean):473:473 -> setValue
    5:5:java.lang.Object setValue(java.lang.Object):423 -> setValue
    1:1:java.lang.String toString():491:491 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.h.z0$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):634:634 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$1):634:634 -> <init>
    1:1:void clear():710:710 -> clear
    1:16:boolean contains(java.lang.Object):646:661 -> contains
    1:1:java.util.Iterator iterator():634:634 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():636:636 -> iterator
    1:29:boolean remove(java.lang.Object):668:696 -> remove
    1:1:int size():705:705 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.h.z0$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList wrapped -> e
    int last -> b
    int pos -> a
    boolean mustReturnNullKey -> d
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):496:519 -> <init>
    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$1):496:496 -> <init>
    1:18:int nextEntry():531:548 -> c
    19:19:int nextEntry():531:531 -> c
    1:1:boolean hasNext():527:527 -> hasNext
    1:5:void remove():585:589 -> remove
    6:11:void shiftKeys(int):563:568 -> remove
    6:11:void remove():589 -> remove
    12:13:void remove():596:597 -> remove
    14:23:void shiftKeys(int):571:580 -> remove
    14:23:void remove():589 -> remove
    24:24:void shiftKeys(int):573:573 -> remove
    24:24:void remove():589 -> remove
    25:26:void remove():592:593 -> remove
    27:27:void remove():585:585 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.h.z0$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):785:786 -> <init>
    1:1:java.lang.Boolean next():797:797 -> next
    1:1:java.lang.Object next():784 -> next
    1:1:boolean nextBoolean():791:791 -> nextBoolean
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap -> com.android.tools.r8.u.a.a.a.h.C0:
    java.lang.Object[] key -> b
    int[] value -> c
    int size -> d
    1:3:void <init>():70:72 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap):37:37 -> a
    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap,java.lang.Object):37:37 -> a
    3:6:int getInt(java.lang.Object):244:247 -> a
    7:26:int put(java.lang.Object,int):283:302 -> a
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap):37:37 -> b
    2:3:boolean containsValue(int):270:271 -> b
    4:11:int removeInt(java.lang.Object):308:315 -> b
    1:1:java.lang.Object[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap):37:37 -> c
    2:4:int findKey(java.lang.Object):235:237 -> c
    1:4:void clear():257:260 -> clear
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap clone():344:349 -> clone
    1:6:java.lang.Object clone():37 -> clone
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap clone():346:346 -> clone
    7:7:java.lang.Object clone():37 -> clone
    1:1:boolean containsKey(java.lang.Object):265:265 -> containsKey
    1:1:int[] access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap):37:37 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$FastEntrySet reference2IntEntrySet():231:231 -> e
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet reference2IntEntrySet():37 -> e
    1:1:boolean isEmpty():277:277 -> isEmpty
    1:1:java.util.Set keySet():37:37 -> keySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keySet():321:321 -> keySet
    1:1:int size():252:252 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():326:326 -> values
    1:1:java.util.Collection values():37 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$1 -> com.android.tools.r8.u.a.a.a.h.A0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$EntrySet -> com.android.tools.r8.u.a.a.a.h.C0$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap):133:133 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$1):133:133 -> <init>
    1:5:boolean contains(java.lang.Object):203:207 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:java.util.Iterator iterator():133 -> iterator
    1:12:boolean remove(java.lang.Object):213:224 -> remove
    1:1:int size():197:197 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$EntrySet$1 -> com.android.tools.r8.u.a.a.a.h.B0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$EntrySet this$1 -> c
    int next -> b
    int curr -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$EntrySet):136:137 -> <init>
    1:1:boolean hasNext():141:141 -> hasNext
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry next():147:148 -> next
    1:2:java.lang.Object next():136 -> next
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry next():147:147 -> next
    3:3:java.lang.Object next():136 -> next
    1:6:void remove():153:158 -> remove
    7:7:void remove():153:153 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntFunction -> com.android.tools.r8.u.a.a.a.h.D0:
    int getInt(java.lang.Object) -> a
    int put(java.lang.Object,int) -> a
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap -> com.android.tools.r8.u.a.a.a.h.F0:
    float f -> l
    java.lang.Object[] key -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values -> o
    int maxFill -> j
    int size -> k
    int n -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet keys -> n
    int first -> f
    int last -> g
    int mask -> d
    long[] link -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap$FastSortedEntrySet entries -> m
    int[] value -> c
    boolean containsNullKey -> e
    1:1:void <init>(int,float):147:147 -> <init>
    2:56:void <init>(int,float):102:156 -> <init>
    57:57:void <init>(int,float):149:149 -> <init>
    58:58:void <init>(int,float):148:148 -> <init>
    1:1:int access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):87:87 -> a
    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap,int):87:87 -> a
    3:27:int insert(java.lang.Object,int):307:331 -> a
    3:27:int put(java.lang.Object,int):338 -> a
    28:30:int put(java.lang.Object,int):339:341 -> a
    31:41:int getInt(java.lang.Object):721:731 -> a
    1:12:int removeInt(java.lang.Object):431:442 -> b
    13:17:boolean containsValue(int):754:758 -> b
    1:24:void fixPointers(int,int):937:960 -> c
    1:5:void clear():771:775 -> clear
    1:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap clone():1768:1778 -> clone
    1:11:java.lang.Object clone():87 -> clone
    12:12:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap clone():1770:1770 -> clone
    12:12:java.lang.Object clone():87 -> clone
    1:10:boolean containsKey(java.lang.Object):738:747 -> containsKey
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap$FastSortedEntrySet reference2IntEntrySet():1422:1423 -> e
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet reference2IntEntrySet():87 -> e
    1:25:void fixPointers(int):899:923 -> f
    1:2:java.lang.Object firstKey():970:971 -> firstKey
    3:3:java.lang.Object firstKey():970:970 -> firstKey
    1:42:void rehash(int):1709:1750 -> g
    1:3:int removeEntry(int):276:278 -> h
    4:9:void shiftKeys(int):410:415 -> h
    4:9:int removeEntry(int):279 -> h
    10:10:int removeEntry(int):280:280 -> h
    11:17:void shiftKeys(int):418:424 -> h
    11:17:int removeEntry(int):279 -> h
    18:18:void shiftKeys(int):420:420 -> h
    18:18:int removeEntry(int):279 -> h
    19:24:int removeNullEntry():285:290 -> h
    1:1:int realSize():262:262 -> hashCode
    1:1:int hashCode():1795 -> hashCode
    2:10:int hashCode():1796:1804 -> hashCode
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap headMap(java.lang.Object):1002:1002 -> headMap
    1:1:java.util.SortedMap headMap(java.lang.Object):87 -> headMap
    1:1:boolean isEmpty():785:785 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet keySet():1531:1532 -> keySet
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keySet():87 -> keySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet keySet():1531:1532 -> keySet
    3:4:java.util.Set keySet():87 -> keySet
    1:2:java.lang.Object lastKey():981:982 -> lastKey
    3:3:java.lang.Object lastKey():981:981 -> lastKey
    1:1:void putAll(java.util.Map):296:296 -> putAll
    2:3:void ensureCapacity(int):266:267 -> putAll
    2:3:void putAll(java.util.Map):296 -> putAll
    4:4:int size():780:780 -> putAll
    4:4:void putAll(java.util.Map):298 -> putAll
    5:5:void putAll(java.util.Map):298:298 -> putAll
    6:7:void tryCapacity(long):271:272 -> putAll
    6:7:void putAll(java.util.Map):298 -> putAll
    8:8:void putAll(java.util.Map):301:301 -> putAll
    1:1:int size():780:780 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap subMap(java.lang.Object,java.lang.Object):1012:1012 -> subMap
    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):87 -> subMap
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap tailMap(java.lang.Object):992:992 -> tailMap
    1:1:java.util.SortedMap tailMap(java.lang.Object):87 -> tailMap
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():1596:1617 -> values
    1:22:java.util.Collection values():87 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.h.E0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1596:1596 -> <init>
    1:1:boolean contains(int):1609:1609 -> b
    1:1:void clear():1614:1614 -> clear
    1:1:java.util.Iterator iterator():1596:1596 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1599:1599 -> iterator
    1:1:int size():1604:1604 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.h.F0$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapEntry entry -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1222:1222 -> <init>
    1:1:void add(java.lang.Object):1219:1219 -> add
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapIterator.add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry):1215:1215 -> add
    2:2:void add(java.lang.Object):1219 -> add
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapEntry next():1231:1231 -> next
    1:1:java.lang.Object next():1219 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapEntry previous():1236:1236 -> previous
    1:1:java.lang.Object previous():1219 -> previous
    1:2:void remove():1241:1242 -> remove
    1:1:void set(java.lang.Object):1219:1219 -> set
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapIterator.set(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry):1211:1211 -> set
    2:2:void set(java.lang.Object):1219 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.h.F0$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> f
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1455:1456 -> <init>
    1:1:void add(java.lang.Object):1452:1452 -> add
    1:1:java.lang.Object next():1461:1461 -> next
    1:1:java.lang.Object previous():1442:1442 -> previous
    1:1:void set(java.lang.Object):1447:1447 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.h.F0$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1465:1465 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$1):1465:1465 -> <init>
    1:1:void clear():1493:1493 -> clear
    1:1:boolean contains(java.lang.Object):1481:1481 -> contains
    1:2:java.lang.Object first():1498:1499 -> first
    3:3:java.lang.Object first():1498:1498 -> first
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet headSet(java.lang.Object):1520:1520 -> headSet
    1:1:java.util.SortedSet headSet(java.lang.Object):1465 -> headSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():1471:1471 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1465 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():1471:1471 -> iterator
    2:2:java.util.Iterator iterator():1465 -> iterator
    1:2:java.lang.Object last():1504:1505 -> last
    3:3:java.lang.Object last():1504:1504 -> last
    1:3:boolean remove(java.lang.Object):1486:1488 -> remove
    1:1:int size():1476:1476 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet subSet(java.lang.Object,java.lang.Object):1525:1525 -> subSet
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1465 -> subSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet tailSet(java.lang.Object):1515:1515 -> tailSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1465 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.h.F0$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap,int):824:825 -> <init>
    1:1:int getIntValue():838:838 -> a
    1:3:boolean equals(java.lang.Object):875:877 -> equals
    1:1:java.lang.Object getKey():833:833 -> getKey
    1:1:java.lang.Integer getValue():857:857 -> getValue
    1:1:java.lang.Object getValue():819 -> getValue
    1:1:int hashCode():882:882 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):819:819 -> setValue
    2:2:java.lang.Integer setValue(java.lang.Integer):869:869 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):819 -> setValue
    3:4:int setValue(int):843:844 -> setValue
    3:4:java.lang.Integer setValue(java.lang.Integer):869 -> setValue
    3:4:java.lang.Object setValue(java.lang.Object):819 -> setValue
    5:5:java.lang.Integer setValue(java.lang.Integer):869:869 -> setValue
    5:5:java.lang.Object setValue(java.lang.Object):819 -> setValue
    1:1:java.lang.String toString():887:887 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.h.F0$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1269:1269 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$1):1269:1269 -> <init>
    1:1:void clear():1373:1373 -> clear
    1:16:boolean contains(java.lang.Object):1309:1324 -> contains
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry first():1296:1297 -> first
    1:2:java.lang.Object first():1269 -> first
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry first():1296:1296 -> first
    3:3:java.lang.Object first():1269 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):1269:1269 -> headSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry):1286:1286 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):1269 -> headSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1269:1269 -> iterator
    2:2:java.util.Iterator iterator():1269:1269 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1271:1271 -> iterator
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry last():1302:1303 -> last
    1:2:java.lang.Object last():1269 -> last
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry last():1302:1302 -> last
    3:3:java.lang.Object last():1269 -> last
    1:29:boolean remove(java.lang.Object):1331:1359 -> remove
    1:1:int size():1368:1368 -> size
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1269:1269 -> subSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry):1281:1281 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1269 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1269:1269 -> tailSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry):1291:1291 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):1269 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.h.F0$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> e
    int index -> d
    int next -> b
    int curr -> c
    int prev -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$1):1032:1032 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1057:1057 -> <init>
    3:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1038:1059 -> <init>
    1:14:void ensureIndexKnown():1099:1112 -> c
    1:6:int nextEntry():1127:1132 -> h
    7:7:int nextEntry():1127:1127 -> h
    1:1:boolean hasNext():1091:1091 -> hasNext
    1:1:boolean hasPrevious():1095:1095 -> hasPrevious
    1:6:int previousEntry():1136:1141 -> i
    7:7:int previousEntry():1136:1136 -> i
    1:2:int nextIndex():1117:1118 -> nextIndex
    1:2:int previousIndex():1122:1123 -> previousIndex
    1:47:void remove():1145:1191 -> remove
    48:48:void remove():1185:1185 -> remove
    49:49:void remove():1146:1146 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.h.F0$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> f
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1578:1579 -> <init>
    1:1:void add(java.lang.Object):1544:1544 -> add
    2:2:void add(java.lang.Integer):1565:1565 -> add
    2:2:void add(java.lang.Object):1544 -> add
    1:1:int previousInt():1547:1547 -> d
    1:1:java.lang.Integer next():1590:1590 -> next
    1:1:java.lang.Object next():1544 -> next
    1:1:int nextInt():1584:1584 -> nextInt
    1:1:java.lang.Integer previous():1553:1553 -> previous
    1:1:java.lang.Object previous():1544 -> previous
    1:1:void set(java.lang.Object):1544:1544 -> set
    2:2:void set(java.lang.Integer):1559:1559 -> set
    2:2:void set(java.lang.Object):1544 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap -> com.android.tools.r8.u.a.a.a.h.G0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet reference2IntEntrySet() -> e
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry -> com.android.tools.r8.u.a.a.a.h.G0$a:
    int getIntValue() -> a
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$FastEntrySet -> com.android.tools.r8.u.a.a.a.h.H0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap -> com.android.tools.r8.u.a.a.a.h.J0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$FastEntrySet entries -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values -> l
    java.lang.Object[] key -> b
    float f -> i
    int[] value -> c
    int size -> h
    boolean containsNullKey -> e
    int n -> f
    int maxFill -> g
    int mask -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keys -> k
    1:9:void <init>(int,float):91:99 -> <init>
    10:10:void <init>(int,float):93:93 -> <init>
    11:11:void <init>(int,float):92:92 -> <init>
    12:12:void <init>(int):110:110 -> <init>
    13:13:void <init>():119:119 -> <init>
    1:1:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):49:49 -> a
    2:2:int access$400(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,int):49:49 -> a
    3:18:int insert(java.lang.Object,int):248:263 -> a
    3:18:int put(java.lang.Object,int):270 -> a
    19:21:int put(java.lang.Object,int):271:273 -> a
    22:32:int getInt(java.lang.Object):371:381 -> a
    1:12:int removeInt(java.lang.Object):353:364 -> b
    13:17:boolean containsValue(int):404:408 -> b
    1:4:void clear():421:424 -> clear
    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap clone():999:1008 -> clone
    1:10:java.lang.Object clone():49 -> clone
    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap clone():1001:1001 -> clone
    11:11:java.lang.Object clone():49 -> clone
    1:10:boolean containsKey(java.lang.Object):388:397 -> containsKey
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$FastEntrySet reference2IntEntrySet():761:762 -> e
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet reference2IntEntrySet():49 -> e
    1:7:void rehash(int):961:967 -> f
    8:8:int realSize():205:205 -> f
    8:8:void rehash(int):968 -> f
    9:21:void rehash(int):969:981 -> f
    1:2:int removeEntry(int):219:220 -> g
    3:8:void shiftKeys(int):333:338 -> g
    3:8:int removeEntry(int):221 -> g
    9:9:int removeEntry(int):222:222 -> g
    10:15:void shiftKeys(int):341:346 -> g
    10:15:int removeEntry(int):221 -> g
    16:16:void shiftKeys(int):343:343 -> g
    16:16:int removeEntry(int):221 -> g
    1:5:int removeNullEntry():227:231 -> h
    1:1:int realSize():205:205 -> hashCode
    1:1:int hashCode():1025 -> hashCode
    2:10:int hashCode():1026:1034 -> hashCode
    1:1:boolean isEmpty():434:434 -> isEmpty
    1:1:java.util.Set keySet():49:49 -> keySet
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keySet():816:817 -> keySet
    1:1:void putAll(java.util.Map):237:237 -> putAll
    2:3:void ensureCapacity(int):209:210 -> putAll
    2:3:void putAll(java.util.Map):237 -> putAll
    4:4:int size():429:429 -> putAll
    4:4:void putAll(java.util.Map):239 -> putAll
    5:5:void putAll(java.util.Map):239:239 -> putAll
    6:7:void tryCapacity(long):214:215 -> putAll
    6:7:void putAll(java.util.Map):239 -> putAll
    8:8:void putAll(java.util.Map):242:242 -> putAll
    1:1:int size():429:429 -> size
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():848:869 -> values
    1:22:java.util.Collection values():49 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.h.I0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):848:848 -> <init>
    1:1:boolean contains(int):861:861 -> b
    1:1:void clear():866:866 -> clear
    1:1:java.util.Iterator iterator():848:848 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():851:851 -> iterator
    1:1:int size():856:856 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.h.J0$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapEntry entry -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):654:654 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$1):654:654 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapEntry next():659:659 -> next
    1:1:java.lang.Object next():654 -> next
    1:2:void remove():664:665 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.h.J0$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):775:776 -> <init>
    1:1:java.lang.Object next():781:781 -> next
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.h.J0$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):785:785 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$1):785:785 -> <init>
    1:1:void clear():810:810 -> clear
    1:1:boolean contains(java.lang.Object):798:798 -> contains
    1:1:java.util.Iterator iterator():785:785 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():788:788 -> iterator
    1:3:boolean remove(java.lang.Object):803:805 -> remove
    1:1:int size():793:793 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.h.J0$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,int):473:474 -> <init>
    1:1:int getIntValue():487:487 -> a
    1:3:boolean equals(java.lang.Object):524:526 -> equals
    1:1:java.lang.Object getKey():482:482 -> getKey
    1:1:java.lang.Integer getValue():506:506 -> getValue
    1:1:java.lang.Object getValue():468 -> getValue
    1:1:int hashCode():531:531 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):468:468 -> setValue
    2:2:java.lang.Integer setValue(java.lang.Integer):518:518 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):468 -> setValue
    3:4:int setValue(int):492:493 -> setValue
    3:4:java.lang.Integer setValue(java.lang.Integer):518 -> setValue
    3:4:java.lang.Object setValue(java.lang.Object):468 -> setValue
    5:5:java.lang.Integer setValue(java.lang.Integer):518:518 -> setValue
    5:5:java.lang.Object setValue(java.lang.Object):468 -> setValue
    1:1:java.lang.String toString():536:536 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.h.J0$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):679:679 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$1):679:679 -> <init>
    1:1:void clear():755:755 -> clear
    1:16:boolean contains(java.lang.Object):691:706 -> contains
    1:1:java.util.Iterator iterator():679:679 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():681:681 -> iterator
    1:29:boolean remove(java.lang.Object):713:741 -> remove
    1:1:int size():750:750 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.h.J0$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList wrapped -> e
    int last -> b
    int pos -> a
    boolean mustReturnNullKey -> d
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):541:564 -> <init>
    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$1):541:541 -> <init>
    1:18:int nextEntry():576:593 -> c
    19:19:int nextEntry():576:576 -> c
    1:1:boolean hasNext():572:572 -> hasNext
    1:5:void remove():630:634 -> remove
    6:11:void shiftKeys(int):608:613 -> remove
    6:11:void remove():634 -> remove
    12:13:void remove():641:642 -> remove
    14:23:void shiftKeys(int):616:625 -> remove
    14:23:void remove():634 -> remove
    24:24:void shiftKeys(int):618:618 -> remove
    24:24:void remove():634 -> remove
    25:26:void remove():637:638 -> remove
    27:27:void remove():630:630 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.h.J0$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):830:831 -> <init>
    1:1:java.lang.Integer next():842:842 -> next
    1:1:java.lang.Object next():829 -> next
    1:1:int nextInt():836:836 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap$FastSortedEntrySet -> com.android.tools.r8.u.a.a.a.h.K0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongMap -> com.android.tools.r8.u.a.a.a.h.N0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongMap$Entry -> com.android.tools.r8.u.a.a.a.h.L0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongMap$FastEntrySet -> com.android.tools.r8.u.a.a.a.h.M0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap -> com.android.tools.r8.u.a.a.a.h.P0:
    float f -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongMap$FastEntrySet entries -> i
    java.lang.Object[] key -> a
    long[] value -> b
    int maxFill -> f
    int size -> g
    com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongCollection values -> k
    int n -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keys -> j
    int mask -> c
    boolean containsNullKey -> d
    1:9:void <init>(int,float):91:99 -> <init>
    10:10:void <init>(int,float):93:93 -> <init>
    11:11:void <init>(int,float):92:92 -> <init>
    1:1:long access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap):49:49 -> a
    2:2:long access$400(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap,int):49:49 -> a
    3:18:int insert(java.lang.Object,long):248:263 -> a
    3:18:long put(java.lang.Object,long):270 -> a
    19:20:long put(java.lang.Object,long):272:273 -> a
    21:25:boolean containsValue(long):404:408 -> a
    1:12:long removeLong(java.lang.Object):353:364 -> b
    13:19:void rehash(int):961:967 -> b
    20:20:int realSize():205:205 -> b
    20:20:void rehash(int):968 -> b
    21:33:void rehash(int):969:981 -> b
    1:11:long getLong(java.lang.Object):371:381 -> c
    1:4:void clear():421:424 -> clear
    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap clone():999:1008 -> clone
    1:10:java.lang.Object clone():49 -> clone
    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap clone():1001:1001 -> clone
    11:11:java.lang.Object clone():49 -> clone
    1:10:boolean containsKey(java.lang.Object):388:397 -> containsKey
    1:2:long removeEntry(int):219:220 -> e
    3:8:void shiftKeys(int):333:338 -> e
    3:8:long removeEntry(int):221 -> e
    9:9:long removeEntry(int):222:222 -> e
    10:15:void shiftKeys(int):341:346 -> e
    10:15:long removeEntry(int):221 -> e
    16:16:void shiftKeys(int):343:343 -> e
    16:16:long removeEntry(int):221 -> e
    1:5:long removeNullEntry():227:231 -> h
    1:1:int realSize():205:205 -> hashCode
    1:1:int hashCode():1025 -> hashCode
    2:10:int hashCode():1026:1034 -> hashCode
    1:1:boolean isEmpty():434:434 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keySet():816:817 -> keySet
    1:2:java.util.Set keySet():49 -> keySet
    1:1:void putAll(java.util.Map):237:237 -> putAll
    2:3:void ensureCapacity(int):209:210 -> putAll
    2:3:void putAll(java.util.Map):237 -> putAll
    4:4:int size():429:429 -> putAll
    4:4:void putAll(java.util.Map):239 -> putAll
    5:5:void putAll(java.util.Map):239:239 -> putAll
    6:7:void tryCapacity(long):214:215 -> putAll
    6:7:void putAll(java.util.Map):239 -> putAll
    8:8:void putAll(java.util.Map):242:242 -> putAll
    1:1:int size():429:429 -> size
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongCollection values():848:869 -> values
    1:22:java.util.Collection values():49 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$1 -> com.android.tools.r8.u.a.a.a.h.O0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap):848:848 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.longs.LongIterator iterator():851:851 -> a
    1:1:boolean contains(long):861:861 -> b
    1:1:void clear():866:866 -> clear
    1:1:java.util.Iterator iterator():848:848 -> iterator
    1:1:int size():856:856 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$EntryIterator -> com.android.tools.r8.u.a.a.a.h.P0$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap this$0 -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$MapEntry entry -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap):654:654 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$1):654:654 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$MapEntry next():659:659 -> next
    1:1:java.lang.Object next():654 -> next
    1:2:void remove():664:665 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$KeyIterator -> com.android.tools.r8.u.a.a.a.h.P0$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap):775:776 -> <init>
    1:1:java.lang.Object next():781:781 -> next
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$KeySet -> com.android.tools.r8.u.a.a.a.h.P0$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap):785:785 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$1):785:785 -> <init>
    1:1:void clear():810:810 -> clear
    1:1:boolean contains(java.lang.Object):798:798 -> contains
    1:1:java.util.Iterator iterator():785:785 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():788:788 -> iterator
    1:3:boolean remove(java.lang.Object):803:805 -> remove
    1:1:int size():793:793 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$MapEntry -> com.android.tools.r8.u.a.a.a.h.P0$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap,int):473:474 -> <init>
    1:3:boolean equals(java.lang.Object):524:526 -> equals
    1:1:java.lang.Object getKey():482:482 -> getKey
    1:1:java.lang.Long getValue():506:506 -> getValue
    1:1:java.lang.Object getValue():468 -> getValue
    1:1:int hashCode():531:531 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):468:468 -> setValue
    2:2:java.lang.Long setValue(java.lang.Long):518:518 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):468 -> setValue
    3:4:long setValue(long):492:493 -> setValue
    3:4:java.lang.Long setValue(java.lang.Long):518 -> setValue
    3:4:java.lang.Object setValue(java.lang.Object):468 -> setValue
    5:5:java.lang.Long setValue(java.lang.Long):518:518 -> setValue
    5:5:java.lang.Object setValue(java.lang.Object):468 -> setValue
    1:1:java.lang.String toString():536:536 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$MapEntrySet -> com.android.tools.r8.u.a.a.a.h.P0$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap):679:679 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$1):679:679 -> <init>
    1:1:void clear():755:755 -> clear
    1:16:boolean contains(java.lang.Object):691:706 -> contains
    1:1:java.util.Iterator iterator():679:679 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():681:681 -> iterator
    1:29:boolean remove(java.lang.Object):713:741 -> remove
    1:1:int size():750:750 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$MapIterator -> com.android.tools.r8.u.a.a.a.h.P0$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList wrapped -> e
    int last -> b
    int pos -> a
    boolean mustReturnNullKey -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap this$0 -> f
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap):541:564 -> <init>
    25:25:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$1):541:541 -> <init>
    1:18:int nextEntry():576:593 -> c
    19:19:int nextEntry():576:576 -> c
    1:1:boolean hasNext():572:572 -> hasNext
    1:5:void remove():630:634 -> remove
    6:11:void shiftKeys(int):608:613 -> remove
    6:11:void remove():634 -> remove
    12:13:void remove():641:642 -> remove
    14:23:void shiftKeys(int):616:625 -> remove
    14:23:void remove():634 -> remove
    24:24:void shiftKeys(int):618:618 -> remove
    24:24:void remove():634 -> remove
    25:26:void remove():637:638 -> remove
    27:27:void remove():630:630 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap$ValueIterator -> com.android.tools.r8.u.a.a.a.h.P0$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2LongOpenHashMap):830:831 -> <init>
    1:1:java.lang.Long next():842:842 -> next
    1:1:java.lang.Object next():829 -> next
    1:1:long nextLong():836:836 -> nextLong
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList -> com.android.tools.r8.u.a.a.a.h.R0:
    java.lang.Object[] a -> b
    boolean wrapped -> a
    int size -> c
    1:4:void <init>(int):96:99 -> <init>
    5:5:void <init>(int):97:97 -> <init>
    1:6:void removeElements(int,int):453:458 -> a
    1:5:void add(int,java.lang.Object):299:303 -> add
    6:7:boolean add(java.lang.Object):309:310 -> add
    1:2:void clear():365:366 -> clear
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList clone():553:555 -> clone
    1:3:java.lang.Object clone():57 -> clone
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):497:498 -> g
    1:2:java.lang.Object get(int):317:318 -> get
    3:3:java.lang.Object get(int):317:317 -> get
    1:7:void grow(int):285:291 -> h
    1:2:int indexOf(java.lang.Object):323:324 -> indexOf
    1:1:boolean isEmpty():385:385 -> isEmpty
    1:2:int lastIndexOf(java.lang.Object):330:331 -> lastIndexOf
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):497:498 -> listIterator
    1:2:java.util.ListIterator listIterator(int):57 -> listIterator
    1:5:java.lang.Object remove(int):337:341 -> remove
    6:6:java.lang.Object remove(int):337:337 -> remove
    7:9:boolean remove(java.lang.Object):348:350 -> remove
    1:7:boolean removeAll(java.util.Collection):485:491 -> removeAll
    1:3:java.lang.Object set(int,java.lang.Object):357:359 -> set
    4:4:java.lang.Object set(int,java.lang.Object):357:357 -> set
    1:1:int size():372:372 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList$1 -> com.android.tools.r8.u.a.a.a.h.Q0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList this$0 -> d
    int last -> b
    int val$index -> c
    int pos -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList,int):498:499 -> <init>
    1:2:void add(java.lang.Object):528:529 -> add
    1:1:boolean hasNext():502:502 -> hasNext
    1:1:boolean hasPrevious():506:506 -> hasPrevious
    1:2:java.lang.Object next():510:511 -> next
    3:3:java.lang.Object next():510:510 -> next
    1:1:int nextIndex():520:520 -> nextIndex
    1:2:java.lang.Object previous():515:516 -> previous
    3:3:java.lang.Object previous():515:515 -> previous
    1:1:int previousIndex():524:524 -> previousIndex
    1:9:void remove():538:546 -> remove
    10:10:void remove():538:538 -> remove
    1:2:void set(java.lang.Object):533:534 -> set
    3:3:void set(java.lang.Object):533:533 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet -> com.android.tools.r8.u.a.a.a.h.T0:
    int size -> b
    1:4:void <init>(java.lang.Object[],int):104:107 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet):29:29 -> a
    2:3:int findKey(java.lang.Object):111:112 -> a
    1:9:boolean add(java.lang.Object):166:174 -> add
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet):29:29 -> b
    1:1:java.lang.Object[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet):29:29 -> c
    1:2:void clear():180:181 -> clear
    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet clone():204:208 -> clone
    1:5:java.lang.Object clone():29 -> clone
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet clone():206:206 -> clone
    6:6:java.lang.Object clone():29 -> clone
    1:1:boolean contains(java.lang.Object):144:144 -> contains
    1:1:boolean isEmpty():186:186 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():119:119 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():119:119 -> iterator
    2:2:java.util.Iterator iterator():29 -> iterator
    1:7:boolean remove(java.lang.Object):154:160 -> remove
    1:1:int size():149:149 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet$1 -> com.android.tools.r8.u.a.a.a.h.S0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet this$0 -> b
    int next -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet):119:120 -> <init>
    1:1:boolean hasNext():124:124 -> hasNext
    1:2:java.lang.Object next():129:130 -> next
    3:3:java.lang.Object next():129:129 -> next
    1:3:void remove():135:137 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection -> com.android.tools.r8.u.a.a.a.h.U0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollections -> com.android.tools.r8.u.a.a.a.h.X0:
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection):383:383 -> a
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollections$EmptyCollection -> com.android.tools.r8.u.a.a.a.h.V0:
    1:1:void <init>():39:39 -> <init>
    1:1:boolean addAll(java.util.Collection):81:81 -> addAll
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():55:55 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():38 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():55:55 -> iterator
    2:2:java.util.Iterator iterator():38 -> iterator
    1:1:boolean removeAll(java.util.Collection):86:86 -> removeAll
    1:1:boolean retainAll(java.util.Collection):91:91 -> retainAll
    1:1:java.lang.Object[] toArray():49:49 -> toArray
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollections$UnmodifiableCollection -> com.android.tools.r8.u.a.a.a.h.W0:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection collection -> a
    1:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection):276:278 -> <init>
    4:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection):277:277 -> <init>
    1:1:boolean add(java.lang.Object):283:283 -> add
    1:1:boolean addAll(java.util.Collection):344:344 -> addAll
    1:1:void clear():324:324 -> clear
    1:1:boolean contains(java.lang.Object):303:303 -> contains
    1:1:boolean containsAll(java.util.Collection):339:339 -> containsAll
    1:1:boolean equals(java.lang.Object):370:370 -> equals
    1:1:int hashCode():364:364 -> hashCode
    1:1:boolean isEmpty():298:298 -> isEmpty
    1:1:java.util.Iterator iterator():272:272 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():307:307 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterators.unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator):762:762 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():307 -> iterator
    1:1:boolean remove(java.lang.Object):288:288 -> remove
    1:1:boolean removeAll(java.util.Collection):349:349 -> removeAll
    1:1:boolean retainAll(java.util.Collection):354:354 -> retainAll
    1:1:int size():293:293 -> size
    1:1:java.lang.Object[] toArray(java.lang.Object[]):329:329 -> toArray
    2:2:java.lang.Object[] toArray():334:334 -> toArray
    1:1:java.lang.String toString():359:359 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList -> com.android.tools.r8.u.a.a.a.h.Y0:
    void removeElements(int,int) -> a
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet -> com.android.tools.r8.u.a.a.a.h.a1:
    java.lang.Object[] key -> a
    float f -> g
    int size -> f
    int n -> d
    int maxFill -> e
    int mask -> b
    boolean containsNull -> c
    1:8:void <init>(int,float):77:84 -> <init>
    9:9:void <init>(int,float):79:79 -> <init>
    10:10:void <init>(int,float):78:78 -> <init>
    1:14:boolean add(java.lang.Object):268:281 -> add
    1:1:boolean addAll(java.util.Collection):255:255 -> addAll
    2:3:void ensureCapacity(int):243:244 -> addAll
    2:3:boolean addAll(java.util.Collection):255 -> addAll
    4:4:int size():380:380 -> addAll
    4:4:boolean addAll(java.util.Collection):258 -> addAll
    5:5:boolean addAll(java.util.Collection):258:258 -> addAll
    6:7:void tryCapacity(long):248:249 -> addAll
    6:7:boolean addAll(java.util.Collection):258 -> addAll
    8:8:boolean addAll(java.util.Collection):261:261 -> addAll
    1:5:void rehash(int):607:611 -> c
    6:6:int realSize():239:239 -> c
    6:6:void rehash(int):612 -> c
    7:16:void rehash(int):613:622 -> c
    1:4:void clear():372:375 -> clear
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet clone():640:645 -> clone
    1:6:java.lang.Object clone():40 -> clone
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet clone():642:642 -> clone
    7:7:java.lang.Object clone():40 -> clone
    1:9:boolean contains(java.lang.Object):350:358 -> contains
    1:1:boolean removeEntry(int):314:314 -> d
    2:7:void shiftKeys(int):297:302 -> d
    2:7:boolean removeEntry(int):315 -> d
    8:8:boolean removeEntry(int):316:316 -> d
    9:13:void shiftKeys(int):305:309 -> d
    9:13:boolean removeEntry(int):315 -> d
    14:14:void shiftKeys(int):307:307 -> d
    14:14:boolean removeEntry(int):315 -> d
    1:1:int realSize():239:239 -> hashCode
    1:1:int hashCode():662 -> hashCode
    2:4:int hashCode():663:665 -> hashCode
    1:1:boolean isEmpty():385:385 -> isEmpty
    1:1:java.util.Iterator iterator():40:40 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():515:515 -> iterator
    1:1:boolean remove(java.lang.Object):332:332 -> remove
    2:5:boolean removeNullEntry():321:324 -> remove
    2:5:boolean remove(java.lang.Object):332 -> remove
    6:13:boolean remove(java.lang.Object):336:343 -> remove
    1:1:int size():380:380 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet$1 -> com.android.tools.r8.u.a.a.a.h.Z0:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet$SetIterator -> com.android.tools.r8.u.a.a.a.h.a1$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet this$0 -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList wrapped -> e
    int last -> b
    int pos -> a
    boolean mustReturnNull -> d
    1:21:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet):414:434 -> <init>
    22:22:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet,com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet$1):414:414 -> <init>
    1:1:boolean hasNext():442:442 -> hasNext
    1:15:java.lang.Object next():446:460 -> next
    16:16:java.lang.Object next():446:446 -> next
    1:5:void remove():496:500 -> remove
    6:11:void shiftKeys(int):475:480 -> remove
    6:11:void remove():500 -> remove
    12:13:void remove():507:508 -> remove
    14:22:void shiftKeys(int):483:491 -> remove
    14:22:void remove():500 -> remove
    23:23:void shiftKeys(int):485:485 -> remove
    23:23:void remove():500 -> remove
    24:25:void remove():503:504 -> remove
    26:26:void remove():496:496 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet -> com.android.tools.r8.u.a.a.a.h.b1:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSets -> com.android.tools.r8.u.a.a.a.h.d1:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSets$EmptySet EMPTY_SET -> a
    1:1:void <clinit>():70:70 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSets$EmptySet -> com.android.tools.r8.u.a.a.a.h.c1:
    1:1:void <init>():42:42 -> <init>
    1:1:java.lang.Object clone():52:52 -> clone
    1:1:boolean equals(java.lang.Object):58:58 -> equals
    1:1:boolean remove(java.lang.Object):47:47 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet -> com.android.tools.r8.u.a.a.a.h.e1:
com.android.tools.r8.jar.CfApplicationWriter -> com.android.tools.r8.v.b:
    com.android.tools.r8.graph.DexApplication application -> a
    com.android.tools.r8.graph.AppView appView -> b
    com.android.tools.r8.graph.GraphLense graphLense -> c
    com.android.tools.r8.utils.InternalOptions options -> e
    com.android.tools.r8.naming.NamingLens namingLens -> d
    com.android.tools.r8.naming.ProguardMapSupplier proguardMapSupplier -> g
    boolean $assertionsDisabled -> h
    com.android.tools.r8.dex.Marker marker -> f
    1:1:void <clinit>():62:62 -> <clinit>
    1:9:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.dex.Marker,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.naming.ProguardMapSupplier):86:94 -> <init>
    1:1:int com.android.tools.r8.graph.ParameterAnnotationsList.getAnnotableParameterCount():66:66 -> a
    1:1:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):354 -> a
    2:2:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):353:353 -> a
    3:3:int com.android.tools.r8.graph.ParameterAnnotationsList.getAnnotableParameterCount():66:66 -> a
    3:3:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):356 -> a
    4:11:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):355:362 -> a
    12:12:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):360:360 -> a
    13:17:void write(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):98:102 -> a
    18:18:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):134:134 -> a
    19:19:void com.android.tools.r8.org.objectweb.asm.ClassWriter.<init>(int):209:209 -> a
    19:19:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):134 -> a
    20:22:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):135:137 -> a
    23:28:int getClassFileVersion(com.android.tools.r8.graph.DexProgramClass):216:221 -> a
    23:28:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):138 -> a
    29:43:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):139:153 -> a
    44:55:com.android.tools.r8.com.google.common.collect.ImmutableMap getAnnotationDefaults(com.android.tools.r8.graph.DexAnnotationSet):254:265 -> a
    44:55:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):153 -> a
    56:98:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):155:197 -> a
    99:103:void com.android.tools.r8.utils.ExceptionUtils.withConsumeResourceHandler(com.android.tools.r8.utils.Reporter,java.util.function.Consumer):37:41 -> a
    99:103:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):197 -> a
    104:104:void lambda$writeClass$0(com.android.tools.r8.ClassFileConsumer,byte[],java.lang.String,com.android.tools.r8.DiagnosticsHandler):198:198 -> a
    105:108:int getClassFileVersion(com.android.tools.r8.graph.DexEncodedMethod):202:205 -> a
    109:109:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    109:109:int getClassFileVersion(com.android.tools.r8.graph.DexEncodedMethod):206 -> a
    110:110:int getClassFileVersion(com.android.tools.r8.graph.DexEncodedMethod):206:206 -> a
    111:118:int getClassFileVersion(com.android.tools.r8.graph.DexEncodedMethod):205:212 -> a
    119:126:com.android.tools.r8.graph.DexValue getSystemAnnotationValue(com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexType):227:234 -> a
    127:139:java.lang.String getSignature(com.android.tools.r8.graph.DexAnnotationSet):238:250 -> a
    140:143:void writeField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.org.objectweb.asm.ClassWriter):291:294 -> a
    144:147:java.lang.Object getStaticValue(com.android.tools.r8.graph.DexEncodedField):284:287 -> a
    144:147:void writeField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.org.objectweb.asm.ClassWriter):295 -> a
    148:150:void writeField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.org.objectweb.asm.ClassWriter):296:298 -> a
    151:155:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):306:310 -> a
    156:165:java.lang.String[] getExceptions(com.android.tools.r8.graph.DexAnnotationSet):269:278 -> a
    156:165:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):310 -> a
    166:174:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):311:319 -> a
    175:188:void writeMethodParametersAnnotation(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.DexAnnotation[]):329:342 -> a
    175:188:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):319 -> a
    189:191:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):320:322 -> a
    192:192:void writeCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.MethodVisitor,int):440:440 -> a
    192:192:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):323 -> a
    193:193:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):325:325 -> a
    194:194:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor lambda$writeParameterAnnotations$1(com.android.tools.r8.org.objectweb.asm.MethodVisitor,int,java.lang.String,boolean):361:361 -> a
    195:204:void writeAnnotations(com.android.tools.r8.jar.CfApplicationWriter$AnnotationConsumer,com.android.tools.r8.graph.DexAnnotation[]):371:380 -> a
    205:210:void writeAnnotations(com.android.tools.r8.jar.CfApplicationWriter$AnnotationConsumer,com.android.tools.r8.graph.DexAnnotation[]):379:384 -> a
    211:212:void writeAnnotation(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,com.android.tools.r8.graph.DexEncodedAnnotation):390:391 -> a
    213:217:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):396:400 -> a
    218:236:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):399:417 -> a
    237:256:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):416:435 -> a
    257:257:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):433:433 -> a
    258:258:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):425:425 -> a
    259:259:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):423:423 -> a
    260:260:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):421:421 -> a
    261:261:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):419:419 -> a
    1:9:void writeApplication(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):108:116 -> b
    10:10:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> b
    10:10:void writeApplication(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):117 -> b
    11:15:void writeApplication(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):117:121 -> b
    16:27:void writeApplication(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):119:130 -> b
    28:28:void writeApplication(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):124:124 -> b
com.android.tools.r8.jar.CfApplicationWriter$AnnotationConsumer -> com.android.tools.r8.v.a:
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visit(java.lang.String,boolean) -> a
com.android.tools.r8.jetbrains.kotlin.DeprecationLevel -> com.android.tools.r8.w.a.a:
    com.android.tools.r8.jetbrains.kotlin.DeprecationLevel ERROR -> b
    com.android.tools.r8.jetbrains.kotlin.DeprecationLevel WARNING -> a
    com.android.tools.r8.jetbrains.kotlin.DeprecationLevel HIDDEN -> c
    com.android.tools.r8.jetbrains.kotlin.DeprecationLevel[] $VALUES -> d
    1:1:void <init>(java.lang.String,int):63:63 -> <init>
com.android.tools.r8.jetbrains.kotlin.KotlinNullPointerException -> com.android.tools.r8.w.a.b:
    1:1:void <init>():9:9 -> <init>
com.android.tools.r8.jetbrains.kotlin.Lazy -> com.android.tools.r8.w.a.c:
com.android.tools.r8.jetbrains.kotlin.LazyKt -> com.android.tools.r8.w.a.d:
    1:38:com.android.tools.r8.jetbrains.kotlin.Lazy com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyJVMKt.lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0:37 -> a
    1:38:com.android.tools.r8.jetbrains.kotlin.Lazy lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0 -> a
    39:39:com.android.tools.r8.jetbrains.kotlin.Lazy com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyJVMKt.lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):36:36 -> a
    39:39:com.android.tools.r8.jetbrains.kotlin.Lazy lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0 -> a
    40:40:com.android.tools.r8.jetbrains.kotlin.Lazy com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyJVMKt.lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):35:35 -> a
    40:40:com.android.tools.r8.jetbrains.kotlin.Lazy lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0 -> a
    41:41:void com.android.tools.r8.jetbrains.kotlin.SynchronizedLazyImpl.<init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0,java.lang.Object,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):55:55 -> a
    41:41:com.android.tools.r8.jetbrains.kotlin.Lazy com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyJVMKt.lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):35 -> a
    41:41:com.android.tools.r8.jetbrains.kotlin.Lazy lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0 -> a
    42:63:com.android.tools.r8.jetbrains.kotlin.Lazy com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyJVMKt.lazy(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0:21 -> a
    42:63:com.android.tools.r8.jetbrains.kotlin.Lazy lazy(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0 -> a
    64:64:void com.android.tools.r8.jetbrains.kotlin.SynchronizedLazyImpl.<init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0,java.lang.Object,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):55:55 -> a
    64:64:com.android.tools.r8.jetbrains.kotlin.Lazy com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyJVMKt.lazy(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):21 -> a
    64:64:com.android.tools.r8.jetbrains.kotlin.Lazy lazy(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0 -> a
com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyKt -> com.android.tools.r8.w.a.e:
com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode -> com.android.tools.r8.w.a.f:
    com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode PUBLICATION -> b
    com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode NONE -> c
    com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode SYNCHRONIZED -> a
    com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode[] $VALUES -> d
    1:1:void <init>(java.lang.String,int):49:49 -> <init>
com.android.tools.r8.jetbrains.kotlin.NoWhenBranchMatchedException -> com.android.tools.r8.w.a.g:
    1:1:void <init>():9:9 -> <init>
com.android.tools.r8.jetbrains.kotlin.Pair -> com.android.tools.r8.w.a.h:
    java.lang.Object second -> b
    java.lang.Object first -> a
    1:1:void <init>(java.lang.Object,java.lang.Object):26:26 -> <init>
    java.lang.Object component1() -> a
    java.lang.Object component2() -> b
    1:1:java.lang.Object getFirst():27:27 -> c
    1:1:java.lang.Object getSecond():28:28 -> d
    1:1:java.lang.String toString():34:34 -> toString
com.android.tools.r8.jetbrains.kotlin.SafePublicationLazyImpl -> com.android.tools.r8.w.a.i:
    java.util.concurrent.atomic.AtomicReferenceFieldUpdater valueUpdater -> c
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0 initializer -> a
    java.lang.Object _value -> b
    1:1:void <clinit>():124:124 -> <clinit>
    1:3:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):90:92 -> <init>
    1:17:java.lang.Object getValue():98:114 -> getValue
    1:1:boolean isInitialized():117:117 -> toString
    1:1:java.lang.String toString():119 -> toString
    2:2:java.lang.String toString():119:119 -> toString
com.android.tools.r8.jetbrains.kotlin.SynchronizedLazyImpl -> com.android.tools.r8.w.a.j:
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0 initializer -> a
    java.lang.Object _value -> b
    java.lang.Object lock -> c
    1:5:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0,java.lang.Object):55:59 -> <init>
    1:14:java.lang.Object getValue():63:76 -> getValue
    15:20:java.lang.Object getValue():69:74 -> getValue
    21:21:java.lang.Object getValue():69:69 -> getValue
    1:1:boolean isInitialized():82:82 -> toString
    1:1:java.lang.String toString():84 -> toString
    2:2:java.lang.String toString():84:84 -> toString
com.android.tools.r8.jetbrains.kotlin.TypeCastException -> com.android.tools.r8.w.a.k:
    1:1:void <init>(java.lang.String):11:11 -> <init>
com.android.tools.r8.jetbrains.kotlin.UNINITIALIZED_VALUE -> com.android.tools.r8.w.a.l:
    com.android.tools.r8.jetbrains.kotlin.UNINITIALIZED_VALUE INSTANCE -> a
    1:1:void <clinit>():71:71 -> <clinit>
    1:1:void <init>():71:71 -> <init>
com.android.tools.r8.jetbrains.kotlin.UninitializedPropertyAccessException -> com.android.tools.r8.w.a.m:
    1:1:void <init>(java.lang.String):11:11 -> <init>
com.android.tools.r8.jetbrains.kotlin.Unit -> com.android.tools.r8.w.a.n:
    com.android.tools.r8.jetbrains.kotlin.Unit INSTANCE -> a
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>():22:22 -> <init>
com.android.tools.r8.jetbrains.kotlin.UnsafeLazyImpl -> com.android.tools.r8.w.a.o:
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0 initializer -> a
    java.lang.Object _value -> b
    1:3:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):74:76 -> <init>
    1:3:java.lang.Object getValue():80:82 -> getValue
    4:8:java.lang.Object getValue():81:85 -> getValue
    1:1:boolean isInitialized():88:88 -> toString
    1:1:java.lang.String toString():90 -> toString
    2:2:java.lang.String toString():90:90 -> toString
com.android.tools.r8.jetbrains.kotlin._Assertions -> com.android.tools.r8.w.a.p:
    boolean ENABLED -> a
    1:1:void <clinit>():14:14 -> <clinit>
com.android.tools.r8.jetbrains.kotlin.collections.AbstractCollection -> com.android.tools.r8.w.a.q.b:
    1:1:void <init>():13:13 -> <init>
    int getSize() -> a
    1:2:boolean contains(java.lang.Object):40:41 -> contains
    3:3:boolean contains(java.lang.Object):17:17 -> contains
    1:2:boolean containsAll(java.util.Collection):43:44 -> containsAll
    3:3:boolean containsAll(java.util.Collection):20:20 -> containsAll
    1:1:int size():13:13 -> isEmpty
    1:1:boolean isEmpty():22 -> isEmpty
    1:1:int size():13:13 -> size
    1:1:java.lang.Object[] toArray():31:31 -> toArray
    2:2:java.lang.Object[] toArray(java.lang.Object[]):37:37 -> toArray
    1:1:java.lang.String toString():24:24 -> toString
com.android.tools.r8.jetbrains.kotlin.collections.AbstractCollection$toString$1 -> com.android.tools.r8.w.a.q.a:
    com.android.tools.r8.jetbrains.kotlin.collections.AbstractCollection this$0 -> a
    1:1:java.lang.CharSequence invoke(java.lang.Object):25:25 -> a
    1:1:java.lang.Object invoke(java.lang.Object):13 -> a
com.android.tools.r8.jetbrains.kotlin.collections.AbstractList -> com.android.tools.r8.w.a.q.d:
    com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion Companion -> a
    1:1:void <init>():20:20 -> <init>
    1:3:boolean equals(java.lang.Object):60:62 -> equals
    4:144:boolean com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion.orderedEquals$kotlin_stdlib(java.util.Collection,java.util.Collection):0:140 -> equals
    4:144:boolean equals(java.lang.Object):62 -> equals
    1:130:int com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion.orderedHashCode$kotlin_stdlib(java.util.Collection):0:129 -> hashCode
    1:130:int hashCode():68 -> hashCode
    1:1:int indexOf(java.lang.Object):149:149 -> indexOf
    2:2:int indexOf(java.lang.Object):26:26 -> indexOf
    1:1:java.util.Iterator iterator():24:24 -> iterator
    1:3:int lastIndexOf(java.lang.Object):155:157 -> lastIndexOf
    4:134:int lastIndexOf(java.lang.Object):28:158 -> lastIndexOf
    1:1:java.util.ListIterator listIterator():30:30 -> listIterator
    2:2:java.util.ListIterator listIterator(int):32:32 -> listIterator
    1:1:java.util.List subList(int,int):34:34 -> subList
com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion -> com.android.tools.r8.w.a.q.c:
    1:1:void <init>():104:104 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):104:104 -> <init>
com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$IteratorImpl -> com.android.tools.r8.w.a.q.d$a:
    com.android.tools.r8.jetbrains.kotlin.collections.AbstractList this$0 -> b
    int index -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList):70:70 -> <init>
    1:1:void setIndex(int):72:72 -> a
    1:1:int getIndex():72:72 -> c
    1:1:boolean hasNext():74:74 -> hasNext
    2:2:int com.android.tools.r8.jetbrains.kotlin.collections.AbstractCollection.size():13:13 -> hasNext
    2:2:boolean hasNext():74 -> hasNext
    1:2:java.lang.Object next():77:78 -> next
    3:3:java.lang.Object next():77:77 -> next
com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$ListIteratorImpl -> com.android.tools.r8.w.a.q.d$b:
    com.android.tools.r8.jetbrains.kotlin.collections.AbstractList this$0 -> c
    1:5:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList,int):85:89 -> <init>
    6:6:void com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion.checkPositionIndex$kotlin_stdlib(int,int):113:113 -> <init>
    6:6:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList,int):88 -> <init>
    1:1:boolean hasPrevious():92:92 -> hasPrevious
    1:1:int nextIndex():94:94 -> nextIndex
    1:2:java.lang.Object previous():97:98 -> previous
    3:3:java.lang.Object previous():97:97 -> previous
    1:1:int previousIndex():101:101 -> previousIndex
com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$SubList -> com.android.tools.r8.w.a.q.e:
    com.android.tools.r8.jetbrains.kotlin.collections.AbstractList list -> c
    int fromIndex -> d
    int _size -> b
    1:6:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList,int,int):36:41 -> <init>
    7:7:void com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion.checkRangeIndexes$kotlin_stdlib(int,int,int):122:122 -> <init>
    7:7:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList,int,int):40 -> <init>
    8:8:void com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion.checkRangeIndexes$kotlin_stdlib(int,int,int):119:119 -> <init>
    8:8:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList,int,int):40 -> <init>
    1:1:int getSize():50:50 -> a
    1:3:java.lang.Object get(int):45:47 -> get
    4:4:void com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion.checkElementIndex$kotlin_stdlib(int,int):107:107 -> get
    4:4:java.lang.Object get(int):45 -> get
com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt -> com.android.tools.r8.w.a.q.f:
    1:150:boolean com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__MutableCollectionsKt.addAll(java.util.Collection,java.lang.Object[]):0:149 -> a
    1:150:boolean com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.addAll(java.util.Collection,java.lang.Object[]):0 -> a
    151:313:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(int[]):0:162 -> a
    151:313:java.util.List asList(int[]):0 -> a
    314:314:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):0:0 -> a
    314:314:java.util.List asList(java.lang.Object[]):0 -> a
    315:315:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysUtilJVM.asList(java.lang.Object[]):13:13 -> a
    315:315:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):127 -> a
    315:315:java.util.List asList(java.lang.Object[]):0 -> a
    316:316:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):127:127 -> a
    316:316:java.util.List asList(java.lang.Object[]):0 -> a
    317:356:int com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__IterablesKt.collectionSizeOrDefault(java.lang.Iterable,int):0:39 -> a
    317:356:int com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.collectionSizeOrDefault(java.lang.Iterable,int):0 -> a
    357:357:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getOrNull(int[],int):0:0 -> a
    357:357:java.lang.Integer getOrNull(int[],int):0 -> a
    358:6917:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getLastIndex(int[]):0:6559 -> a
    358:6917:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getOrNull(int[],int):1231 -> a
    358:6917:java.lang.Integer getOrNull(int[],int):0 -> a
    6918:6918:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getOrNull(int[],int):1231:1231 -> a
    6918:6918:java.lang.Integer getOrNull(int[],int):0 -> a
    6919:9235:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:2316 -> a
    6919:9235:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):2315 -> a
    6919:9235:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
    9236:11539:java.lang.Appendable com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinTo(java.lang.Iterable,java.lang.Appendable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:2303 -> a
    9236:11539:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):2316 -> a
    9236:11539:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):2315 -> a
    9236:11539:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
    11540:11540:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):2316:2316 -> a
    11540:11540:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):2315 -> a
    11540:11540:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
    11541:12712:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):0:1171 -> a
    11541:12712:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    12713:13906:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.util.Collection):0:1193 -> a
    12713:13906:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1174 -> a
    12713:13906:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    13907:13907:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1173:1173 -> a
    13907:13907:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    13908:13908:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():69:69 -> a
    13908:13908:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> a
    13908:13908:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1172 -> a
    13908:13908:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    13909:13909:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1177:1177 -> a
    13909:13909:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    13910:14132:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.optimizeReadOnlyList(java.util.List):0:222 -> a
    13910:14132:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1177 -> a
    13910:14132:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    14133:14133:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():69:69 -> a
    14133:14133:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> a
    14133:14133:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.optimizeReadOnlyList(java.util.List):221 -> a
    14133:14133:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1177 -> a
    14133:14133:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    14134:14498:void com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.putAll(java.util.Map,java.lang.Iterable):0:364 -> a
    14134:14498:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.toMap(java.lang.Iterable,java.util.Map):508 -> a
    14499:14499:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsJVMKt.listOf(java.lang.Object):19:19 -> a
    14500:14500:int com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.mapCapacity(int):134:134 -> a
    14500:14500:int com.android.tools.r8.jetbrains.kotlin.collections.MapsKt.mapCapacity(int):0 -> a
    14501:14501:void com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.throwIndexOverflow():388:388 -> a
    14501:14501:void com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.throwIndexOverflow():0 -> a
    14502:14503:java.util.Collection com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toCollection(java.lang.Iterable,java.util.Collection):1153:1154 -> a
    1:76:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.listOf(java.lang.Object[]):0:75 -> b
    1:76:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.listOf(java.lang.Object[]):0 -> b
    77:77:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():69:69 -> b
    77:77:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> b
    77:77:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.listOf(java.lang.Object[]):75 -> b
    77:77:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.listOf(java.lang.Object[]):0 -> b
    78:576:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.toMap(java.lang.Iterable):0:498 -> b
    78:576:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt.toMap(java.lang.Iterable):0 -> b
    577:577:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.toMap(java.lang.Iterable):497:497 -> b
    577:577:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt.toMap(java.lang.Iterable):0 -> b
    578:605:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsJVMKt.mapOf(com.android.tools.r8.jetbrains.kotlin.Pair):0:27 -> b
    578:605:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.toMap(java.lang.Iterable):497 -> b
    578:605:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt.toMap(java.lang.Iterable):0 -> b
    606:606:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.emptyMap():39:39 -> b
    606:606:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.toMap(java.lang.Iterable):496 -> b
    606:606:java.util.Map com.android.tools.r8.jetbrains.kotlin.collections.MapsKt.toMap(java.lang.Iterable):0 -> b
    607:608:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.indexOf(int[],int):1317:1318 -> b
    1:2:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.lang.Iterable):1184:1185 -> c
    3:1196:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.util.Collection):0:1193 -> c
    3:1196:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.lang.Iterable):1185 -> c
    1197:1197:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.lang.Iterable):1186:1186 -> c
    1:1207:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toSet(java.lang.Iterable):0:1206 -> d
    1:1207:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toSet(java.lang.Iterable):0 -> d
    1208:1208:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toSet(java.lang.Iterable):1205:1205 -> d
    1208:1208:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toSet(java.lang.Iterable):0 -> d
    1209:1209:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.SetsKt__SetsJVMKt.setOf(java.lang.Object):16:16 -> d
    1209:1209:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toSet(java.lang.Iterable):1205 -> d
    1209:1209:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toSet(java.lang.Iterable):0 -> d
    1210:1210:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.SetsKt__SetsKt.emptySet():34:34 -> d
    1210:1210:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.SetsKt.emptySet():0 -> d
    1210:1210:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toSet(java.lang.Iterable):1204 -> d
    1210:1210:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toSet(java.lang.Iterable):0 -> d
    1:1388:java.lang.Iterable com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.withIndex(java.lang.Iterable):0:1387 -> e
    1:1388:java.lang.Iterable com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.withIndex(java.lang.Iterable):0 -> e
com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt__ArraysKt -> com.android.tools.r8.w.a.q.g:
com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt$asList$3 -> com.android.tools.r8.w.a.q.h:
    int[] $this_asList -> b
    1:1:void <init>(int[]):162:162 -> <init>
    1:1:int getSize():163:163 -> a
    1:1:boolean contains(int):165:165 -> b
    2:405:boolean com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.contains(int[],int):0:403 -> b
    2:405:boolean contains(int):165 -> b
    1:1:boolean contains(java.lang.Object):162:162 -> contains
    1:1:java.lang.Integer get(int):166:166 -> get
    1:1:java.lang.Object get(int):162 -> get
    1:1:int indexOf(java.lang.Object):162:162 -> indexOf
    2:2:int indexOf(int):167:167 -> indexOf
    2:2:int indexOf(java.lang.Object):162 -> indexOf
    1:1:boolean isEmpty():164:164 -> isEmpty
    1:1:int lastIndexOf(java.lang.Object):162:162 -> lastIndexOf
    2:2:int lastIndexOf(int):168:168 -> lastIndexOf
    2:2:int lastIndexOf(java.lang.Object):162 -> lastIndexOf
    3:3:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):0:0 -> lastIndexOf
    3:3:int lastIndexOf(int):168 -> lastIndexOf
    3:3:int lastIndexOf(java.lang.Object):162 -> lastIndexOf
    4:6365:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getIndices(int[]):0:6361 -> lastIndexOf
    4:6365:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):1847 -> lastIndexOf
    4:6365:int lastIndexOf(int):168 -> lastIndexOf
    4:6365:int lastIndexOf(java.lang.Object):162 -> lastIndexOf
    6366:12925:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getLastIndex(int[]):0:6559 -> lastIndexOf
    6366:12925:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getIndices(int[]):6361 -> lastIndexOf
    6366:12925:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):1847 -> lastIndexOf
    6366:12925:int lastIndexOf(int):168 -> lastIndexOf
    6366:12925:int lastIndexOf(java.lang.Object):162 -> lastIndexOf
    12926:12926:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getIndices(int[]):6361:6361 -> lastIndexOf
    12926:12926:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):1847 -> lastIndexOf
    12926:12926:int lastIndexOf(int):168 -> lastIndexOf
    12926:12926:int lastIndexOf(java.lang.Object):162 -> lastIndexOf
    12927:13792:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.reversed(java.lang.Iterable):0:865 -> lastIndexOf
    12927:13792:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):1847 -> lastIndexOf
    12927:13792:int lastIndexOf(int):168 -> lastIndexOf
    12927:13792:int lastIndexOf(java.lang.Object):162 -> lastIndexOf
    13793:13830:void com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsJvmKt.reverse(java.util.List):0:37 -> lastIndexOf
    13793:13830:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.reversed(java.lang.Iterable):866 -> lastIndexOf
    13793:13830:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):1847 -> lastIndexOf
    13793:13830:int lastIndexOf(int):168 -> lastIndexOf
    13793:13830:int lastIndexOf(java.lang.Object):162 -> lastIndexOf
    13831:13832:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):1847:1848 -> lastIndexOf
    13831:13832:int lastIndexOf(int):168 -> lastIndexOf
    13831:13832:int lastIndexOf(java.lang.Object):162 -> lastIndexOf
com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt -> com.android.tools.r8.w.a.q.i:
com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt$withIndex$1 -> com.android.tools.r8.w.a.q.j:
    java.lang.Iterable $this_withIndex -> a
    1:1:java.util.Iterator invoke():1387:1387 -> a
    1:1:java.lang.Object invoke():0 -> a
com.android.tools.r8.jetbrains.kotlin.collections.EmptyIterator -> com.android.tools.r8.w.a.q.k:
    com.android.tools.r8.jetbrains.kotlin.collections.EmptyIterator INSTANCE -> a
    1:1:void <clinit>():13:13 -> <clinit>
    1:1:void <init>():13:13 -> <init>
    1:1:java.lang.Void next():18:18 -> next
    1:1:java.lang.Object next():13 -> next
    1:1:java.lang.Void previous():19:19 -> previous
    1:1:java.lang.Object previous():13 -> previous
com.android.tools.r8.jetbrains.kotlin.collections.EmptyList -> com.android.tools.r8.w.a.q.l:
    com.android.tools.r8.jetbrains.kotlin.collections.EmptyList INSTANCE -> a
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>():22:22 -> <init>
    1:1:boolean contains(java.lang.Object):22:22 -> contains
    2:2:boolean contains(java.lang.Void):0:0 -> contains
    2:2:boolean contains(java.lang.Object):22 -> contains
    1:1:boolean containsAll(java.util.Collection):32:32 -> containsAll
    1:1:boolean equals(java.lang.Object):25:25 -> equals
    1:1:java.lang.Void get(int):34:34 -> get
    1:1:java.lang.Object get(int):22 -> get
    1:1:int indexOf(java.lang.Object):22:22 -> indexOf
    2:2:int indexOf(java.lang.Void):0:0 -> indexOf
    2:2:int indexOf(java.lang.Object):22 -> indexOf
    1:1:java.util.Iterator iterator():38:38 -> iterator
    1:1:int lastIndexOf(java.lang.Object):22:22 -> lastIndexOf
    2:2:int lastIndexOf(java.lang.Void):0:0 -> lastIndexOf
    2:2:int lastIndexOf(java.lang.Object):22 -> lastIndexOf
    1:1:java.util.ListIterator listIterator():39:39 -> listIterator
    2:2:java.util.ListIterator listIterator(int):42:42 -> listIterator
    3:3:java.util.ListIterator listIterator(int):41:41 -> listIterator
    1:1:java.util.List subList(int,int):47:47 -> subList
com.android.tools.r8.jetbrains.kotlin.collections.EmptyMap -> com.android.tools.r8.w.a.q.m:
    com.android.tools.r8.jetbrains.kotlin.collections.EmptyMap INSTANCE -> a
    1:1:void <clinit>():13:13 -> <clinit>
    1:1:void <init>():13:13 -> <init>
    1:1:boolean containsValue(java.lang.Object):13:13 -> containsValue
    2:2:boolean containsValue(java.lang.Void):0:0 -> containsValue
    2:2:boolean containsValue(java.lang.Object):13 -> containsValue
    1:1:java.util.Set getEntries():26:26 -> entrySet
    1:1:java.util.Set entrySet():13 -> entrySet
    1:1:boolean equals(java.lang.Object):16:16 -> equals
    1:1:java.util.Set getKeys():27:27 -> keySet
    1:1:java.util.Set keySet():13 -> keySet
    1:1:java.util.Collection getValues():28:28 -> values
    1:1:java.util.Collection values():13 -> values
com.android.tools.r8.jetbrains.kotlin.collections.EmptySet -> com.android.tools.r8.w.a.q.n:
    com.android.tools.r8.jetbrains.kotlin.collections.EmptySet INSTANCE -> a
    1:1:void <clinit>():12:12 -> <clinit>
    1:1:void <init>():12:12 -> <init>
    1:1:boolean contains(java.lang.Object):12:12 -> contains
    2:2:boolean contains(java.lang.Void):0:0 -> contains
    2:2:boolean contains(java.lang.Object):12 -> contains
    1:1:boolean containsAll(java.util.Collection):22:22 -> containsAll
    1:1:boolean equals(java.lang.Object):15:15 -> equals
    1:1:java.util.Iterator iterator():24:24 -> iterator
com.android.tools.r8.jetbrains.kotlin.collections.IndexedValue -> com.android.tools.r8.w.a.q.o:
    java.lang.Object value -> b
    int index -> a
    1:1:void <init>(int,java.lang.Object):14:14 -> <init>
    1:1:int getIndex():14:14 -> a
    1:1:java.lang.Object getValue():14:14 -> b
com.android.tools.r8.jetbrains.kotlin.collections.IndexingIterable -> com.android.tools.r8.w.a.q.p:
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0 iteratorFactory -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):24:24 -> <init>
    1:1:java.util.Iterator iterator():25:25 -> iterator
com.android.tools.r8.jetbrains.kotlin.collections.IndexingIterator -> com.android.tools.r8.w.a.q.q:
    java.util.Iterator iterator -> b
    int index -> a
    1:1:void <init>(java.util.Iterator):37:37 -> <init>
    1:1:boolean hasNext():39:39 -> hasNext
    1:1:com.android.tools.r8.jetbrains.kotlin.collections.IndexedValue next():40:40 -> next
    1:1:java.lang.Object next():37 -> next
    2:2:void com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.throwIndexOverflow():388:388 -> next
    2:2:void com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.throwIndexOverflow():0 -> next
    2:2:com.android.tools.r8.jetbrains.kotlin.collections.IndexedValue next():40 -> next
    2:2:java.lang.Object next():37 -> next
com.android.tools.r8.jetbrains.kotlin.internal.ProgressionUtilKt -> com.android.tools.r8.w.a.r.a:
    1:1:int mod(int,int):10:10 -> a
    2:2:int differenceModulo(int,int,int):21:21 -> a
    2:2:int getProgressionLastElement(int,int,int):46 -> a
    3:3:int differenceModulo(int,int,int):21:21 -> a
    3:3:int getProgressionLastElement(int,int,int):47 -> a
    4:4:int getProgressionLastElement(int,int,int):48:48 -> a
com.android.tools.r8.jetbrains.kotlin.jvm.KotlinReflectionNotSupportedError -> com.android.tools.r8.w.a.s.a:
    1:1:void <init>():11:11 -> <init>
com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0 -> com.android.tools.r8.w.a.s.b.a:
    java.lang.Object invoke() -> a
com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 -> com.android.tools.r8.w.a.s.b.b:
    java.lang.Object invoke(java.lang.Object) -> a
com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function2 -> com.android.tools.r8.w.a.s.b.c:
    java.lang.Object invoke(java.lang.Object,java.lang.Object) -> a
com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference$NoReceiver -> com.android.tools.r8.w.a.s.c.a:
    com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference$NoReceiver INSTANCE -> a
    1:1:void <clinit>():40:40 -> <clinit>
    1:1:void <init>():39:39 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference$NoReceiver access$000():39:39 -> a
com.android.tools.r8.jetbrains.kotlin.jvm.internal.ClassReference -> com.android.tools.r8.w.a.s.c.b:
    java.lang.Class jClass -> a
    1:1:void <init>(java.lang.Class):10:10 -> <init>
    1:1:java.lang.Class getJClass():10:10 -> a
    1:1:boolean equals(java.lang.Object):82:82 -> equals
    1:1:int hashCode():85:85 -> hashCode
    1:1:java.lang.String toString():88:88 -> toString
    2:2:java.lang.Class getJClass():10:10 -> toString
    2:2:java.lang.String toString():88 -> toString
    3:3:java.lang.String toString():88:88 -> toString
com.android.tools.r8.jetbrains.kotlin.jvm.internal.CollectionToArray -> com.android.tools.r8.w.a.s.c.c:
    java.lang.Object[] EMPTY -> a
    1:1:void <clinit>():130:130 -> <clinit>
    1:4:java.lang.Object[] toArray(java.util.Collection):83:86 -> a
    5:88:java.lang.Object[] toArray(java.util.Collection):21:104 -> a
    89:89:java.lang.Object[] toArray(java.util.Collection):23:23 -> a
    90:90:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):106:106 -> a
    91:166:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):34:109 -> a
    167:260:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):34:127 -> a
    261:264:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):43:46 -> a
    265:265:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):39:39 -> a
    266:266:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):30:30 -> a
com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker -> com.android.tools.r8.w.a.s.c.d:
com.android.tools.r8.jetbrains.kotlin.jvm.internal.Intrinsics -> com.android.tools.r8.w.a.s.c.e:
    int compare(int,int) -> a
    1:1:void throwNpe():37:37 -> a
    2:2:void throwUninitializedPropertyAccessException(java.lang.String):49:49 -> a
    3:3:void throwUninitializedProperty(java.lang.String):45:45 -> a
    3:3:void throwUninitializedPropertyAccessException(java.lang.String):49 -> a
    4:4:void checkExpressionValueIsNotNull(java.lang.Object,java.lang.String):78:78 -> a
    5:5:boolean areEqual(java.lang.Object,java.lang.Object):153:153 -> a
    6:6:java.lang.Throwable sanitizeStackTrace(java.lang.Throwable):237:237 -> a
    7:18:java.lang.Throwable sanitizeStackTrace(java.lang.Throwable,java.lang.String):241:252 -> a
    7:18:java.lang.Throwable sanitizeStackTrace(java.lang.Throwable):237 -> a
    1:15:void throwParameterIsNullException(java.lang.String):127:141 -> b
    1:15:void checkParameterIsNotNull(java.lang.Object,java.lang.String):116 -> b
com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda -> com.android.tools.r8.w.a.s.c.f:
    1:1:void <init>(int):10:10 -> <init>
    1:1:java.lang.String toString():11:11 -> toString
com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference -> com.android.tools.r8.w.a.s.c.h:
    com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.reflected -> a
    java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.receiver -> b
    java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.NO_RECEIVER -> c
    1:1:void com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.<clinit>():36:36 -> <clinit>
    1:1:void com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.<init>():48:48 -> <init>
    1:1:void <init>():14 -> <init>
    2:3:void com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.<init>(java.lang.Object):52:53 -> <init>
    2:3:void com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.<init>():48 -> <init>
    2:3:void <init>():14 -> <init>
    1:3:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():65:67 -> a
    1:3:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():0 -> a
    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.computeReflected():24:24 -> a
    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.computeReflected():0 -> a
    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():67 -> a
    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():0 -> a
    5:5:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():68:68 -> a
    5:5:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():0 -> a
    6:6:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getReflected():75:75 -> a
    6:6:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty getReflected():25 -> a
    6:6:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable getReflected():12 -> a
    6:6:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.call(java.lang.Object[]):138 -> a
    6:6:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.call(java.lang.Object[]):0 -> a
    7:7:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty getReflected():25:25 -> a
    7:7:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable getReflected():12 -> a
    7:7:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.call(java.lang.Object[]):138 -> a
    7:7:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.call(java.lang.Object[]):0 -> a
    8:8:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.call(java.lang.Object[]):138:138 -> a
    8:8:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.call(java.lang.Object[]):0 -> a
    9:9:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getReflected():77:77 -> a
    9:9:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty getReflected():25 -> a
    9:9:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable getReflected():12 -> a
    9:9:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.call(java.lang.Object[]):138 -> a
    9:9:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.call(java.lang.Object[]):0 -> a
    java.lang.String com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getName() -> b
    com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getOwner() -> c
    java.lang.String com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getSignature() -> d
    1:3:boolean equals(java.lang.Object):43:45 -> equals
    4:4:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getBoundReceiver():60:60 -> equals
    4:4:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getBoundReceiver():0 -> equals
    4:4:boolean equals(java.lang.Object):45 -> equals
    5:11:boolean equals(java.lang.Object):45:51 -> equals
    1:1:int hashCode():58:58 -> hashCode
    1:6:java.lang.String toString():63:68 -> toString
com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1Impl -> com.android.tools.r8.w.a.s.c.g:
    com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer owner -> d
    java.lang.String signature -> f
    java.lang.String name -> e
    1:1:void com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.<init>():14:14 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer,java.lang.String,java.lang.String):15 -> <init>
    2:4:void <init>(com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer,java.lang.String,java.lang.String):16:18 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getReflected():75:75 -> a
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference.getReflected():25 -> a
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():34 -> a
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> a
    1:1:java.lang.Object get(java.lang.Object):38 -> a
    1:1:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):29 -> a
    1:1:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):0 -> a
    2:2:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference.getReflected():25:25 -> a
    2:2:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():34 -> a
    2:2:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> a
    2:2:java.lang.Object get(java.lang.Object):38 -> a
    2:2:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):29 -> a
    2:2:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):0 -> a
    3:3:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():34:34 -> a
    3:3:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> a
    3:3:java.lang.Object get(java.lang.Object):38 -> a
    3:3:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):29 -> a
    3:3:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):0 -> a
    4:4:java.lang.Object get(java.lang.Object):38:38 -> a
    4:4:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):29 -> a
    4:4:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):0 -> a
    5:5:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getReflected():77:77 -> a
    5:5:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference.getReflected():25 -> a
    5:5:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():34 -> a
    5:5:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> a
    5:5:java.lang.Object get(java.lang.Object):38 -> a
    5:5:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):29 -> a
    5:5:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):0 -> a
    1:1:java.lang.String getName():28:28 -> b
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer getOwner():23:23 -> c
    1:1:java.lang.String getSignature():33:33 -> d
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getReflected():75:75 -> e
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference.getReflected():25 -> e
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():34 -> e
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> e
    2:2:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference.getReflected():25:25 -> e
    2:2:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():34 -> e
    2:2:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> e
    3:3:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():34:34 -> e
    3:3:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> e
    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getReflected():77:77 -> e
    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference.getReflected():25 -> e
    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():34 -> e
    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> e
com.android.tools.r8.jetbrains.kotlin.jvm.internal.Reflection -> com.android.tools.r8.w.a.s.c.i:
    com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory factory -> a
    1:9:void <clinit>():22:30 -> <clinit>
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KClass getOrCreateKotlinClass(java.lang.Class):50:50 -> a
    2:2:com.android.tools.r8.jetbrains.kotlin.reflect.KClass com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory.getOrCreateKotlinClass(java.lang.Class):27:27 -> a
    2:2:com.android.tools.r8.jetbrains.kotlin.reflect.KClass getOrCreateKotlinClass(java.lang.Class):50 -> a
    3:3:java.lang.String renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):69:69 -> a
    4:5:java.lang.String com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory.renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.FunctionBase):41:42 -> a
    4:5:java.lang.String com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory.renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):36 -> a
    4:5:java.lang.String renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):69 -> a
    6:6:java.lang.String com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory.renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.FunctionBase):41:41 -> a
    6:6:java.lang.String com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory.renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):36 -> a
    6:6:java.lang.String renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):69 -> a
    7:7:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1 property1(com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1):94:94 -> a
    8:8:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1 com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory.property1(com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1):0:0 -> a
    8:8:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1 property1(com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1):94 -> a
com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory -> com.android.tools.r8.w.a.s.c.j:
    1:1:void <init>():11:11 -> <init>
com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression -> com.android.tools.r8.w.a.t.b:
    com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression$Companion Companion -> d
    int last -> b
    int step -> c
    int first -> a
    1:25:void <init>(int,int,int):73:97 -> <init>
    26:26:void <init>(int,int,int):81:81 -> <init>
    27:27:void <init>(int,int,int):80:80 -> <init>
    1:1:int getFirst():87:87 -> a
    1:1:int getLast():92:92 -> b
    1:1:int getStep():97:97 -> d
    1:1:boolean equals(java.lang.Object):105:105 -> equals
    1:1:int hashCode():109:109 -> hashCode
    1:1:boolean isEmpty():102:102 -> isEmpty
    1:1:com.android.tools.r8.jetbrains.kotlin.collections.IntIterator iterator():99:99 -> iterator
    1:1:java.util.Iterator iterator():72 -> iterator
    1:1:java.lang.String toString():111:111 -> toString
com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression$Companion -> com.android.tools.r8.w.a.t.a:
    1:1:void <init>():113:113 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):113:113 -> <init>
com.android.tools.r8.jetbrains.kotlin.ranges.IntProgressionIterator -> com.android.tools.r8.w.a.t.c:
    int step -> d
    boolean hasNext -> b
    int next -> c
    int finalElement -> a
    1:1:void com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.<init>():35:35 -> <init>
    1:1:void <init>(int,int,int):38 -> <init>
    2:5:void <init>(int,int,int):38:41 -> <init>
    1:1:boolean hasNext():43:43 -> hasNext
    1:4:int nextInt():46:49 -> next
    1:4:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():36 -> next
    1:4:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
    1:4:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():35 -> next
    1:4:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
    5:9:int nextInt():48:52 -> next
    5:9:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():36 -> next
    5:9:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
    5:9:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():35 -> next
    5:9:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
    10:10:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():36:36 -> next
    10:10:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
    10:10:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():35 -> next
    10:10:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
    1:1:void com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.remove():0:0 -> remove
    1:1:void com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.remove():0 -> remove
com.android.tools.r8.jetbrains.kotlin.ranges.IntRange -> com.android.tools.r8.w.a.t.e:
    com.android.tools.r8.jetbrains.kotlin.ranges.IntRange EMPTY -> e
    com.android.tools.r8.jetbrains.kotlin.ranges.IntRange$Companion Companion -> f
    1:1:void <clinit>():58:58 -> <clinit>
    1:1:void <init>(int,int):39:39 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange access$getEMPTY$cp():39:39 -> e
    1:1:boolean equals(java.lang.Object):48:48 -> equals
    1:1:int hashCode():52:52 -> hashCode
    1:1:boolean isEmpty():45:45 -> isEmpty
    1:1:java.lang.String toString():54:54 -> toString
com.android.tools.r8.jetbrains.kotlin.ranges.IntRange$Companion -> com.android.tools.r8.w.a.t.d:
    1:1:void <init>():56:56 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):56:56 -> <init>
com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt -> com.android.tools.r8.w.a.t.f:
    1:1:int com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.coerceIn(int,int,int):1024:1024 -> a
    1:1:int coerceIn(int,int,int):0 -> a
com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt__RangesKt -> com.android.tools.r8.w.a.t.g:
com.android.tools.r8.jetbrains.kotlin.reflect.KCallable -> com.android.tools.r8.w.a.u.a:
    java.lang.Object call(java.lang.Object[]) -> a
com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer -> com.android.tools.r8.w.a.u.b:
com.android.tools.r8.jetbrains.kotlin.reflect.KProperty -> com.android.tools.r8.w.a.u.e:
com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1 -> com.android.tools.r8.w.a.u.d:
com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter -> com.android.tools.r8.w.a.u.c:
com.android.tools.r8.jetbrains.kotlin.sequences.Sequence -> com.android.tools.r8.w.a.v.a:
com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence -> com.android.tools.r8.w.a.v.c:
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 transformer -> b
    com.android.tools.r8.jetbrains.kotlin.sequences.Sequence sequence -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):168:168 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence access$getSequence$p(com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence):167:167 -> a
    1:1:com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 access$getTransformer$p(com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence):167:167 -> b
    1:1:java.util.Iterator iterator():169:169 -> iterator
com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence$iterator$1 -> com.android.tools.r8.w.a.v.b:
    java.util.Iterator iterator -> a
    com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence this$0 -> b
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence):169:170 -> <init>
    1:1:boolean hasNext():176:176 -> hasNext
    1:1:java.lang.Object next():172:172 -> next
com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence -> com.android.tools.r8.w.a.w.b:
    java.lang.CharSequence input -> a
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function2 getNextMatch -> d
    int startIndex -> b
    int limit -> c
    1:1:void <init>(java.lang.CharSequence,int,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function2):1072:1072 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function2 access$getGetNextMatch$p(com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence):1072:1072 -> a
    1:1:java.lang.CharSequence access$getInput$p(com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence):1072:1072 -> b
    1:1:int access$getLimit$p(com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence):1072:1072 -> c
    1:1:int access$getStartIndex$p(com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence):1072:1072 -> d
    1:1:java.util.Iterator iterator():1079:1079 -> iterator
com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence$iterator$1 -> com.android.tools.r8.w.a.w.a:
    com.android.tools.r8.jetbrains.kotlin.ranges.IntRange nextItem -> d
    com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence this$0 -> f
    int counter -> e
    int currentStartIndex -> b
    int nextSearchIndex -> c
    int nextState -> a
    1:4:void <init>(com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence):1079:1082 -> <init>
    1:15:void calcNext():1087:1101 -> c
    16:16:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.until(int,int):705:705 -> c
    16:16:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.until(int,int):0 -> c
    16:16:void calcNext():1101 -> c
    17:17:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.ranges.IntRange$Companion.getEMPTY():58:58 -> c
    17:17:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.until(int,int):705 -> c
    17:17:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.until(int,int):0 -> c
    17:17:void calcNext():1101 -> c
    18:18:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.until(int,int):706:706 -> c
    18:18:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.until(int,int):0 -> c
    18:18:void calcNext():1101 -> c
    19:24:void calcNext():1101:1106 -> c
    1:3:boolean hasNext():1123:1125 -> hasNext
    1:8:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange next():1111:1118 -> next
    1:8:java.lang.Object next():1079 -> next
    9:9:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange next():1115:1115 -> next
    9:9:java.lang.Object next():1079 -> next
    10:10:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange next():1114:1114 -> next
    10:10:java.lang.Object next():1079 -> next
com.android.tools.r8.jetbrains.kotlin.text.StringsKt -> com.android.tools.r8.w.a.w.c:
    1:62:void com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringBuilderKt.appendElement(java.lang.Appendable,java.lang.Object,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:61 -> a
    1:62:void appendElement(java.lang.Appendable,java.lang.Object,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0 -> a
    63:63:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.contains(java.lang.CharSequence,char,boolean):0:0 -> a
    63:63:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.contains$default(java.lang.CharSequence,char,boolean,int,java.lang.Object):1059 -> a
    64:1056:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOf(java.lang.CharSequence,char,int,boolean):0:992 -> a
    64:1056:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOf$default(java.lang.CharSequence,char,int,boolean,int,java.lang.Object):988 -> a
    64:1056:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.contains(java.lang.CharSequence,char,boolean):1060 -> a
    64:1056:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.contains$default(java.lang.CharSequence,char,boolean,int,java.lang.Object):1059 -> a
    1057:1057:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOf(java.lang.CharSequence,char,int,boolean):990:990 -> a
    1057:1057:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOf$default(java.lang.CharSequence,char,int,boolean,int,java.lang.Object):988 -> a
    1057:1057:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.contains(java.lang.CharSequence,char,boolean):1060 -> a
    1057:1057:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.contains$default(java.lang.CharSequence,char,boolean,int,java.lang.Object):1059 -> a
    1058:1122:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):0:64 -> a
    1058:1122:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
    1058:1122:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    1123:1123:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence(java.lang.CharSequence,char[],boolean,int):0:0 -> a
    1123:1123:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence$default(java.lang.CharSequence,char[],boolean,int,int,java.lang.Object):1217 -> a
    1123:1123:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
    1123:1123:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
    1123:1123:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    1124:1124:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.rangesDelimitedBy$StringsKt__StringsKt(java.lang.CharSequence,char[],int,boolean,int):1143:1143 -> a
    1124:1124:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.rangesDelimitedBy$StringsKt__StringsKt$default(java.lang.CharSequence,char[],int,boolean,int,int,java.lang.Object):1140 -> a
    1124:1124:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence(java.lang.CharSequence,char[],boolean,int):1218 -> a
    1124:1124:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence$default(java.lang.CharSequence,char[],boolean,int,int,java.lang.Object):1217 -> a
    1124:1124:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
    1124:1124:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
    1124:1124:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    1125:1125:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence(java.lang.CharSequence,char[],boolean,int):1218:1218 -> a
    1125:1125:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence$default(java.lang.CharSequence,char[],boolean,int,int,java.lang.Object):1217 -> a
    1125:1125:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
    1125:1125:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
    1125:1125:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    1126:1985:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.map(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:859 -> a
    1126:1985:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt.map(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0 -> a
    1126:1985:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence(java.lang.CharSequence,char[],boolean,int):1218 -> a
    1126:1985:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence$default(java.lang.CharSequence,char[],boolean,int,int,java.lang.Object):1217 -> a
    1126:1985:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
    1126:1985:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
    1126:1985:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    1986:1986:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64:64 -> a
    1986:1986:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
    1986:1986:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    1987:3725:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:1738 -> a
    1987:3725:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):1737 -> a
    1987:3725:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
    1987:3725:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
    1987:3725:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
    1987:3725:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    3726:5449:java.lang.Appendable com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinTo(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.Appendable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:1723 -> a
    3726:5449:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1738 -> a
    3726:5449:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):1737 -> a
    3726:5449:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
    3726:5449:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
    3726:5449:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
    3726:5449:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    5450:5450:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1738:1738 -> a
    5450:5450:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):1737 -> a
    5450:5450:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
    5450:5450:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
    5450:5450:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):60 -> a
    5450:5450:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    5451:5453:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.startsWith(java.lang.String,java.lang.String,boolean):197:199 -> a
    5454:5846:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.regionMatches(java.lang.String,int,java.lang.String,int,int,boolean):0:392 -> a
    5454:5846:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.startsWith(java.lang.String,java.lang.String,boolean):199 -> a
    5847:5847:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.getLastIndex(java.lang.CharSequence):317:317 -> a
    5848:5848:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):835:835 -> a
    5849:8227:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.single(char[]):0:2378 -> a
    5849:8227:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt.single(char[]):0 -> a
    5849:8227:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):836 -> a
    8228:8228:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):837:837 -> a
    8229:8229:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.single(char[]):2379:2379 -> a
    8229:8229:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt.single(char[]):0 -> a
    8229:8229:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):836 -> a
    8230:8230:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.single(char[]):2377:2377 -> a
    8230:8230:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt.single(char[]):0 -> a
    8230:8230:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):836 -> a
    8231:8812:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):840:1421 -> a
    8813:8814:boolean com.android.tools.r8.jetbrains.kotlin.text.CharsKt__CharKt.equals(char,char,boolean):35:36 -> a
    8813:8814:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):842 -> a
com.android.tools.r8.jetbrains.kotlin.text.StringsKt__RegexExtensionsJVMKt -> com.android.tools.r8.w.a.w.d:
com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringBuilderJVMKt -> com.android.tools.r8.w.a.w.e:
com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringNumberConversionsJVMKt -> com.android.tools.r8.w.a.w.f:
com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt -> com.android.tools.r8.w.a.w.g:
com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt$rangesDelimitedBy$2 -> com.android.tools.r8.w.a.w.h:
    char[] $delimiters -> a
    boolean $ignoreCase -> b
    1:1145:com.android.tools.r8.jetbrains.kotlin.Pair invoke(java.lang.CharSequence,int):0:1144 -> a
    1:1145:java.lang.Object invoke(java.lang.Object,java.lang.Object):0 -> a
    1146:1146:com.android.tools.r8.jetbrains.kotlin.Pair com.android.tools.r8.jetbrains.kotlin.TuplesKt.to(java.lang.Object,java.lang.Object):43:43 -> a
    1146:1146:com.android.tools.r8.jetbrains.kotlin.Pair invoke(java.lang.CharSequence,int):1144 -> a
    1146:1146:java.lang.Object invoke(java.lang.Object,java.lang.Object):0 -> a
com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt$splitToSequence$2 -> com.android.tools.r8.w.a.w.i:
    java.lang.CharSequence $this_splitToSequence -> a
    1:1219:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):0:1218 -> a
    1:1219:java.lang.Object invoke(java.lang.Object):0 -> a
    1220:1220:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.substring(java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):0:0 -> a
    1220:1220:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):1218 -> a
    1220:1220:java.lang.Object invoke(java.lang.Object):0 -> a
    1221:1221:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.ranges.IntRange.getStart():40:40 -> a
    1221:1221:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.substring(java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):361 -> a
    1221:1221:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):1218 -> a
    1221:1221:java.lang.Object invoke(java.lang.Object):0 -> a
    1222:1222:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.substring(java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):361:361 -> a
    1222:1222:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):1218 -> a
    1222:1222:java.lang.Object invoke(java.lang.Object):0 -> a
    1223:1223:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.ranges.IntRange.getEndInclusive():41:41 -> a
    1223:1223:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.substring(java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):361 -> a
    1223:1223:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):1218 -> a
    1223:1223:java.lang.Object invoke(java.lang.Object):0 -> a
    1224:1224:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.substring(java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):361:361 -> a
    1224:1224:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):1218 -> a
    1224:1224:java.lang.Object invoke(java.lang.Object):0 -> a
com.android.tools.r8.jetbrains.kotlin.text.StringsKt___StringsJvmKt -> com.android.tools.r8.w.a.w.j:
com.android.tools.r8.jetbrains.kotlinx.metadata.Flag -> com.android.tools.r8.w.b.a.c:
    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_OPEN -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_ABSTRACT -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_PRIVATE -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_PROTECTED -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_PUBLIC -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_FINAL -> g
    int bitWidth -> b
    int value -> c
    int offset -> a
    1:1:void <clinit>():63:63 -> <clinit>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField):0:0 -> <clinit>
    2:2:void <clinit>():63 -> <clinit>
    3:44:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField,int):0:41 -> <clinit>
    3:44:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField):43 -> <clinit>
    3:44:void <clinit>():63 -> <clinit>
    45:45:void <clinit>():70:70 -> <clinit>
    46:87:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField,int):0:41 -> <clinit>
    46:87:void <clinit>():70 -> <clinit>
    88:107:void <clinit>():76:95 -> <clinit>
    108:149:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField,int):0:41 -> <clinit>
    108:149:void <clinit>():95 -> <clinit>
    150:150:void <clinit>():102:102 -> <clinit>
    151:192:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField,int):0:41 -> <clinit>
    151:192:void <clinit>():102 -> <clinit>
    193:211:void <clinit>():109:127 -> <clinit>
    212:253:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField,int):0:41 -> <clinit>
    212:253:void <clinit>():127 -> <clinit>
    1:1:void <init>(int,int,int):40:40 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField,int):41:41 -> <init>
    1:1:boolean invoke(int):52:52 -> a
    1:1:int plus$kotlinx_metadata(int):46:46 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.Flag$Type -> com.android.tools.r8.w.b.a.a:
    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_NULLABLE -> a
    1:7:void <clinit>():424:430 -> <clinit>
com.android.tools.r8.jetbrains.kotlinx.metadata.Flag$TypeParameter -> com.android.tools.r8.w.b.a.b:
    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_REIFIED -> a
    1:1:void <clinit>():441:441 -> <clinit>
com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException -> com.android.tools.r8.w.b.a.d:
    1:1:void <init>(java.lang.String,java.lang.Throwable):8:8 -> <init>
    2:2:void <init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation -> com.android.tools.r8.w.b.a.e:
    java.util.Map arguments -> b
    java.lang.String className -> a
    1:1:void <init>(java.lang.String,java.util.Map):18:18 -> <init>
    1:1:java.util.Map getArguments():18:18 -> a
    1:1:java.lang.String getClassName():18:18 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument -> com.android.tools.r8.w.b.a.w:
    1:1:void <init>():25:25 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):25:25 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$AnnotationValue -> com.android.tools.r8.w.b.a.f:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation value -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation):51:51 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation getValue():51:51 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation getValue():51:51 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation getValue():51:51 -> equals
    2:2:boolean equals(java.lang.Object):0 -> equals
    3:3:boolean equals(java.lang.Object):0:0 -> equals
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation getValue():51:51 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation getValue():51:51 -> toString
    1:1:java.lang.String toString():0 -> toString
    2:2:java.lang.String toString():0:0 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$ArrayValue -> com.android.tools.r8.w.b.a.g:
    java.util.List value -> a
    1:1:void <init>(java.util.List):52:52 -> <init>
    1:1:java.util.List getValue():52:52 -> a
    1:1:java.util.List getValue():52:52 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:java.util.List getValue():52:52 -> equals
    2:2:boolean equals(java.lang.Object):0 -> equals
    3:3:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.util.List getValue():52:52 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    1:1:java.util.List getValue():52:52 -> toString
    1:1:java.lang.String toString():0 -> toString
    2:2:java.lang.String toString():0:0 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$BooleanValue -> com.android.tools.r8.w.b.a.h:
    boolean value -> a
    1:1:void <init>(boolean):38:38 -> <init>
    1:1:java.lang.Boolean getValue():38:38 -> a
    1:1:java.lang.Boolean getValue():38:38 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:boolean equals(java.lang.Object):0:0 -> equals
    3:3:java.lang.Boolean getValue():38:38 -> equals
    3:3:boolean equals(java.lang.Object):0 -> equals
    4:4:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.Boolean getValue():38:38 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    1:1:java.lang.Boolean getValue():38:38 -> toString
    1:1:java.lang.String toString():0 -> toString
    2:2:java.lang.String toString():0:0 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$ByteValue -> com.android.tools.r8.w.b.a.i:
    byte value -> a
    1:1:void <init>(byte):31:31 -> <init>
    1:1:java.lang.Byte getValue():31:31 -> a
    1:1:java.lang.Byte getValue():31:31 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:boolean equals(java.lang.Object):0:0 -> equals
    3:3:java.lang.Byte getValue():31:31 -> equals
    3:3:boolean equals(java.lang.Object):0 -> equals
    4:4:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.Byte getValue():31:31 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    1:1:java.lang.Byte getValue():31:31 -> toString
    1:1:java.lang.String toString():0 -> toString
    2:2:java.lang.String toString():0:0 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$CharValue -> com.android.tools.r8.w.b.a.j:
    char value -> a
    1:1:void <init>(char):32:32 -> <init>
    1:1:java.lang.Character getValue():32:32 -> a
    1:1:java.lang.Character getValue():32:32 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:boolean equals(java.lang.Object):0:0 -> equals
    3:3:java.lang.Character getValue():32:32 -> equals
    3:3:boolean equals(java.lang.Object):0 -> equals
    4:4:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.Character getValue():32:32 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    1:1:java.lang.Character getValue():32:32 -> toString
    1:1:java.lang.String toString():0 -> toString
    2:2:java.lang.String toString():0:0 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$DoubleValue -> com.android.tools.r8.w.b.a.k:
    double value -> a
    1:1:void <init>(double):37:37 -> <init>
    1:1:java.lang.Double getValue():37:37 -> a
    1:1:java.lang.Double getValue():37:37 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:boolean equals(java.lang.Object):0:0 -> equals
    3:3:java.lang.Double getValue():37:37 -> equals
    3:3:boolean equals(java.lang.Object):0 -> equals
    4:4:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.Double getValue():37:37 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    1:1:java.lang.Double getValue():37:37 -> toString
    1:1:java.lang.String toString():0 -> toString
    2:2:java.lang.String toString():0:0 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$EnumValue -> com.android.tools.r8.w.b.a.l:
    java.lang.String enumClassName -> a
    java.lang.String enumEntryName -> b
    1:2:void <init>(java.lang.String,java.lang.String):47:48 -> <init>
    1:1:java.lang.String getEnumClassName():47:47 -> a
    1:1:java.lang.String getEnumEntryName():47:47 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$FloatValue -> com.android.tools.r8.w.b.a.m:
    float value -> a
    1:1:void <init>(float):36:36 -> <init>
    1:1:java.lang.Float getValue():36:36 -> a
    1:1:java.lang.Float getValue():36:36 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:boolean equals(java.lang.Object):0:0 -> equals
    3:3:java.lang.Float getValue():36:36 -> equals
    3:3:boolean equals(java.lang.Object):0 -> equals
    4:4:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.Float getValue():36:36 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    1:1:java.lang.Float getValue():36:36 -> toString
    1:1:java.lang.String toString():0 -> toString
    2:2:java.lang.String toString():0:0 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$IntValue -> com.android.tools.r8.w.b.a.n:
    int value -> a
    1:1:void <init>(int):34:34 -> <init>
    1:1:java.lang.Integer getValue():34:34 -> a
    1:1:java.lang.Integer getValue():34:34 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:boolean equals(java.lang.Object):0:0 -> equals
    3:3:java.lang.Integer getValue():34:34 -> equals
    3:3:boolean equals(java.lang.Object):0 -> equals
    4:4:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.Integer getValue():34:34 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    1:1:java.lang.Integer getValue():34:34 -> toString
    1:1:java.lang.String toString():0 -> toString
    2:2:java.lang.String toString():0:0 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$KClassValue -> com.android.tools.r8.w.b.a.o:
    java.lang.String value -> a
    1:1:void <init>(java.lang.String):46:46 -> <init>
    1:1:java.lang.String getValue():46:46 -> a
    1:1:java.lang.String getValue():46:46 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:java.lang.String getValue():46:46 -> equals
    2:2:boolean equals(java.lang.Object):0 -> equals
    3:3:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.String getValue():46:46 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    1:1:java.lang.String getValue():46:46 -> toString
    1:1:java.lang.String toString():0 -> toString
    2:2:java.lang.String toString():0:0 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$LongValue -> com.android.tools.r8.w.b.a.p:
    long value -> a
    1:1:void <init>(long):35:35 -> <init>
    1:1:java.lang.Long getValue():35:35 -> a
    1:1:java.lang.Long getValue():35:35 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:boolean equals(java.lang.Object):0:0 -> equals
    3:3:java.lang.Long getValue():35:35 -> equals
    3:3:boolean equals(java.lang.Object):0 -> equals
    4:4:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.Long getValue():35:35 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    1:1:java.lang.Long getValue():35:35 -> toString
    1:1:java.lang.String toString():0 -> toString
    2:2:java.lang.String toString():0:0 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$ShortValue -> com.android.tools.r8.w.b.a.q:
    short value -> a
    1:1:void <init>(short):33:33 -> <init>
    1:1:java.lang.Short getValue():33:33 -> a
    1:1:java.lang.Short getValue():33:33 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:boolean equals(java.lang.Object):0:0 -> equals
    3:3:java.lang.Short getValue():33:33 -> equals
    3:3:boolean equals(java.lang.Object):0 -> equals
    4:4:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.Short getValue():33:33 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    1:1:java.lang.Short getValue():33:33 -> toString
    1:1:java.lang.String toString():0 -> toString
    2:2:java.lang.String toString():0:0 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$StringValue -> com.android.tools.r8.w.b.a.r:
    java.lang.String value -> a
    1:1:void <init>(java.lang.String):45:45 -> <init>
    1:1:java.lang.String getValue():45:45 -> a
    1:1:java.lang.String getValue():45:45 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:java.lang.String getValue():45:45 -> equals
    2:2:boolean equals(java.lang.Object):0 -> equals
    3:3:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.String getValue():45:45 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    1:1:java.lang.String getValue():45:45 -> toString
    1:1:java.lang.String toString():0 -> toString
    2:2:java.lang.String toString():0:0 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$UByteValue -> com.android.tools.r8.w.b.a.s:
    byte value -> a
    1:1:void <init>(byte):40:40 -> <init>
    1:1:java.lang.Byte getValue():40:40 -> a
    1:1:java.lang.Byte getValue():40:40 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:boolean equals(java.lang.Object):0:0 -> equals
    3:3:java.lang.Byte getValue():40:40 -> equals
    3:3:boolean equals(java.lang.Object):0 -> equals
    4:4:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.Byte getValue():40:40 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    1:1:java.lang.Byte getValue():40:40 -> toString
    1:1:java.lang.String toString():0 -> toString
    2:2:java.lang.String toString():0:0 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$UIntValue -> com.android.tools.r8.w.b.a.t:
    int value -> a
    1:1:void <init>(int):42:42 -> <init>
    1:1:java.lang.Integer getValue():42:42 -> a
    1:1:java.lang.Integer getValue():42:42 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:boolean equals(java.lang.Object):0:0 -> equals
    3:3:java.lang.Integer getValue():42:42 -> equals
    3:3:boolean equals(java.lang.Object):0 -> equals
    4:4:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.Integer getValue():42:42 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    1:1:java.lang.Integer getValue():42:42 -> toString
    1:1:java.lang.String toString():0 -> toString
    2:2:java.lang.String toString():0:0 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$ULongValue -> com.android.tools.r8.w.b.a.u:
    long value -> a
    1:1:void <init>(long):43:43 -> <init>
    1:1:java.lang.Long getValue():43:43 -> a
    1:1:java.lang.Long getValue():43:43 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:boolean equals(java.lang.Object):0:0 -> equals
    3:3:java.lang.Long getValue():43:43 -> equals
    3:3:boolean equals(java.lang.Object):0 -> equals
    4:4:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.Long getValue():43:43 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    1:1:java.lang.Long getValue():43:43 -> toString
    1:1:java.lang.String toString():0 -> toString
    2:2:java.lang.String toString():0:0 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument$UShortValue -> com.android.tools.r8.w.b.a.v:
    short value -> a
    1:1:void <init>(short):41:41 -> <init>
    1:1:java.lang.Short getValue():41:41 -> a
    1:1:java.lang.Short getValue():41:41 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:boolean equals(java.lang.Object):0:0 -> equals
    3:3:java.lang.Short getValue():41:41 -> equals
    3:3:boolean equals(java.lang.Object):0 -> equals
    4:4:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.Short getValue():41:41 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    1:1:java.lang.Short getValue():41:41 -> toString
    1:1:java.lang.String toString():0 -> toString
    2:2:java.lang.String toString():0:0 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmClass -> com.android.tools.r8.w.b.a.x:
    java.util.List extensions -> o
    java.lang.String companionObject -> j
    int flags -> b
    java.util.List functions -> f
    java.util.List supertypes -> e
    java.util.List typeParameters -> d
    java.util.List constructors -> i
    java.util.List typeAliases -> h
    java.util.List properties -> g
    java.lang.String name -> c
    java.util.List versionRequirements -> n
    java.util.List sealedSubclasses -> m
    java.util.List enumEntries -> l
    java.util.List nestedClasses -> k
    1:965:void <init>():35:999 -> <init>
    966:1864:void <init>():102:1000 -> <init>
    1:1:java.util.List getProperties():64:64 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):110:110 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):116:116 -> a
    4:4:java.util.List getFunctions():59:59 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):116 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):116:116 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):119:119 -> a
    7:7:java.util.List getProperties():64:64 -> a
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):119 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):119:119 -> a
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor visitConstructor(int):125:125 -> a
    10:10:void visitCompanionObject(java.lang.String):128:128 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):147:147 -> a
    12:832:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):155:975 -> a
    833:1654:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):156:977 -> a
    1655:1655:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):157:157 -> a
    1656:1656:java.util.List getFunctions():59:59 -> a
    1656:1656:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):158 -> a
    1657:1657:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):979:979 -> a
    1658:1658:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):158:158 -> a
    1659:1659:java.util.List getProperties():64:64 -> a
    1659:1659:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):159 -> a
    1660:1660:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):981:981 -> a
    1661:1661:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):159:159 -> a
    1662:1662:java.util.List getTypeAliases():69:69 -> a
    1662:1662:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):160 -> a
    1663:1663:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):983:983 -> a
    1664:2489:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):160:985 -> a
    2490:3316:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):161:987 -> a
    3317:4143:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):163:989 -> a
    4144:4971:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):164:991 -> a
    4972:5800:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):165:993 -> a
    5801:6630:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):166:995 -> a
    6631:6631:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):167:167 -> a
    6632:6632:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmClassExtensionVisitor.getType():54:54 -> a
    6632:6632:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):167 -> a
    6633:6633:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):167:167 -> a
    6634:6634:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmClassExtensionVisitor.getType():54:54 -> a
    6634:6634:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):167 -> a
    6635:6635:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):168:168 -> a
    6636:6636:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):155:155 -> a
    1:1:java.util.List getFunctions():59:59 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitSupertype(int):113:113 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):122:122 -> b
    4:4:java.util.List getTypeAliases():69:69 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):122 -> b
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):122:122 -> b
    6:6:void visitEnumEntry(java.lang.String):136:136 -> b
    1:2:void visit(int,java.lang.String):105:106 -> c
    3:3:void visitNestedClass(java.lang.String):132:132 -> c
    1:1:void visitSealedSubclass(java.lang.String):140:140 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():144:144 -> e
    1:1:java.util.List getConstructors():74:74 -> f
    1:1:java.util.List getSupertypes():54:54 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor -> com.android.tools.r8.w.b.a.y:
com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor -> com.android.tools.r8.w.b.a.z:
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):57:57 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):57:57 -> <init>
    void visitCompanionObject(java.lang.String) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor visitConstructor(int) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance) -> a
    void visitEnumEntry(java.lang.String) -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitSupertype(int) -> b
    void visit(int,java.lang.String) -> c
    void visitNestedClass(java.lang.String) -> c
    void visitSealedSubclass(java.lang.String) -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor getDelegate():59:59 -> d
    1:1:void visitEnd():153 -> d
    2:2:void visitEnd():153:153 -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement() -> e
com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassifier -> com.android.tools.r8.w.b.a.D:
    1:1:void <init>():898:898 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):898:898 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassifier$Class -> com.android.tools.r8.w.b.a.A:
    java.lang.String name -> a
    1:1:void <init>(java.lang.String):904:904 -> <init>
    1:1:java.lang.String getName():904:904 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassifier$TypeAlias -> com.android.tools.r8.w.b.a.B:
    java.lang.String name -> a
    1:1:void <init>(java.lang.String):919:919 -> <init>
    1:1:java.lang.String getName():919:919 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassifier$TypeParameter -> com.android.tools.r8.w.b.a.C:
    int id -> a
    1:1:void <init>(int):911:911 -> <init>
    1:1:int getId():911:911 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstantValue -> com.android.tools.r8.w.b.a.E:
    java.lang.Object value -> a
    1:1:void <init>(java.lang.Object):968:968 -> <init>
    1:1:java.lang.Object getValue():968:968 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor -> com.android.tools.r8.w.b.a.F:
    java.util.List valueParameters -> b
    java.util.List extensions -> d
    java.util.List versionRequirements -> c
    int flags -> e
    1:736:void <init>(int):248:983 -> <init>
    737:1461:void <init>(int):260:984 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String):263:263 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):269:269 -> a
    3:701:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor):277:975 -> a
    702:1402:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor):277:977 -> a
    1403:2104:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor):278:979 -> a
    2105:2105:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor):279:279 -> a
    2106:2106:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmConstructorExtensionVisitor.getType():240:240 -> a
    2106:2106:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor):279 -> a
    2107:2107:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor):279:279 -> a
    2108:2108:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmConstructorExtensionVisitor.getType():240:240 -> a
    2108:2108:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor):279 -> a
    2109:2109:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor):280:280 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():266:266 -> b
    1:1:int getFlags():248:248 -> c
    1:1:java.util.List getValueParameters():252:252 -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor -> com.android.tools.r8.w.b.a.G:
com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor -> com.android.tools.r8.w.b.a.H:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor):210:210 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):210:210 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String) -> a
    1:1:void visitEnd():238:238 -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement() -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.KmContract -> com.android.tools.r8.w.b.a.I:
    java.util.List effects -> b
    1:5:void <init>():758:762 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor visitEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind):765:765 -> a
    2:204:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor):773:975 -> a
    205:206:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor):773:774 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor -> com.android.tools.r8.w.b.a.J:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor):663:663 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):663:663 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor visitEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind) -> a
    1:1:void visitEnd():678:678 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer -> com.android.tools.r8.w.b.a.K:
    java.util.List getProperties() -> a
    java.util.List getFunctions() -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor -> com.android.tools.r8.w.b.a.L:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor):11:11 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String) -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor getDelegate():11:11 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffect -> com.android.tools.r8.w.b.a.M:
    java.util.List constructorArguments -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpression conclusion -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType type -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind invocationKind -> e
    1:6:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind):791:796 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitConclusionOfConditionalEffect():807:807 -> a
    2:162:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor):815:975 -> a
    163:165:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor):815:817 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitConstructorArgument():804:804 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind getInvocationKind():790:790 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType getType():789:789 -> e
com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpression -> com.android.tools.r8.w.b.a.N:
    java.lang.Integer parameterIndex -> c
    java.util.List andArguments -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstantValue constantValue -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType isInstanceType -> e
    java.util.List orArguments -> g
    int flags -> b
    1:33:void <init>():827:859 -> <init>
    1:2:void visit(int,java.lang.Integer):862:863 -> a
    3:3:void visitConstantValue(java.lang.Object):867:867 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitIsInstanceType(int):871:871 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitAndArgument():874:874 -> a
    6:96:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor):885:975 -> a
    97:186:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor):888:977 -> a
    187:188:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor):889:890 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitOrArgument():877:877 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor -> com.android.tools.r8.w.b.a.O:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor):722:722 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):722:722 -> <init>
    void visit(int,java.lang.Integer) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitAndArgument() -> a
    void visitConstantValue(java.lang.Object) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitIsInstanceType(int) -> a
    1:1:void visitEnd():769:769 -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitOrArgument() -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind -> com.android.tools.r8.w.b.a.P:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind[] $VALUES -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind EXACTLY_ONCE -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind AT_MOST_ONCE -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind AT_LEAST_ONCE -> c
    1:1:void <init>(java.lang.String,int):812:812 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType -> com.android.tools.r8.w.b.a.Q:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType CALLS -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType RETURNS_CONSTANT -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType[] $VALUES -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType RETURNS_NOT_NULL -> c
    1:1:void <init>(java.lang.String,int):800:800 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor -> com.android.tools.r8.w.b.a.S:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor):691:691 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):691:691 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitConclusionOfConditionalEffect() -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitConstructorArgument() -> b
    1:1:void visitEnd():710:710 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType -> com.android.tools.r8.w.b.a.T:
    com.android.tools.r8.jetbrains.kotlin.reflect.KClass klass -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):31:31 -> <init>
    1:1:boolean equals(java.lang.Object):33:33 -> equals
    1:1:int hashCode():36:36 -> hashCode
    2:2:int com.android.tools.r8.jetbrains.kotlin.jvm.internal.ClassReference.hashCode():85:85 -> hashCode
    2:2:int hashCode():36 -> hashCode
    1:1:java.lang.String toString():39:39 -> toString
    2:30:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaClass(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):0:28 -> toString
    2:30:java.lang.String toString():39 -> toString
    31:31:java.lang.String toString():39:39 -> toString
    32:32:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaClass(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):28:28 -> toString
    32:32:java.lang.String toString():39 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor -> com.android.tools.r8.w.b.a.U:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType getType() -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.KmFlexibleTypeUpperBound -> com.android.tools.r8.w.b.a.V:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType type -> a
    java.lang.String typeFlexibilityId -> b
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmType,java.lang.String):947:947 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmType getType():947:947 -> a
    1:1:java.lang.String getTypeFlexibilityId():947:947 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction -> com.android.tools.r8.w.b.a.W:
    java.util.List typeParameters -> b
    java.util.List versionRequirements -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType receiverParameterType -> c
    java.lang.String name -> j
    java.util.List valueParameters -> d
    int flags -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmContract contract -> g
    java.util.List extensions -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType returnType -> e
    1:693:void <init>(int,java.lang.String):293:985 -> <init>
    694:1355:void <init>(int,java.lang.String):325:986 -> <init>
    1:1:void setReceiverParameterType(com.android.tools.r8.jetbrains.kotlinx.metadata.KmType):302:302 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):328:328 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):331:331 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String):334:334 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor visitContract():343:343 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):346:346 -> a
    7:628:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):354:975 -> a
    629:1252:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):354:977 -> a
    1253:1876:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):356:979 -> a
    1877:2500:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):358:981 -> a
    2501:2501:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):360:360 -> a
    2502:2502:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFunctionExtensionVisitor.getType():119:119 -> a
    2502:2502:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):360 -> a
    2503:2503:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):360:360 -> a
    2504:2504:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFunctionExtensionVisitor.getType():119:119 -> a
    2504:2504:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):360 -> a
    2505:2505:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):361:361 -> a
    2506:2506:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):357:357 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):337:337 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():340:340 -> c
    1:1:int getFlags():291:291 -> d
    1:1:java.lang.String getName():292:292 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmType getReceiverParameterType():302:302 -> f
    1:1:java.util.List getValueParameters():307:307 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor -> com.android.tools.r8.w.b.a.X:
com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor -> com.android.tools.r8.w.b.a.Y:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):248:248 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):248:248 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):259:259 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):267:267 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String):276:276 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor visitContract():296:296 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):284:284 -> b
    2:2:void visitEnd():310:310 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():290:290 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage -> com.android.tools.r8.w.b.a.Z:
    java.util.List functions -> b
    java.util.List extensions -> e
    java.util.List typeAliases -> d
    java.util.List properties -> c
    1:811:void <init>():175:985 -> <init>
    812:1606:void <init>():192:986 -> <init>
    1:1:java.util.List getFunctions():179:179 -> a
    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):212 -> a
    2:2:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):975:975 -> a
    3:3:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):212:212 -> a
    4:4:java.util.List getProperties():184:184 -> a
    4:4:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):213 -> a
    5:5:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):977:977 -> a
    6:6:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):213:213 -> a
    7:7:java.util.List getTypeAliases():189:189 -> a
    7:7:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):214 -> a
    8:8:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):979:979 -> a
    9:776:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):214:981 -> a
    777:777:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):215:215 -> a
    778:778:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPackageExtensionVisitor.getType():92:92 -> a
    778:778:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):215 -> a
    779:779:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):215:215 -> a
    780:780:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPackageExtensionVisitor.getType():92:92 -> a
    780:780:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):215 -> a
    781:781:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):216:216 -> a
    782:782:java.util.List getProperties():184:184 -> a
    783:783:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):195:195 -> a
    784:784:java.util.List getFunctions():179:179 -> a
    784:784:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):195 -> a
    785:785:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):195:195 -> a
    786:786:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):198:198 -> a
    787:787:java.util.List getProperties():184:184 -> a
    787:787:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):198 -> a
    788:788:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):198:198 -> a
    789:789:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):204:204 -> a
    1:1:java.util.List getFunctions():179:179 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):201:201 -> b
    3:3:java.util.List getTypeAliases():189:189 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):201 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):201:201 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor -> com.android.tools.r8.w.b.a.a0:
com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor -> com.android.tools.r8.w.b.a.b0:
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):162:162 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):162:162 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor getDelegate():164:164 -> d
    1:1:void visitEnd():178 -> d
    2:2:void visitEnd():178:178 -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty -> com.android.tools.r8.w.b.a.c0:
    java.util.List typeParameters -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameter setterParameter -> d
    java.lang.String name -> i
    java.util.List versionRequirements -> f
    int getterFlags -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType receiverParameterType -> c
    int setterFlags -> k
    int flags -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType returnType -> e
    java.util.List extensions -> g
    1:604:void <init>(int,java.lang.String,int,int):380:983 -> <init>
    605:1182:void <init>(int,java.lang.String,int,int):407:984 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):410:410 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):413:413 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitSetterParameter(int,java.lang.String):416:416 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):425:425 -> a
    5:547:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):433:975 -> a
    548:1092:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):433:977 -> a
    1093:1635:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):437:979 -> a
    1636:1636:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):438:438 -> a
    1637:1637:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPropertyExtensionVisitor.getType():165:165 -> a
    1637:1637:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):438 -> a
    1638:1638:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):438:438 -> a
    1639:1639:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPropertyExtensionVisitor.getType():165:165 -> a
    1639:1639:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):438 -> a
    1640:1640:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):439:439 -> a
    1641:1641:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):436:436 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):419:419 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():422:422 -> b
    1:1:int getFlags():376:376 -> c
    1:1:int getGetterFlags():378:378 -> d
    1:1:java.lang.String getName():377:377 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmType getReceiverParameterType():389:389 -> f
    1:1:int getSetterFlags():379:379 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor -> com.android.tools.r8.w.b.a.d0:
com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor -> com.android.tools.r8.w.b.a.e0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):320:320 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):320:320 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):331:331 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):339:339 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitSetterParameter(int,java.lang.String):348:348 -> a
    4:4:void visitEnd():376:376 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):356:356 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():362:362 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.KmType -> com.android.tools.r8.w.b.a.f0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmFlexibleTypeUpperBound flexibleTypeUpperBound -> f
    int flags -> h
    java.util.List arguments -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassifier classifier -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType abbreviatedType -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType outerType -> e
    java.util.List extensions -> g
    1:388:void <init>(int):594:981 -> <init>
    389:735:void <init>(int):636:982 -> <init>
    1:668:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmTypeExtension visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):0:667 -> a
    1:668:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):594 -> a
    669:669:void visitClass(java.lang.String):639:639 -> a
    670:670:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitArgument(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):651:651 -> a
    671:671:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitAbbreviatedType(int):658:658 -> a
    672:672:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitFlexibleTypeUpperBound(int,java.lang.String):664:664 -> a
    673:973:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):675:975 -> a
    974:979:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):681:686 -> a
    980:980:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):685:685 -> a
    981:981:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
    981:981:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):685 -> a
    982:1274:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):685:977 -> a
    1275:1275:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):692:692 -> a
    1276:1276:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeExtensionVisitor.getType():307:307 -> a
    1276:1276:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):692 -> a
    1277:1277:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):692:692 -> a
    1278:1278:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeExtensionVisitor.getType():307:307 -> a
    1278:1278:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):692 -> a
    1279:1279:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):693:693 -> a
    1280:1280:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):675:675 -> a
    1:1:void visitTypeAlias(java.lang.String):643:643 -> b
    2:2:void visitStarProjection():654:654 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitOuterType(int):661:661 -> b
    1:1:int getFlags():594:594 -> c
    2:2:void visitTypeParameter(int):647:647 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAlias -> com.android.tools.r8.w.b.a.g0:
    java.util.List typeParameters -> b
    java.lang.String name -> h
    java.util.List versionRequirements -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType underlyingType -> c
    java.util.List annotations -> e
    int flags -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType expandedType -> d
    1:26:void <init>(int,java.lang.String):452:477 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):480:480 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitExpandedType(int):486:486 -> a
    3:3:void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation):489:489 -> a
    4:478:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor):501:975 -> a
    479:955:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor):501:977 -> a
    956:1431:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor):504:979 -> a
    1432:1433:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor):505:506 -> a
    1434:1434:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor):503:503 -> a
    1435:1435:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor):502:502 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitUnderlyingType(int):483:483 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():493:493 -> b
    1:1:int getFlags():450:450 -> c
    1:1:java.lang.String getName():451:451 -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor -> com.android.tools.r8.w.b.a.h0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor):386:386 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):386:386 -> <init>
    void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitExpandedType(int) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance) -> a
    1:1:void visitEnd():435:435 -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitUnderlyingType(int) -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement() -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor -> com.android.tools.r8.w.b.a.i0:
com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameter -> com.android.tools.r8.w.b.a.j0:
    java.util.List upperBounds -> b
    java.util.List extensions -> c
    int id -> f
    int flags -> d
    java.lang.String name -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance variance -> g
    1:420:void <init>(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):562:981 -> <init>
    421:834:void <init>(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):569:982 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitUpperBound(int):572:572 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):575:575 -> a
    3:395:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor):583:975 -> a
    396:790:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor):583:977 -> a
    791:791:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor):584:584 -> a
    792:792:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeParameterExtensionVisitor.getType():271:271 -> a
    792:792:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor):584 -> a
    793:793:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor):584:584 -> a
    794:794:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeParameterExtensionVisitor.getType():271:271 -> a
    794:794:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor):584 -> a
    795:795:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor):585:585 -> a
    1:1:int getFlags():558:558 -> b
    1:1:int getId():560:560 -> c
    1:1:java.lang.String getName():559:559 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance getVariance():561:561 -> e
com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor -> com.android.tools.r8.w.b.a.k0:
com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor -> com.android.tools.r8.w.b.a.l0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor):475:475 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):475:475 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitUpperBound(int) -> a
    1:1:void visitEnd():496:496 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeProjection -> com.android.tools.r8.w.b.a.m0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType type -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance variance -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeProjection STAR -> c
    1:1:void <clinit>():936:936 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlinx.metadata.KmType):929:929 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance component1() -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType component2() -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor -> com.android.tools.r8.w.b.a.n0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor):511:511 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):511:511 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitAbbreviatedType(int) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitArgument(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance) -> a
    void visitClass(java.lang.String) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitFlexibleTypeUpperBound(int,java.lang.String) -> a
    1:1:void visitEnd():610:610 -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitOuterType(int) -> b
    void visitStarProjection() -> b
    void visitTypeAlias(java.lang.String) -> b
    void visitTypeParameter(int) -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameter -> com.android.tools.r8.w.b.a.o0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType type -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmType varargElementType -> c
    int flags -> d
    java.lang.String name -> e
    1:1:void <init>(int,java.lang.String):519:519 -> <init>
    1:1:void setType(com.android.tools.r8.jetbrains.kotlinx.metadata.KmType):523:523 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitType(int):531:531 -> a
    3:5:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor):542:544 -> a
    1:1:int getFlags():517:517 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitVarargElementType(int):534:534 -> b
    1:1:java.lang.String getName():518:518 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor -> com.android.tools.r8.w.b.a.p0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor):445:445 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):445:445 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitType(int) -> a
    1:1:void visitEnd():466:466 -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitVarargElementType(int) -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance -> com.android.tools.r8.w.b.a.q0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance IN -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance INVARIANT -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance OUT -> c
    1:1:void <init>(java.lang.String,int):777:777 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersion -> com.android.tools.r8.w.b.a.r0:
    int minor -> b
    int patch -> c
    int major -> a
    1:1:void <init>(int,int,int):956:956 -> <init>
    1:1:int getMajor():956:956 -> a
    1:1:int getMinor():956:956 -> b
    1:1:int getPatch():956:956 -> c
    1:1:java.lang.String toString():957:957 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirement -> com.android.tools.r8.w.b.a.s0:
    java.lang.Integer errorCode -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel level -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind kind -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersion version -> f
    java.lang.String message -> e
    1:1:void <init>():703:703 -> <init>
    1:4:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):730:733 -> a
    5:5:void visitVersion(int,int,int):737:737 -> a
    6:8:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor):746:748 -> a
    9:9:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor):747:747 -> a
    10:10:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor):746:746 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel -> com.android.tools.r8.w.b.a.t0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel HIDDEN -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel ERROR -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel WARNING -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel[] $VALUES -> d
    1:1:void <init>(java.lang.String,int):821:821 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind -> com.android.tools.r8.w.b.a.u0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind API_VERSION -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind LANGUAGE_VERSION -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind COMPILER_VERSION -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind[] $VALUES -> d
    1:1:void <init>(java.lang.String,int):830:830 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor -> com.android.tools.r8.w.b.a.v0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor):622:622 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):622:622 -> <init>
    void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String) -> a
    void visitVersion(int,int,int) -> a
    1:1:void visitEnd():651:651 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter -> com.android.tools.r8.w.b.a.w0.i:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder t -> b
    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable):396:398 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):408:408 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):29:29 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):408 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor visitConstructor(int):414:414 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeConstructor(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):122:122 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeConstructor(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor visitConstructor(int):414 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):417:417 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeFunction(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):145:145 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeFunction(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):417 -> a
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):420:420 -> a
    8:8:void visitCompanionObject(java.lang.String):426:426 -> a
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):447:447 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitSupertype(int):411:411 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitSupertype(int):411 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):423:423 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeTypeAlias(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):241:241 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeTypeAlias(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):423 -> b
    5:6:void visitEnumEntry(java.lang.String):434:435 -> b
    7:7:void visitEnumEntry(java.lang.String):434:434 -> b
    1:4:void visit(int,java.lang.String):401:404 -> c
    5:5:void visitNestedClass(java.lang.String):430:430 -> c
    1:1:void visitSealedSubclass(java.lang.String):440:440 -> d
    2:3:void visitEnd():452:453 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():444:444 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):271:271 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():444 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext getC():398:398 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder getT():397:397 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter$visitConstructor$1 -> com.android.tools.r8.w.b.a.w0.a:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):396:396 -> a
    2:416:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder):0:414 -> a
    2:416:java.lang.Object invoke(java.lang.Object):396 -> a
    417:417:java.lang.Object invoke(java.lang.Object):396:396 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter$visitExtensions$1 -> com.android.tools.r8.w.b.a.w0.b:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType $type -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):396:396 -> a
    2:450:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions):0:448 -> a
    2:450:java.lang.Object invoke(java.lang.Object):396 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter$visitFunction$1 -> com.android.tools.r8.w.b.a.w0.c:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):396:396 -> a
    2:419:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder):0:417 -> a
    2:419:java.lang.Object invoke(java.lang.Object):396 -> a
    420:420:java.lang.Object invoke(java.lang.Object):396:396 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter$visitProperty$1 -> com.android.tools.r8.w.b.a.w0.d:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):396:396 -> a
    2:422:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder):0:420 -> a
    2:422:java.lang.Object invoke(java.lang.Object):396 -> a
    423:423:java.lang.Object invoke(java.lang.Object):396:396 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter$visitSupertype$1 -> com.android.tools.r8.w.b.a.w0.e:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):396:396 -> a
    2:413:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:411 -> a
    2:413:java.lang.Object invoke(java.lang.Object):396 -> a
    414:414:java.lang.Object invoke(java.lang.Object):396:396 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter$visitTypeAlias$1 -> com.android.tools.r8.w.b.a.w0.f:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):396:396 -> a
    2:425:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder):0:423 -> a
    2:425:java.lang.Object invoke(java.lang.Object):396 -> a
    426:426:java.lang.Object invoke(java.lang.Object):396:396 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter$visitTypeParameter$1 -> com.android.tools.r8.w.b.a.w0.g:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):396:396 -> a
    2:410:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder):0:408 -> a
    2:410:java.lang.Object invoke(java.lang.Object):396 -> a
    411:411:java.lang.Object invoke(java.lang.Object):396:396 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter$visitVersionRequirement$1 -> com.android.tools.r8.w.b.a.w0.h:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ClassWriter this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):396:396 -> a
    2:2:void invoke(int):444:444 -> a
    2:2:java.lang.Object invoke(java.lang.Object):396 -> a
    3:3:java.lang.Object invoke(java.lang.Object):396:396 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter -> com.android.tools.r8.w.b.a.w0.n:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder t -> b
    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable):458:460 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):463:463 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeFunction(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):145:145 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeFunction(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):463 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):466:466 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):472:472 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):469:469 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeTypeAlias(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):241:241 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeTypeAlias(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):469 -> b
    1:2:void visitEnd():477:478 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext getC():460:460 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder getT():459:459 -> f
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter$visitExtensions$1 -> com.android.tools.r8.w.b.a.w0.j:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter this$0 -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType $type -> b
    1:1:java.lang.Object invoke(java.lang.Object):458:458 -> a
    2:475:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions):0:473 -> a
    2:475:java.lang.Object invoke(java.lang.Object):458 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter$visitFunction$1 -> com.android.tools.r8.w.b.a.w0.k:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):458:458 -> a
    2:465:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder):0:463 -> a
    2:465:java.lang.Object invoke(java.lang.Object):458 -> a
    466:466:java.lang.Object invoke(java.lang.Object):458:458 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter$visitProperty$1 -> com.android.tools.r8.w.b.a.w0.l:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):458:458 -> a
    2:468:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder):0:466 -> a
    2:468:java.lang.Object invoke(java.lang.Object):458 -> a
    469:469:java.lang.Object invoke(java.lang.Object):458:458 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter$visitTypeAlias$1 -> com.android.tools.r8.w.b.a.w0.m:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.PackageWriter this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):458:458 -> a
    2:471:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder):0:469 -> a
    2:471:java.lang.Object invoke(java.lang.Object):458 -> a
    472:472:java.lang.Object invoke(java.lang.Object):458:458 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext -> com.android.tools.r8.w.b.a.w0.o:
    java.util.List extensions -> a
    java.util.Map typeParameterNameToId -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable types -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext parent -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver strings -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable versionRequirements -> e
    1:8:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):14:21 -> <init>
    1:1:java.util.List getExtensions$kotlinx_metadata():20:20 -> a
    2:2:java.lang.String className(int):27:27 -> a
    3:5:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext withTypeParameters(java.util.List):33:35 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver getStrings():15:15 -> b
    2:2:java.lang.String get(int):24:24 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable getTypes():16:16 -> c
    2:2:java.lang.Integer getTypeParameterId(int):30:30 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable getVersionRequirements$kotlinx_metadata():17:17 -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadUtilsKt -> com.android.tools.r8.w.b.a.w0.p:
    1:1:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.ClassNameKt.isLocal(java.lang.String):0:0 -> a
    1:1:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteUtilsKt.getClassNameIndex(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable,java.lang.String):109 -> a
    2:2:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.startsWith$default(java.lang.String,java.lang.String,boolean,int,java.lang.Object):195:195 -> a
    2:2:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt.startsWith$default(java.lang.String,java.lang.String,boolean,int,java.lang.Object):0 -> a
    2:2:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.ClassNameKt.isLocal(java.lang.String):22 -> a
    2:2:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteUtilsKt.getClassNameIndex(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable,java.lang.String):109 -> a
    3:5:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteUtilsKt.getClassNameIndex(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable,java.lang.String):110:112 -> a
    6:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteUtilsKt.writeAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable):17:22 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteUtilsKt.writeAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable):20:20 -> a
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteUtilsKt.writeAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable):17:17 -> a
    14:65:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation readAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):18:69 -> a
    66:66:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation readAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):68:68 -> a
    67:68:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation readAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):20:21 -> a
    69:69:com.android.tools.r8.jetbrains.kotlin.Pair com.android.tools.r8.jetbrains.kotlin.TuplesKt.to(java.lang.Object,java.lang.Object):43:43 -> a
    69:69:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation readAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):21 -> a
    70:70:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation readAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):68:68 -> a
    71:71:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation readAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):23:23 -> a
    72:72:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation readAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):17:17 -> a
    73:78:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):27:32 -> a
    79:79:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):31:31 -> a
    80:80:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):30:30 -> a
    81:103:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):29:51 -> a
    104:135:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50:81 -> a
    136:136:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):80:80 -> a
    137:167:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50:80 -> a
    168:168:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50:50 -> a
    169:169:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):49:49 -> a
    170:170:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):48:48 -> a
    171:171:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):47:47 -> a
    172:172:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):46:46 -> a
    173:173:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):45:45 -> a
    174:174:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):44:44 -> a
    175:175:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):43:43 -> a
    176:176:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):42:42 -> a
    177:177:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):41:41 -> a
    178:178:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):40:40 -> a
    179:179:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):39:39 -> a
    180:180:com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument readAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):38:38 -> a
    181:255:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteUtilsKt.writeAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable):28:102 -> a
    256:256:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteUtilsKt.writeAnnotationArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotationArgument,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable):28:28 -> a
    257:257:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):41:41 -> a
    258:258:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext.<init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):18:18 -> a
    258:258:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):41 -> a
    259:654:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):42:437 -> a
    655:655:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):436:436 -> a
    656:656:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):435:435 -> a
    657:657:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeParameterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):423:423 -> a
    657:657:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$getTypeParameterFlags$p(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):1 -> a
    657:657:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):440 -> a
    658:658:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):440:440 -> a
    659:1052:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):47:440 -> a
    1053:1053:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):434:434 -> a
    1054:1054:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50:50 -> a
    1055:1168:java.util.List com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.supertypes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:113 -> a
    1055:1168:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50 -> a
    1169:1169:java.util.List com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.supertypes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):24:24 -> a
    1169:1169:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50 -> a
    1170:1175:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50:55 -> a
    1176:1185:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):132:141 -> a
    1176:1185:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):55 -> a
    1186:1273:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readConstructorExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:87 -> a
    1186:1273:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):141 -> a
    1186:1273:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):55 -> a
    1274:1330:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignatureKt.wrapAsPublic(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method):0:56 -> a
    1274:1330:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readConstructorExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):87 -> a
    1274:1330:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):141 -> a
    1274:1330:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):55 -> a
    1331:1331:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readConstructorExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):87:87 -> a
    1331:1331:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):141 -> a
    1331:1331:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):55 -> a
    1332:1332:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readConstructorExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:0 -> a
    1332:1332:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):141 -> a
    1332:1332:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):55 -> a
    1333:1333:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):144:144 -> a
    1333:1333:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):55 -> a
    1334:1348:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):58:72 -> a
    1349:1349:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):70:70 -> a
    1350:1350:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
    1350:1350:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):70 -> a
    1351:1365:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):70:84 -> a
    1366:1394:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readClassExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:28 -> a
    1366:1394:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):84 -> a
    1395:1402:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readClassExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):27:34 -> a
    1395:1402:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):84 -> a
    1403:1403:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readClassExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:0 -> a
    1403:1403:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):84 -> a
    1404:1404:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):87:87 -> a
    1405:1405:java.lang.String getClassName(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,int):56:56 -> a
    1406:1406:java.lang.String com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver.getQualifiedClassName(int):72:72 -> a
    1406:1406:java.lang.String getClassName(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,int):56 -> a
    1407:1407:java.lang.String getClassName(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,int):57:57 -> a
    1408:1408:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):91:91 -> a
    1409:1409:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext.<init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):18:18 -> a
    1409:1409:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):91 -> a
    1410:1413:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):93:96 -> a
    1414:1456:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readPackageExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:42 -> a
    1414:1456:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):96 -> a
    1457:1464:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readPackageExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):41:48 -> a
    1457:1464:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):96 -> a
    1465:1465:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readPackageExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:0 -> a
    1465:1465:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):96 -> a
    1466:1466:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):99:99 -> a
    1467:1468:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):108:109 -> a
    1469:1766:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):148:445 -> a
    1469:1766:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    1767:1767:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):444:444 -> a
    1767:1767:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    1768:1768:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):443:443 -> a
    1768:1768:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    1769:1769:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeParameterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):423:423 -> a
    1769:1769:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$getTypeParameterFlags$p(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):1 -> a
    1769:1769:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):448 -> a
    1769:1769:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    1770:1770:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):448:448 -> a
    1770:1770:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    1771:2068:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):151:448 -> a
    1771:2068:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2069:2069:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):442:442 -> a
    2069:2069:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2070:2070:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):154:154 -> a
    2070:2070:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2071:2072:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
    2071:2072:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):155 -> a
    2071:2072:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2073:2085:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):155:167 -> a
    2073:2085:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2086:2092:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):354:360 -> a
    2086:2092:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):167 -> a
    2086:2092:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2093:2093:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):359:359 -> a
    2093:2093:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):167 -> a
    2093:2093:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2094:2102:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):358:366 -> a
    2094:2102:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):167 -> a
    2094:2102:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2103:2103:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):365:365 -> a
    2103:2103:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):167 -> a
    2103:2103:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2104:2109:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):364:369 -> a
    2104:2109:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):167 -> a
    2104:2109:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2110:2118:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):376:384 -> a
    2110:2118:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):369 -> a
    2110:2118:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):167 -> a
    2110:2118:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2119:2119:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):363:363 -> a
    2119:2119:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):167 -> a
    2119:2119:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2120:2135:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):357:372 -> a
    2120:2135:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):167 -> a
    2120:2135:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2136:2141:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):170:175 -> a
    2136:2141:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2142:2195:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readFunctionExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:53 -> a
    2142:2195:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):175 -> a
    2142:2195:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2196:2252:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignatureKt.wrapAsPublic(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method):0:56 -> a
    2196:2252:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readFunctionExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):53 -> a
    2196:2252:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):175 -> a
    2196:2252:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2253:2260:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readFunctionExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):53:60 -> a
    2253:2260:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):175 -> a
    2253:2260:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2261:2261:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readFunctionExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:0 -> a
    2261:2261:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):175 -> a
    2261:2261:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2262:2262:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):178:178 -> a
    2262:2262:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):109 -> a
    2263:2265:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):112:114 -> a
    2266:2272:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):113:119 -> a
    2273:2521:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):213:461 -> a
    2273:2521:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
    2522:2522:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):460:460 -> a
    2522:2522:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
    2523:2523:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):459:459 -> a
    2523:2523:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
    2524:2524:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeParameterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):423:423 -> a
    2524:2524:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$getTypeParameterFlags$p(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):1 -> a
    2524:2524:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):464 -> a
    2524:2524:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
    2525:2525:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):464:464 -> a
    2525:2525:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
    2526:2774:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):216:464 -> a
    2526:2774:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
    2775:2775:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):458:458 -> a
    2775:2775:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
    2776:2776:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):219:219 -> a
    2776:2776:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
    2777:2872:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.underlyingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:95 -> a
    2777:2872:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):219 -> a
    2777:2872:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
    2873:2876:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):220:223 -> a
    2873:2876:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
    2877:2978:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.expandedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:101 -> a
    2877:2978:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):223 -> a
    2877:2978:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
    2979:2990:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):224:235 -> a
    2979:2990:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
    2991:2991:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.expandedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):102:102 -> a
    2991:2991:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):223 -> a
    2991:2991:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
    2992:2992:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.underlyingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):96:96 -> a
    2992:2992:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):219 -> a
    2992:2992:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):119 -> a
    2993:3264:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):182:453 -> a
    3265:3265:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):452:452 -> a
    3266:3266:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):451:451 -> a
    3267:3267:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeParameterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):423:423 -> a
    3267:3267:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$getTypeParameterFlags$p(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):1 -> a
    3267:3267:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):456 -> a
    3268:3268:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):456:456 -> a
    3269:3540:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):185:456 -> a
    3541:3541:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):450:450 -> a
    3542:3542:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):188:188 -> a
    3543:3608:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.receiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:65 -> a
    3543:3608:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):188 -> a
    3609:3610:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
    3609:3610:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):189 -> a
    3611:3628:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):189:206 -> a
    3629:3701:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readPropertyExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:72 -> a
    3629:3701:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):206 -> a
    3702:3759:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignatureKt.wrapAsPublic(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Field):0:57 -> a
    3702:3759:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readPropertyExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):73 -> a
    3702:3759:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):206 -> a
    3760:3761:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readPropertyExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):74:75 -> a
    3760:3761:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):206 -> a
    3762:3773:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readPropertyExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):71:82 -> a
    3762:3773:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):206 -> a
    3774:3774:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readPropertyExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:0 -> a
    3774:3774:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):206 -> a
    3775:3775:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):209:209 -> a
    3776:3776:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeProperty(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):182:182 -> a
    3777:3781:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):239:243 -> a
    3782:3859:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.varargElementType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:77 -> a
    3782:3859:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):243 -> a
    3860:3861:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
    3860:3861:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):244 -> a
    3862:3865:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):244:247 -> a
    3866:3866:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):264:264 -> a
    3866:3866:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):1 -> a
    3867:3984:java.util.List com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.upperBounds(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:117 -> a
    3867:3984:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):264 -> a
    3867:3984:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):1 -> a
    3985:3985:java.util.List com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.upperBounds(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):39:39 -> a
    3985:3985:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):264 -> a
    3985:3985:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):1 -> a
    3986:3991:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):264:269 -> a
    3986:3991:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):1 -> a
    3992:4087:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readTypeParameterExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:95 -> a
    3992:4087:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):269 -> a
    3992:4087:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):1 -> a
    4088:4088:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readTypeParameterExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:0 -> a
    4088:4088:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):269 -> a
    4088:4088:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):1 -> a
    4089:4089:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):272:272 -> a
    4089:4089:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):1 -> a
    4090:4108:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):277:295 -> a
    4109:4109:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):294:294 -> a
    4110:4110:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):293:293 -> a
    4111:4118:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):292:299 -> a
    4119:4147:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.type(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:28 -> a
    4119:4147:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):299 -> a
    4148:4149:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
    4148:4149:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):301 -> a
    4150:4150:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):301:301 -> a
    4151:4151:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):300:300 -> a
    4152:4152:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
    4152:4152:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):300 -> a
    4153:4156:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):300:303 -> a
    4157:4173:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):291:307 -> a
    4174:4263:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.abbreviatedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:89 -> a
    4174:4263:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):307 -> a
    4264:4265:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
    4264:4265:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):308 -> a
    4266:4269:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):308:311 -> a
    4270:4353:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.outerType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:83 -> a
    4270:4353:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):311 -> a
    4354:4355:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
    4354:4355:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):312 -> a
    4356:4359:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):312:315 -> a
    4360:4394:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.flexibleUpperBound(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:34 -> a
    4360:4394:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):315 -> a
    4395:4396:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
    4395:4396:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):317 -> a
    4397:4397:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):318:318 -> a
    4398:4405:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):316:323 -> a
    4406:4510:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readTypeExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:104 -> a
    4406:4510:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):323 -> a
    4511:4511:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions.readTypeExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):0:0 -> a
    4511:4511:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):323 -> a
    4512:4512:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):326:326 -> a
    4513:4517:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):282:286 -> a
    4518:4518:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
    4518:4518:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):286 -> a
    4519:4519:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):286:286 -> a
    4520:4520:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330:330 -> a
    4521:4623:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion.create(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable):0:102 -> a
    4521:4623:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330 -> a
    4624:4627:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version$Companion.decode(java.lang.Integer,java.lang.Integer):65:68 -> a
    4624:4627:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion.create(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable):100 -> a
    4624:4627:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330 -> a
    4628:4636:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version$Companion.decode(java.lang.Integer,java.lang.Integer):65:73 -> a
    4628:4636:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion.create(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable):100 -> a
    4628:4636:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330 -> a
    4637:4642:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version$Companion.decode(java.lang.Integer,java.lang.Integer):70:75 -> a
    4637:4642:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion.create(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable):100 -> a
    4637:4642:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330 -> a
    4643:4646:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion.create(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable):105:108 -> a
    4643:4646:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330 -> a
    4647:4647:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion.create(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable):107:107 -> a
    4647:4647:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330 -> a
    4648:4657:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion.create(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable):106:115 -> a
    4648:4657:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330 -> a
    4658:4658:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion.create(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable):105:105 -> a
    4658:4658:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):330 -> a
    4659:4662:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):333:336 -> a
    4663:4663:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):335:335 -> a
    4664:4672:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):334:342 -> a
    4673:4673:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):341:341 -> a
    4674:4684:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):340:350 -> a
    4685:4685:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):331:331 -> a
    4686:4686:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
    4686:4686:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):331 -> a
    4687:4687:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.acceptVersionRequirementVisitor(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):331:331 -> a
    4688:4689:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):389:390 -> a
    4690:4700:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):388:398 -> a
    4701:4701:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):397:397 -> a
    4702:4702:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):396:396 -> a
    4703:4712:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):394:403 -> a
    4713:4820:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.isInstanceType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:107 -> a
    4713:4820:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):403 -> a
    4821:4822:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
    4821:4822:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):404 -> a
    4823:4834:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):404:415 -> a
    4835:4836:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
    4837:4837:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getPropertyGetterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):426:426 -> a
    4838:4838:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getDefaultPropertyAccessorFlags(int):432:432 -> a
    1:1:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getPropertySetterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):429:429 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext -> com.android.tools.r8.w.b.a.w0.q:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableVersionRequirementTable versionRequirements -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable strings -> b
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable):15:16 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.StringTable getStrings():15:15 -> a
    2:2:int get(java.lang.String):19:19 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableVersionRequirementTable getVersionRequirements():16:16 -> b
    2:2:int getClassName(java.lang.String):22:22 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeConstructor$1 -> com.android.tools.r8.w.b.a.w0.u:
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder t -> b
    int $flags -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):122:123 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String):126:126 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):220:220 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String):126 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):132:132 -> a
    4:7:void visitEnd():137:140 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():129:129 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):271:271 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():129 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder getT():123:123 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeConstructor$1$visitExtensions$1 -> com.android.tools.r8.w.b.a.w0.r:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType $type -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeConstructor$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):122:122 -> a
    2:135:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions):0:133 -> a
    2:135:java.lang.Object invoke(java.lang.Object):122 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeConstructor$1$visitValueParameter$1 -> com.android.tools.r8.w.b.a.w0.s:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeConstructor$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):122:122 -> a
    2:128:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder):0:126 -> a
    2:128:java.lang.Object invoke(java.lang.Object):122 -> a
    129:129:java.lang.Object invoke(java.lang.Object):122:122 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeConstructor$1$visitVersionRequirement$1 -> com.android.tools.r8.w.b.a.w0.t:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeConstructor$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):122:122 -> a
    2:2:void invoke(int):129:129 -> a
    2:2:java.lang.Object invoke(java.lang.Object):122 -> a
    3:3:java.lang.Object invoke(java.lang.Object):122:122 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeContract$1 -> com.android.tools.r8.w.b.a.w0.w:
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder t -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):320:321 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor visitEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind):324:324 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):334:334 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectVisitor visitEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind):324 -> a
    3:3:void visitEnd():327:327 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder getT():321:321 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeContract$1$visitEffect$1 -> com.android.tools.r8.w.b.a.w0.v:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeContract$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):320:320 -> a
    2:326:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder):0:324 -> a
    2:326:java.lang.Object invoke(java.lang.Object):320 -> a
    327:327:java.lang.Object invoke(java.lang.Object):320:320 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffect$1 -> com.android.tools.r8.w.b.a.w0.z:
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder t -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType $type -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind $invocationKind -> e
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectType,com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectInvocationKind,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):334:335 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitConclusionOfConditionalEffect():341:341 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeEffectExpression(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):361:361 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeEffectExpression(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitConclusionOfConditionalEffect():341 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitConstructorArgument():338:338 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeEffectExpression(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):361:361 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeEffectExpression(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitConstructorArgument():338 -> b
    1:4:void visitEnd():345:348 -> c
    5:5:void visitEnd():347:347 -> c
    6:14:void visitEnd():346:354 -> c
    15:15:void visitEnd():352:352 -> c
    16:21:void visitEnd():351:356 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder getT():335:335 -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffect$1$visitConclusionOfConditionalEffect$1 -> com.android.tools.r8.w.b.a.w0.x:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffect$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):334:334 -> a
    2:343:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder):0:341 -> a
    2:343:java.lang.Object invoke(java.lang.Object):334 -> a
    344:344:java.lang.Object invoke(java.lang.Object):334:334 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffect$1$visitConstructorArgument$1 -> com.android.tools.r8.w.b.a.w0.y:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffect$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):334:334 -> a
    2:340:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder):0:338 -> a
    2:340:java.lang.Object invoke(java.lang.Object):334 -> a
    341:341:java.lang.Object invoke(java.lang.Object):334:334 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffectExpression$1 -> com.android.tools.r8.w.b.a.w0.D:
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder t -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):361:362 -> <init>
    1:5:void visit(int,java.lang.Integer):365:369 -> a
    6:9:void visitConstantValue(java.lang.Object):375:378 -> a
    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitIsInstanceType(int):383:383 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitIsInstanceType(int):383 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitAndArgument():386:386 -> a
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeEffectExpression(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):361:361 -> a
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeEffectExpression(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitAndArgument():386 -> a
    1:1:void visitEnd():392:392 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitOrArgument():389:389 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeEffectExpression(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):361:361 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeEffectExpression(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmEffectExpressionVisitor visitOrArgument():389 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder getT():362:362 -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffectExpression$1$visitAndArgument$1 -> com.android.tools.r8.w.b.a.w0.A:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffectExpression$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):361:361 -> a
    2:388:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder):0:386 -> a
    2:388:java.lang.Object invoke(java.lang.Object):361 -> a
    389:389:java.lang.Object invoke(java.lang.Object):361:361 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffectExpression$1$visitIsInstanceType$1 -> com.android.tools.r8.w.b.a.w0.B:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffectExpression$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):361:361 -> a
    2:385:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:383 -> a
    2:385:java.lang.Object invoke(java.lang.Object):361 -> a
    386:386:java.lang.Object invoke(java.lang.Object):361:361 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffectExpression$1$visitOrArgument$1 -> com.android.tools.r8.w.b.a.w0.C:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeEffectExpression$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):361:361 -> a
    2:391:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder):0:389 -> a
    2:391:java.lang.Object invoke(java.lang.Object):361 -> a
    392:392:java.lang.Object invoke(java.lang.Object):361:361 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1 -> com.android.tools.r8.w.b.a.w0.L:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder t -> b
    int $flags -> e
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
    java.lang.String $name -> d
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,java.lang.String,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):145:146 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):149:149 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):29:29 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):149 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):152:152 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):152 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String):155:155 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):220:220 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String):155 -> a
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor visitContract():164:164 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeContract(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):320:320 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeContract(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor visitContract():164 -> a
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):167:167 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):158:158 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):158 -> b
    3:7:void visitEnd():172:176 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():161:161 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):271:271 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():161 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder getT():146:146 -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1$visitContract$1 -> com.android.tools.r8.w.b.a.w0.E:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):145:145 -> a
    2:166:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder):0:164 -> a
    2:166:java.lang.Object invoke(java.lang.Object):145 -> a
    167:168:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder.build():23584:23585 -> a
    167:168:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder):164 -> a
    167:168:java.lang.Object invoke(java.lang.Object):145 -> a
    169:169:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder):164:164 -> a
    169:169:java.lang.Object invoke(java.lang.Object):145 -> a
    170:170:java.lang.Object invoke(java.lang.Object):145:145 -> a
    171:171:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
    171:171:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder.build():23586 -> a
    171:171:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder):164 -> a
    171:171:java.lang.Object invoke(java.lang.Object):145 -> a
    172:172:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder.build():23586:23586 -> a
    172:172:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder):164 -> a
    172:172:java.lang.Object invoke(java.lang.Object):145 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1$visitExtensions$1 -> com.android.tools.r8.w.b.a.w0.F:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1 this$0 -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType $type -> b
    1:1:java.lang.Object invoke(java.lang.Object):145:145 -> a
    2:170:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions):0:168 -> a
    2:170:java.lang.Object invoke(java.lang.Object):145 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1$visitReceiverParameterType$1 -> com.android.tools.r8.w.b.a.w0.G:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):145:145 -> a
    2:154:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:152 -> a
    2:154:java.lang.Object invoke(java.lang.Object):145 -> a
    155:155:java.lang.Object invoke(java.lang.Object):145:145 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1$visitReturnType$1 -> com.android.tools.r8.w.b.a.w0.H:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):145:145 -> a
    2:160:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:158 -> a
    2:160:java.lang.Object invoke(java.lang.Object):145 -> a
    161:161:java.lang.Object invoke(java.lang.Object):145:145 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1$visitTypeParameter$1 -> com.android.tools.r8.w.b.a.w0.I:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):145:145 -> a
    2:151:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder):0:149 -> a
    2:151:java.lang.Object invoke(java.lang.Object):145 -> a
    152:152:java.lang.Object invoke(java.lang.Object):145:145 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1$visitValueParameter$1 -> com.android.tools.r8.w.b.a.w0.J:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):145:145 -> a
    2:157:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder):0:155 -> a
    2:157:java.lang.Object invoke(java.lang.Object):145 -> a
    158:158:java.lang.Object invoke(java.lang.Object):145:145 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1$visitVersionRequirement$1 -> com.android.tools.r8.w.b.a.w0.K:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeFunction$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):145:145 -> a
    2:2:void invoke(int):161:161 -> a
    2:2:java.lang.Object invoke(java.lang.Object):145 -> a
    3:3:java.lang.Object invoke(java.lang.Object):145:145 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1 -> com.android.tools.r8.w.b.a.w0.T:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder t -> b
    int $getterFlags -> f
    int $setterFlags -> g
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> h
    int $flags -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
    java.lang.String $name -> d
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,java.lang.String,int,int,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):182:183 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):186:186 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):29:29 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):186 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):189:189 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):189 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitSetterParameter(int,java.lang.String):192:192 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):220:220 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitSetterParameter(int,java.lang.String):192 -> a
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):201:201 -> a
    8:15:void visitEnd():206:213 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):195:195 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):195 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():198:198 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):271:271 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():198 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder getT():183:183 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1$visitExtensions$1 -> com.android.tools.r8.w.b.a.w0.M:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType $type -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):182:182 -> a
    2:204:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions):0:202 -> a
    2:204:java.lang.Object invoke(java.lang.Object):182 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1$visitReceiverParameterType$1 -> com.android.tools.r8.w.b.a.w0.N:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):182:182 -> a
    2:191:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:189 -> a
    2:191:java.lang.Object invoke(java.lang.Object):182 -> a
    192:192:java.lang.Object invoke(java.lang.Object):182:182 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1$visitReturnType$1 -> com.android.tools.r8.w.b.a.w0.O:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):182:182 -> a
    2:197:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:195 -> a
    2:197:java.lang.Object invoke(java.lang.Object):182 -> a
    198:198:java.lang.Object invoke(java.lang.Object):182:182 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1$visitSetterParameter$1 -> com.android.tools.r8.w.b.a.w0.P:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):182:182 -> a
    2:194:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder):0:192 -> a
    2:194:java.lang.Object invoke(java.lang.Object):182 -> a
    195:195:java.lang.Object invoke(java.lang.Object):182:182 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1$visitTypeParameter$1 -> com.android.tools.r8.w.b.a.w0.Q:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):182:182 -> a
    2:188:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder):0:186 -> a
    2:188:java.lang.Object invoke(java.lang.Object):182 -> a
    189:189:java.lang.Object invoke(java.lang.Object):182:182 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1$visitVersionRequirement$1 -> com.android.tools.r8.w.b.a.w0.S:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeProperty$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):182:182 -> a
    2:2:void invoke(int):198:198 -> a
    2:2:java.lang.Object invoke(java.lang.Object):182 -> a
    3:3:java.lang.Object invoke(java.lang.Object):182:182 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1 -> com.android.tools.r8.w.b.a.w0.Z:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder t -> b
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> e
    int $flags -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:58 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder access$getT$p(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1):57:57 -> a
    2:2:void visitClass(java.lang.String):61:61 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitArgument(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):75:75 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitArgument(int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):75 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitAbbreviatedType(int):91:91 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitAbbreviatedType(int):91 -> a
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitFlexibleTypeUpperBound(int,java.lang.String):97:97 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitFlexibleTypeUpperBound(int,java.lang.String):97 -> a
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):105:105 -> a
    10:17:void visitEnd():110:117 -> a
    1:1:void visitTypeAlias(java.lang.String):65:65 -> b
    2:3:void visitStarProjection():69:70 -> b
    4:4:void visitStarProjection():69:69 -> b
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitOuterType(int):94:94 -> b
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> b
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitOuterType(int):94 -> b
    1:1:void visitTypeParameter(int):87:87 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1$visitAbbreviatedType$1 -> com.android.tools.r8.w.b.a.w0.U:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):57:57 -> a
    2:93:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:91 -> a
    2:93:java.lang.Object invoke(java.lang.Object):57 -> a
    94:94:java.lang.Object invoke(java.lang.Object):57:57 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1$visitArgument$1 -> com.android.tools.r8.w.b.a.w0.V:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance $variance -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):57:57 -> a
    2:84:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:82 -> a
    2:84:java.lang.Object invoke(java.lang.Object):57 -> a
    85:85:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):76:76 -> a
    85:85:java.lang.Object invoke(java.lang.Object):57 -> a
    86:86:java.lang.Object invoke(java.lang.Object):57:57 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1$visitExtensions$1 -> com.android.tools.r8.w.b.a.w0.W:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType $type -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):57:57 -> a
    2:108:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions):0:106 -> a
    2:108:java.lang.Object invoke(java.lang.Object):57 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1$visitFlexibleTypeUpperBound$1 -> com.android.tools.r8.w.b.a.w0.X:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1 this$0 -> a
    java.lang.String $typeFlexibilityId -> b
    1:1:java.lang.Object invoke(java.lang.Object):57:57 -> a
    2:103:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:101 -> a
    2:103:java.lang.Object invoke(java.lang.Object):57 -> a
    104:104:java.lang.Object invoke(java.lang.Object):57:57 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1$visitOuterType$1 -> com.android.tools.r8.w.b.a.w0.Y:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeType$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):57:57 -> a
    2:96:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:94 -> a
    2:96:java.lang.Object invoke(java.lang.Object):57 -> a
    97:97:java.lang.Object invoke(java.lang.Object):57:57 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1 -> com.android.tools.r8.w.b.a.w0.e0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder t -> b
    int $flags -> d
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
    java.lang.String $name -> e
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):241:242 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):245:245 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):29:29 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):245 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitExpandedType(int):251:251 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitExpandedType(int):251 -> a
    5:5:void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation):254:254 -> a
    6:10:void visitEnd():261:265 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitUnderlyingType(int):248:248 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitUnderlyingType(int):248 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():258:258 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):271:271 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeVersionRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():258 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder getT():242:242 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1$visitExpandedType$1 -> com.android.tools.r8.w.b.a.w0.a0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):241:241 -> a
    2:253:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:251 -> a
    2:253:java.lang.Object invoke(java.lang.Object):241 -> a
    254:254:java.lang.Object invoke(java.lang.Object):241:241 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1$visitTypeParameter$1 -> com.android.tools.r8.w.b.a.w0.b0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):241:241 -> a
    2:247:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder):0:245 -> a
    2:247:java.lang.Object invoke(java.lang.Object):241 -> a
    248:248:java.lang.Object invoke(java.lang.Object):241:241 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1$visitUnderlyingType$1 -> com.android.tools.r8.w.b.a.w0.c0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):241:241 -> a
    2:250:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:248 -> a
    2:250:java.lang.Object invoke(java.lang.Object):241 -> a
    251:251:java.lang.Object invoke(java.lang.Object):241:241 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1$visitVersionRequirement$1 -> com.android.tools.r8.w.b.a.w0.d0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeAlias$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):241:241 -> a
    2:2:void invoke(int):258:258 -> a
    2:2:java.lang.Object invoke(java.lang.Object):241 -> a
    3:3:java.lang.Object invoke(java.lang.Object):241:241 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeParameter$1 -> com.android.tools.r8.w.b.a.w0.h0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder t -> b
    int $flags -> f
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> h
    int $id -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
    java.lang.String $name -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance $variance -> g
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,java.lang.String,int,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):29:30 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder access$getT$p(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeParameter$1):29:29 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitUpperBound(int):33:33 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitUpperBound(int):33 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):36:36 -> a
    5:16:void visitEnd():41:52 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeParameter$1$visitExtensions$1 -> com.android.tools.r8.w.b.a.w0.f0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeParameter$1 this$0 -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType $type -> b
    1:1:java.lang.Object invoke(java.lang.Object):29:29 -> a
    2:39:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions):0:37 -> a
    2:39:java.lang.Object invoke(java.lang.Object):29 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeParameter$1$visitUpperBound$1 -> com.android.tools.r8.w.b.a.w0.g0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeTypeParameter$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):29:29 -> a
    2:35:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:33 -> a
    2:35:java.lang.Object invoke(java.lang.Object):29 -> a
    36:36:java.lang.Object invoke(java.lang.Object):29:29 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeValueParameter$1 -> com.android.tools.r8.w.b.a.w0.k0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder t -> b
    int $flags -> d
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
    java.lang.String $name -> e
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,java.lang.String,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):220:221 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitType(int):224:224 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitType(int):224 -> a
    3:7:void visitEnd():230:234 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder getT():221:221 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitVarargElementType(int):227:227 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):57:57 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt.access$writeType(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitVarargElementType(int):227 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeValueParameter$1$visitType$1 -> com.android.tools.r8.w.b.a.w0.i0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeValueParameter$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):220:220 -> a
    2:226:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:224 -> a
    2:226:java.lang.Object invoke(java.lang.Object):220 -> a
    227:227:java.lang.Object invoke(java.lang.Object):220:220 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeValueParameter$1$visitVarargElementType$1 -> com.android.tools.r8.w.b.a.w0.j0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeValueParameter$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):220:220 -> a
    2:229:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):0:227 -> a
    2:229:java.lang.Object invoke(java.lang.Object):220 -> a
    230:230:java.lang.Object invoke(java.lang.Object):220:220 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeVersionRequirement$1 -> com.android.tools.r8.w.b.a.w0.n0:
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 $output -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder t -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):271:271 -> <init>
    1:5:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):275:279 -> a
    6:6:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):278:278 -> a
    7:7:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):277:277 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder.getDefaultInstanceForType():21511:21511 -> a
    8:8:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):281 -> a
    9:15:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):281:287 -> a
    16:16:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):286:286 -> a
    17:17:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):285:285 -> a
    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder.getDefaultInstanceForType():21511:21511 -> a
    18:18:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):289 -> a
    19:26:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):289:296 -> a
    27:27:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVersionKind,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementLevel,java.lang.Integer,java.lang.String):275:275 -> a
    28:33:void visitVersion(int,int,int):302:307 -> a
    34:34:void visitVersion(int,int,int):305:305 -> a
    35:35:void visitVersion(int,int,int):303:303 -> a
    36:39:void visitEnd():312:315 -> a
    40:40:void visitEnd():313:313 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder getT():272:272 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeVersionRequirement$1$visitVersion$1 -> com.android.tools.r8.w.b.a.w0.l0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeVersionRequirement$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):271:271 -> a
    2:2:void invoke(int):306:306 -> a
    2:2:java.lang.Object invoke(java.lang.Object):271 -> a
    3:3:java.lang.Object invoke(java.lang.Object):271:271 -> a
    4:4:void invoke(int):306:306 -> a
    4:4:java.lang.Object invoke(java.lang.Object):271 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeVersionRequirement$1$visitVersion$2 -> com.android.tools.r8.w.b.a.w0.m0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WritersKt$writeVersionRequirement$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):271:271 -> a
    2:2:void invoke(int):307:307 -> a
    2:2:java.lang.Object invoke(java.lang.Object):271 -> a
    3:3:java.lang.Object invoke(java.lang.Object):271:271 -> a
    4:4:void invoke(int):307:307 -> a
    4:4:java.lang.Object invoke(java.lang.Object):271 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmClassExtension -> com.android.tools.r8.w.b.a.w0.o0.a:
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmConstructorExtension -> com.android.tools.r8.w.b.a.w0.o0.b:
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmExtension -> com.android.tools.r8.w.b.a.w0.o0.c:
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmFunctionExtension -> com.android.tools.r8.w.b.a.w0.o0.d:
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmPackageExtension -> com.android.tools.r8.w.b.a.w0.o0.e:
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmPropertyExtension -> com.android.tools.r8.w.b.a.w0.o0.f:
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmTypeExtension -> com.android.tools.r8.w.b.a.w0.o0.g:
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmTypeParameterExtension -> com.android.tools.r8.w.b.a.w0.o0.h:
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions -> com.android.tools.r8.w.b.a.w0.o0.k:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions$Companion Companion -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions$Companion -> com.android.tools.r8.w.b.a.w0.o0.j:
    com.android.tools.r8.jetbrains.kotlin.Lazy INSTANCES$delegate -> b
    com.android.tools.r8.jetbrains.kotlin.reflect.KProperty[] $$delegatedProperties -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions$Companion $$INSTANCE -> c
    1:2:void <clinit>():61:62 -> <clinit>
    1:1:void <init>():61:61 -> <init>
    java.util.List getINSTANCES() -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions$Companion$INSTANCES$2 -> com.android.tools.r8.w.b.a.w0.o0.i:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions$Companion$INSTANCES$2 INSTANCE -> a
    1:2:java.util.List invoke():63:64 -> a
    1:2:java.lang.Object invoke():61 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1 -> com.android.tools.r8.w.b.a.x0.a.a:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation -> com.android.tools.r8.w.b.a.x0.a.k:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    java.util.List argument_ -> d
    int memoizedSerializedSize -> f
    int bitField0_ -> b
    int id_ -> c
    byte memoizedIsInitialized -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation defaultInstance -> g
    1:2652:void <clinit>():1956:4607 -> <clinit>
    2653:2654:void initFields():4210:4211 -> <clinit>
    2653:2654:void <clinit>():4608 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1875:1875 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1875:1875 -> <init>
    3:2367:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):1881:4245 -> <init>
    2368:2368:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):1882:1882 -> <init>
    2369:4730:void <init>(boolean):1884:4245 -> <init>
    4731:4731:void <init>(boolean):1884:1884 -> <init>
    4732:7078:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1899:4245 -> <init>
    7079:7111:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1900:1932 -> <init>
    7112:7129:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1923:1940 -> <init>
    7130:7145:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1938:1953 -> <init>
    7146:7153:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1944:1951 -> <init>
    1:1:int access$4402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,int):1875:1875 -> a
    2:2:java.util.List access$4500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):1875:1875 -> a
    3:3:java.util.List access$4502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,java.util.List):1875:1875 -> a
    4:4:boolean isInitialized():4215:4215 -> a
    5:5:boolean hasId():4165:4165 -> a
    5:5:boolean isInitialized():4219 -> a
    6:6:boolean isInitialized():4220:4220 -> a
    7:7:int getArgumentCount():4193:4193 -> a
    7:7:boolean isInitialized():4223 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument getArgument(int):4199:4199 -> a
    8:8:boolean isInitialized():4224 -> a
    9:14:boolean isInitialized():4224:4229 -> a
    15:22:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):4235:4242 -> a
    1:1:int access$4602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,int):1875:1875 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$4700(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):1875:1875 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getDefaultInstanceForType():1892:1892 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():1875 -> b
    1:14:int getSerializedSize():4247:4260 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder():4324:4324 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilderForType():4325 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():1875 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder():4324:4324 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4327 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder toBuilder():4329 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():1875 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4327:4327 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder toBuilder():4329 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():1875 -> e
    1:1:java.util.List getArgumentList():4180:4180 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getDefaultInstance():1888:1888 -> h
    1:1:int getId():4171:4171 -> i
    1:1:boolean hasId():4165:4165 -> j
    1:2:void initFields():4210:4211 -> k
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder():4324:4324 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder():4324:4324 -> m
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4327 -> m
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder toBuilder():4329 -> m
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4327:4327 -> m
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder toBuilder():4329 -> m
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$1 -> com.android.tools.r8.w.b.a.x0.a.b:
    1:1:void <init>():1957:1957 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1962:1962 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1957 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument -> com.android.tools.r8.w.b.a.x0.a.i:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument defaultInstance -> g
    int memoizedSerializedSize -> f
    int bitField0_ -> b
    int nameId_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value value_ -> d
    byte memoizedIsInitialized -> e
    1:2073:void <clinit>():2079:4151 -> <clinit>
    2074:2075:void initFields():3823:3824 -> <clinit>
    2074:2075:void <clinit>():4152 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1996:1996 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1996:1996 -> <init>
    3:1861:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2002:3860 -> <init>
    1862:1862:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2003:2003 -> <init>
    1863:3718:void <init>(boolean):2005:3860 -> <init>
    3719:3719:void <init>(boolean):2005:2005 -> <init>
    3720:5560:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2020:3860 -> <init>
    5561:5598:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2021:2058 -> <init>
    5599:5621:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2044:2066 -> <init>
    5622:5634:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2064:2076 -> <init>
    5635:5639:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2070:2074 -> <init>
    1:1:int access$3802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument,int):1996:1996 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value access$3902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):1996:1996 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$4100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):1996:1996 -> a
    4:4:boolean isInitialized():3828:3828 -> a
    5:5:boolean hasNameId():3798:3798 -> a
    5:5:boolean isInitialized():3832 -> a
    6:6:boolean isInitialized():3833:3833 -> a
    7:7:boolean hasValue():3813:3813 -> a
    7:7:boolean isInitialized():3836 -> a
    8:8:boolean isInitialized():3837:3837 -> a
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getValue():3819:3819 -> a
    9:9:boolean isInitialized():3840 -> a
    10:14:boolean isInitialized():3840:3844 -> a
    15:22:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):3850:3857 -> a
    1:1:int access$4002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument,int):1996:1996 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument getDefaultInstanceForType():2013:2013 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():1996 -> b
    1:14:int getSerializedSize():3862:3875 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilder():3939:3939 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilderForType():3940 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():1996 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilder():3939:3939 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):3942 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder toBuilder():3944 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():1996 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):3942:3942 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder toBuilder():3944 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():1996 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument getDefaultInstance():2009:2009 -> g
    1:1:int getNameId():3804:3804 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getValue():3819:3819 -> i
    1:1:boolean hasNameId():3798:3798 -> j
    1:1:boolean hasValue():3813:3813 -> k
    1:2:void initFields():3823:3824 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilder():3939:3939 -> m
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$1 -> com.android.tools.r8.w.b.a.x0.a.c:
    1:1:void <init>():2080:2080 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2085:2085 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2080 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder -> com.android.tools.r8.w.b.a.x0.a.d:
    int bitField0_ -> b
    int nameId_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value value_ -> d
    1:132:void <init>():3956:4087 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):3949:3949 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):4008:4010 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder setNameId(int):4072:4073 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):4010 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):4012:4013 -> a
    9:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):4126:4128 -> a
    9:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):4013 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value.newBuilder():2995:2995 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2998 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):4128 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):4013 -> a
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2998:2998 -> a
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):4128 -> a
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):4013 -> a
    14:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):4128:4134 -> a
    14:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):4013 -> a
    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):4015:4015 -> a
    22:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4042:4048 -> a
    22:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3949 -> a
    29:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4044:4048 -> a
    29:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3949 -> a
    34:34:boolean hasNameId():4060:4060 -> a
    34:34:boolean isInitialized():4021 -> a
    35:35:boolean hasValue():4092:4092 -> a
    35:35:boolean isInitialized():4025 -> a
    36:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getValue():4098:4098 -> a
    36:36:boolean isInitialized():4029 -> a
    37:37:boolean isInitialized():4029:4029 -> a
    38:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder setNameId(int):4072:4073 -> a
    40:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder setValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):4107:4109 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument getDefaultInstanceForType():3980:3980 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():3949 -> b
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument build():3984:3985 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3949 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument build():3986 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3949 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument build():3986:3986 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3949 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder create():3963:3963 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder clone():3976 -> clone
    1:1:java.lang.Object clone():3949 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder clone():3976:3976 -> clone
    2:2:java.lang.Object clone():3949 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument getDefaultInstanceForType():3980:3980 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():3949 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder create():3963:3963 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder access$3600():3949 -> f
    1:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument buildPartial():3992:4003 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value -> com.android.tools.r8.w.b.a.x0.a.h:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value defaultInstance -> p
    int memoizedSerializedSize -> o
    int arrayDimensionCount_ -> l
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    int flags_ -> m
    int classId_ -> h
    float floatValue_ -> e
    int enumValueId_ -> i
    int stringValue_ -> g
    long intValue_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation annotation_ -> j
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type type_ -> c
    byte memoizedIsInitialized -> n
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> q
    double doubleValue_ -> f
    java.util.List arrayElement_ -> k
    1:1388:void <clinit>():2398:3785 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2257:2257 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2257:2257 -> <init>
    3:620:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2263:2880 -> <init>
    621:621:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2264:2264 -> <init>
    622:1236:void <init>(boolean):2266:2880 -> <init>
    1237:1237:void <init>(boolean):2266:2266 -> <init>
    1238:1837:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2281:2880 -> <init>
    1838:1930:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2282:2374 -> <init>
    1931:1932:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2368:2369 -> <init>
    1933:1936:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2361:2364 -> <init>
    1937:1945:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2348:2356 -> <init>
    1946:1947:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2342:2343 -> <init>
    1948:1949:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2337:2338 -> <init>
    1950:1951:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2332:2333 -> <init>
    1952:1953:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2327:2328 -> <init>
    1954:1955:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2322:2323 -> <init>
    1956:1957:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2317:2318 -> <init>
    1958:2035:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2305:2382 -> <init>
    2036:2051:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2380:2395 -> <init>
    2052:2059:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2386:2393 -> <init>
    1:1:boolean hasStringValue():2647:2647 -> A
    1:1:boolean hasType():2581:2581 -> B
    1:11:void initFields():2807:2817 -> C
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder():2995:2995 -> D
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder():2995:2995 -> E
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2998 -> E
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder toBuilder():3000 -> E
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2998:2998 -> E
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder toBuilder():3000 -> E
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type access$2302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type):2257:2257 -> a
    2:2:long access$2402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,long):2257:2257 -> a
    3:3:float access$2502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,float):2257:2257 -> a
    4:4:double access$2602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,double):2257:2257 -> a
    5:5:int access$2702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2257:2257 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation access$3002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):2257:2257 -> a
    7:7:java.util.List access$3100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2257:2257 -> a
    8:8:java.util.List access$3102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,java.util.List):2257:2257 -> a
    9:9:boolean isInitialized():2821:2821 -> a
    10:10:boolean hasAnnotation():2700:2700 -> a
    10:10:boolean isInitialized():2825 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getAnnotation():2706:2706 -> a
    11:11:boolean isInitialized():2826 -> a
    12:13:boolean isInitialized():2826:2827 -> a
    14:14:int getArrayElementCount():2728:2728 -> a
    14:14:boolean isInitialized():2831 -> a
    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getArrayElement(int):2734:2734 -> a
    15:15:boolean isInitialized():2832 -> a
    16:21:boolean isInitialized():2832:2837 -> a
    22:56:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):2843:2877 -> a
    1:1:int access$2802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2257:2257 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$3500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2257:2257 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getDefaultInstanceForType():2274:2274 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():2257 -> b
    1:1:int access$2902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2257:2257 -> c
    2:11:int getSerializedSize():2882:2891 -> c
    12:12:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeSInt64Size(int,long):715:715 -> c
    12:12:int getSerializedSize():2891 -> c
    13:13:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeSInt64SizeNoTag(long):948:948 -> c
    13:13:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeSInt64Size(int,long):715 -> c
    13:13:int getSerializedSize():2891 -> c
    14:14:int getSerializedSize():2894:2894 -> c
    15:15:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeFloatSize(int,float):536:536 -> c
    15:15:int getSerializedSize():2895 -> c
    16:16:int getSerializedSize():2898:2898 -> c
    17:17:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeDoubleSize(int,double):528:528 -> c
    17:17:int getSerializedSize():2899 -> c
    18:47:int getSerializedSize():2902:2931 -> c
    1:1:int access$3202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2257:2257 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder():2995:2995 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilderForType():2996 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():2257 -> d
    1:1:int access$3302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2257:2257 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder():2995:2995 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2998 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder toBuilder():3000 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2257 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2998:2998 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder toBuilder():3000 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2257 -> e
    1:1:int access$3402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2257:2257 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getAnnotation():2706:2706 -> g
    1:1:int getArrayDimensionCount():2780:2780 -> h
    1:1:java.util.List getArrayElementList():2715:2715 -> i
    1:1:int getClassId():2676:2676 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getDefaultInstance():2270:2270 -> k
    1:1:double getDoubleValue():2638:2638 -> l
    1:1:int getEnumValueId():2691:2691 -> m
    1:1:int getFlags():2803:2803 -> n
    1:1:float getFloatValue():2623:2623 -> o
    1:1:long getIntValue():2608:2608 -> p
    1:1:int getStringValue():2653:2653 -> q
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type getType():2593:2593 -> r
    1:1:boolean hasAnnotation():2700:2700 -> s
    1:1:boolean hasArrayDimensionCount():2762:2762 -> t
    1:1:boolean hasClassId():2666:2666 -> u
    1:1:boolean hasDoubleValue():2632:2632 -> v
    1:1:boolean hasEnumValueId():2685:2685 -> w
    1:1:boolean hasFlags():2793:2793 -> x
    1:1:boolean hasFloatValue():2617:2617 -> y
    1:1:boolean hasIntValue():2602:2602 -> z
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$1 -> com.android.tools.r8.w.b.a.x0.a.e:
    1:1:void <init>():2399:2399 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2404:2404 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2399 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder -> com.android.tools.r8.w.b.a.x0.a.f:
    int arrayDimensionCount_ -> l
    int flags_ -> m
    int classId_ -> h
    float floatValue_ -> e
    int enumValueId_ -> i
    int stringValue_ -> g
    long intValue_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation annotation_ -> j
    int bitField0_ -> b
    double doubleValue_ -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type type_ -> c
    java.util.List arrayElement_ -> k
    1:516:void <init>():3012:3527 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):3005:3005 -> a
    2:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3119:3127 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setFloatValue(float):3308:3309 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3127 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3129:3130 -> a
    15:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setDoubleValue(double):3340:3341 -> a
    15:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3130 -> a
    17:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3132:3133 -> a
    19:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setStringValue(int):3372:3373 -> a
    19:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3133 -> a
    21:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3135:3139 -> a
    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setEnumValueId(int):3452:3453 -> a
    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3139 -> a
    28:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3141:3142 -> a
    30:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):3506:3508 -> a
    30:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3142 -> a
    33:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation.newBuilder():4324:4324 -> a
    33:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4327 -> a
    33:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):3508 -> a
    33:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3142 -> a
    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4327:4327 -> a
    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):3508 -> a
    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3142 -> a
    35:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):3508:3514 -> a
    35:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3142 -> a
    42:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3144:3155 -> a
    54:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setArrayDimensionCount(int):3705:3706 -> a
    54:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3155 -> a
    56:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3157:3160 -> a
    60:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3187:3193 -> a
    60:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3005 -> a
    67:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3189:3193 -> a
    67:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3005 -> a
    72:73:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type):3238:3239 -> a
    74:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type):3236:3236 -> a
    75:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setIntValue(long):3276:3277 -> a
    77:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setFloatValue(float):3308:3309 -> a
    79:80:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setDoubleValue(double):3340:3341 -> a
    81:82:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setClassId(int):3416:3417 -> a
    83:83:boolean hasAnnotation():3472:3472 -> a
    83:83:boolean isInitialized():3166 -> a
    84:84:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getAnnotation():3478:3478 -> a
    84:84:boolean isInitialized():3167 -> a
    85:85:boolean isInitialized():3167:3167 -> a
    86:86:int getArrayElementCount():3546:3546 -> a
    86:86:boolean isInitialized():3172 -> a
    87:87:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getArrayElement(int):3552:3552 -> a
    87:87:boolean isInitialized():3173 -> a
    88:88:boolean isInitialized():3173:3173 -> a
    89:91:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):3487:3489 -> a
    92:93:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder addArrayElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder):3607:3608 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getDefaultInstanceForType():3054:3054 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():3005 -> b
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setEnumValueId(int):3452:3453 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3005:3005 -> c
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setFlags(int):3761:3762 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder create():3019:3019 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder clone():3050 -> clone
    1:1:java.lang.Object clone():3005 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder clone():3050:3050 -> clone
    2:2:java.lang.Object clone():3005 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getDefaultInstanceForType():3054:3054 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():3005 -> d
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setStringValue(int):3372:3373 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder create():3019:3019 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder access$2100():3005 -> f
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value build():3058:3059 -> g
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> g
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value build():3060 -> g
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value build():3060:3060 -> g
    1:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value buildPartial():3066:3114 -> h
    1:3:void ensureArrayElementIsMutable():3530:3532 -> i
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type -> com.android.tools.r8.w.b.a.x0.a.g:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type[] $VALUES -> o
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type BYTE -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type CHAR -> c
    int value -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type SHORT -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type INT -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type LONG -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type FLOAT -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type DOUBLE -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type BOOLEAN -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type STRING -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type CLASS -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type ENUM -> l
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type ANNOTATION -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type ARRAY -> n
    1:49:void <clinit>():2421:2469 -> <clinit>
    50:50:void <clinit>():2416:2416 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):2561:2562 -> <init>
    1:1:int getNumber():2526:2526 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2542:2542 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2541:2541 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2540:2540 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2539:2539 -> b
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2538:2538 -> b
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2537:2537 -> b
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2536:2536 -> b
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2535:2535 -> b
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2534:2534 -> b
    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2533:2533 -> b
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2532:2532 -> b
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2531:2531 -> b
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2530:2530 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder -> com.android.tools.r8.w.b.a.x0.a.j:
    java.util.List argument_ -> d
    int bitField0_ -> b
    int id_ -> c
    1:138:void <init>():4341:4478 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):4334:4334 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4394:4396 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder setId(int):4463:4464 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4396 -> a
    7:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4398:4408 -> a
    18:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4433:4439 -> a
    18:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4334 -> a
    25:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4435:4439 -> a
    25:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4334 -> a
    30:30:boolean hasId():4451:4451 -> a
    30:30:boolean isInitialized():4414 -> a
    31:31:int getArgumentCount():4497:4497 -> a
    31:31:boolean isInitialized():4418 -> a
    32:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument getArgument(int):4503:4503 -> a
    32:32:boolean isInitialized():4419 -> a
    33:33:boolean isInitialized():4419:4419 -> a
    34:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder setId(int):4463:4464 -> a
    36:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder):4558:4559 -> a
    38:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder.build():3984:3985 -> a
    38:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder):4559 -> a
    40:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder):4559:4559 -> a
    41:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
    41:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder.build():3986 -> a
    41:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder):4559 -> a
    42:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder.build():3986:3986 -> a
    42:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder):4559 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getDefaultInstanceForType():4365:4365 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():4334 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():4334:4334 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder create():4348:4348 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder clone():4361 -> clone
    1:1:java.lang.Object clone():4334 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder clone():4361:4361 -> clone
    2:2:java.lang.Object clone():4334 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getDefaultInstanceForType():4365:4365 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():4334 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder create():4348:4348 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder access$4200():4334 -> f
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation build():4369:4370 -> g
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> g
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation build():4371 -> g
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation build():4371:4371 -> g
    1:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation buildPartial():4377:4389 -> h
    1:3:void ensureArgumentIsMutable():4481:4483 -> i
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class -> com.android.tools.r8.w.b.a.x0.a.o:
    java.util.List sealedSubclassFqName_ -> r
    int nestedClassNameMemoizedSerializedSize -> l
    java.util.List typeAlias_ -> p
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class defaultInstance -> y
    int supertypeIdMemoizedSerializedSize -> j
    int companionObjectName_ -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> t
    int flags_ -> d
    java.util.List supertype_ -> h
    java.util.List function_ -> n
    int sealedSubclassFqNameMemoizedSerializedSize -> s
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable versionRequirementTable_ -> v
    byte memoizedIsInitialized -> w
    java.util.List enumEntry_ -> q
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    java.util.List property_ -> o
    java.util.List versionRequirement_ -> u
    int fqName_ -> e
    int bitField0_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> z
    int memoizedSerializedSize -> x
    java.util.List supertypeId_ -> i
    java.util.List typeParameter_ -> g
    java.util.List constructor_ -> m
    java.util.List nestedClassName_ -> k
    1:2708:void <clinit>():8777:11484 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):8497:8497 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):8497:8497 -> <init>
    3:1002:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):8504:9503 -> <init>
    1003:1003:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):8505:8505 -> <init>
    1004:2000:void <init>(boolean):8507:9503 -> <init>
    2001:2001:void <init>(boolean):8507:8507 -> <init>
    2002:2983:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8522:9503 -> <init>
    2984:3184:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8523:8723 -> <init>
    3185:3194:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8701:8710 -> <init>
    3195:3198:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8694:8697 -> <init>
    3199:3207:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8681:8689 -> <init>
    3208:3217:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8667:8676 -> <init>
    3218:3221:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8660:8663 -> <init>
    3222:3225:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8652:8655 -> <init>
    3226:3229:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8644:8647 -> <init>
    3230:3233:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8636:8639 -> <init>
    3234:3237:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8628:8631 -> <init>
    3238:3241:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8620:8623 -> <init>
    3242:3251:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8606:8615 -> <init>
    3252:3255:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8599:8602 -> <init>
    3256:3259:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8591:8594 -> <init>
    3260:3263:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8583:8586 -> <init>
    3264:3265:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8577:8578 -> <init>
    3266:3267:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8572:8573 -> <init>
    3268:3277:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8559:8568 -> <init>
    3278:3281:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8552:8555 -> <init>
    3282:3467:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8546:8731 -> <init>
    3468:3513:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8729:8774 -> <init>
    3514:3553:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8735:8774 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getVersionRequirementTable():9346:9346 -> A
    1:1:boolean hasCompanionObjectName():8962:8962 -> B
    1:1:boolean hasFlags():8920:8920 -> C
    1:1:boolean hasFqName():8947:8947 -> D
    1:1:boolean hasTypeTable():9291:9291 -> E
    1:1:boolean hasVersionRequirementTable():9340:9340 -> F
    1:16:void initFields():9350:9365 -> G
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilder():9674:9674 -> H
    1:1:java.util.List access$10000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> a
    2:2:java.util.List access$10002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable access$10202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):8497:8497 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable access$10402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):8497:8497 -> a
    5:5:int access$10502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,int):8497:8497 -> a
    6:6:boolean isInitialized():9369:9369 -> a
    7:7:boolean hasFqName():8947:8947 -> a
    7:7:boolean isInitialized():9373 -> a
    8:8:boolean isInitialized():9374:9374 -> a
    9:9:int getTypeParameterCount():8990:8990 -> a
    9:9:boolean isInitialized():9377 -> a
    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):8996:8996 -> a
    10:10:boolean isInitialized():9378 -> a
    11:12:boolean isInitialized():9378:9379 -> a
    13:13:int getSupertypeCount():9025:9025 -> a
    13:13:boolean isInitialized():9383 -> a
    14:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getSupertype(int):9031:9031 -> a
    14:14:boolean isInitialized():9384 -> a
    15:16:boolean isInitialized():9384:9385 -> a
    17:17:int getConstructorCount():9106:9106 -> a
    17:17:boolean isInitialized():9389 -> a
    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getConstructor(int):9112:9112 -> a
    18:18:boolean isInitialized():9390 -> a
    19:20:boolean isInitialized():9390:9391 -> a
    21:21:int getFunctionCount():9141:9141 -> a
    21:21:boolean isInitialized():9395 -> a
    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getFunction(int):9147:9147 -> a
    22:22:boolean isInitialized():9396 -> a
    23:24:boolean isInitialized():9396:9397 -> a
    25:25:int getPropertyCount():9176:9176 -> a
    25:25:boolean isInitialized():9401 -> a
    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getProperty(int):9182:9182 -> a
    26:26:boolean isInitialized():9402 -> a
    27:28:boolean isInitialized():9402:9403 -> a
    29:29:int getTypeAliasCount():9211:9211 -> a
    29:29:boolean isInitialized():9407 -> a
    30:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getTypeAlias(int):9217:9217 -> a
    30:30:boolean isInitialized():9408 -> a
    31:32:boolean isInitialized():9408:9409 -> a
    33:33:int getEnumEntryCount():9246:9246 -> a
    33:33:boolean isInitialized():9413 -> a
    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getEnumEntry(int):9252:9252 -> a
    34:34:boolean isInitialized():9414 -> a
    35:36:boolean isInitialized():9414:9415 -> a
    37:37:boolean hasTypeTable():9291:9291 -> a
    37:37:boolean isInitialized():9419 -> a
    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():9297:9297 -> a
    38:38:boolean isInitialized():9420 -> a
    39:48:boolean isInitialized():9420:9429 -> a
    49:54:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):9435:9440 -> a
    55:55:java.util.List getSupertypeIdList():9048:9048 -> a
    55:55:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):9442 -> a
    56:73:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):9442:9459 -> a
    74:74:java.util.List getNestedClassNameList():9071:9071 -> a
    74:74:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):9461 -> a
    75:95:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):9461:9481 -> a
    96:96:java.util.List getSealedSubclassFqNameList():9269:9269 -> a
    96:96:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):9483 -> a
    97:114:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):9483:9500 -> a
    1:1:java.util.List access$10100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> b
    2:2:java.util.List access$10102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> b
    3:3:int access$8902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,int):8497:8497 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class getDefaultInstanceForType():8515:8515 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():8497 -> b
    1:1:java.util.List access$10300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> c
    2:2:java.util.List access$10302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> c
    3:3:int access$9002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,int):8497:8497 -> c
    4:15:int getSerializedSize():9505:9516 -> c
    16:16:java.util.List getSupertypeIdList():9048:9048 -> c
    16:16:int getSerializedSize():9520 -> c
    17:43:int getSerializedSize():9520:9546 -> c
    44:44:java.util.List getNestedClassNameList():9071:9071 -> c
    44:44:int getSerializedSize():9550 -> c
    45:75:int getSerializedSize():9550:9580 -> c
    76:76:java.util.List getSealedSubclassFqNameList():9269:9269 -> c
    76:76:int getSerializedSize():9584 -> c
    77:91:int getSerializedSize():9584:9598 -> c
    92:92:java.util.List getVersionRequirementList():9311:9311 -> c
    92:92:int getSerializedSize():9602 -> c
    93:101:int getSerializedSize():9602:9610 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$10600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> d
    2:2:int access$9102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,int):8497:8497 -> d
    3:3:java.util.List access$9202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilder():9674:9674 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilderForType():9675 -> d
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():8497 -> d
    1:1:java.util.List access$9200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> e
    2:2:java.util.List access$9302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilder():9674:9674 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9677 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder toBuilder():9679 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():8497 -> e
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9677:9677 -> e
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder toBuilder():9679 -> e
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():8497 -> e
    1:1:java.util.List access$9300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> f
    2:2:java.util.List access$9402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> f
    1:1:java.util.List access$9400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> g
    2:2:java.util.List access$9502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> g
    1:1:java.util.List access$9500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> h
    2:2:java.util.List access$9602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> h
    1:1:java.util.List access$9600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> i
    2:2:java.util.List access$9702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> i
    1:1:java.util.List access$9700(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> j
    2:2:java.util.List access$9802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> j
    1:1:java.util.List access$9800(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> k
    2:2:java.util.List access$9902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8497:8497 -> k
    3:3:int getCompanionObjectName():8968:8968 -> k
    1:1:java.util.List access$9900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8497:8497 -> l
    2:2:java.util.List getConstructorList():9093:9093 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class getDefaultInstance():8511:8511 -> m
    1:1:java.util.List getEnumEntryList():9233:9233 -> n
    1:1:int getFlags():8938:8938 -> o
    1:1:int getFqName():8953:8953 -> p
    1:1:java.util.List getFunctionList():9128:9128 -> q
    1:1:java.util.List getNestedClassNameList():9071:9071 -> r
    1:1:java.util.List getPropertyList():9163:9163 -> s
    1:1:java.util.List getSealedSubclassFqNameList():9269:9269 -> t
    1:1:java.util.List getSupertypeIdList():9048:9048 -> u
    1:1:java.util.List getSupertypeList():9012:9012 -> v
    1:1:java.util.List getTypeAliasList():9198:9198 -> w
    1:1:java.util.List getTypeParameterList():8977:8977 -> x
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():9297:9297 -> y
    1:1:java.util.List getVersionRequirementList():9311:9311 -> z
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$1 -> com.android.tools.r8.w.b.a.x0.a.l:
    1:1:void <init>():8778:8778 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8783:8783 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8778 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder -> com.android.tools.r8.w.b.a.x0.a.m:
    java.util.List sealedSubclassFqName_ -> q
    java.util.List enumEntry_ -> p
    java.util.List typeAlias_ -> o
    java.util.List versionRequirement_ -> s
    int fqName_ -> f
    int companionObjectName_ -> g
    int bitField0_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> r
    int flags_ -> e
    java.util.List supertypeId_ -> j
    java.util.List supertype_ -> i
    java.util.List typeParameter_ -> h
    java.util.List property_ -> n
    java.util.List function_ -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable versionRequirementTable_ -> t
    java.util.List constructor_ -> l
    java.util.List nestedClassName_ -> k
    1:1730:void <init>():9690:11419 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):9684:9684 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9837:9839 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setFlags(int):10101:10102 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9839 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9841:9842 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setFqName(int):10145:10146 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9842 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9844:9845 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setCompanionObjectName(int):10177:10178 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9845 -> a
    15:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9847:9870 -> a
    39:41:void ensureSupertypeIdIsMutable():10444:10446 -> a
    39:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9872 -> a
    42:117:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9873:9948 -> a
    118:120:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):11304:11306 -> a
    118:120:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9948 -> a
    121:121:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder():12993:12993 -> a
    121:121:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996 -> a
    121:121:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):11306 -> a
    121:121:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9948 -> a
    122:122:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996:12996 -> a
    122:122:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):11306 -> a
    122:122:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9948 -> a
    123:129:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):11306:11312 -> a
    123:129:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9948 -> a
    130:141:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9950:9961 -> a
    142:144:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):11458:11460 -> a
    142:144:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9961 -> a
    145:145:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable.newBuilder():22167:22167 -> a
    145:145:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170 -> a
    145:145:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):11460 -> a
    145:145:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9961 -> a
    146:146:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170:22170 -> a
    146:146:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):11460 -> a
    146:146:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9961 -> a
    147:153:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):11460:11466 -> a
    147:153:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9961 -> a
    154:155:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9963:9964 -> a
    156:162:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):10035:10041 -> a
    156:162:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):9684 -> a
    163:167:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):10037:10041 -> a
    163:167:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):9684 -> a
    168:168:boolean hasFqName():10133:10133 -> a
    168:168:boolean isInitialized():9970 -> a
    169:169:int getTypeParameterCount():10211:10211 -> a
    169:169:boolean isInitialized():9974 -> a
    170:170:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):10217:10217 -> a
    170:170:boolean isInitialized():9975 -> a
    171:171:boolean isInitialized():9975:9975 -> a
    172:172:int getSupertypeCount():10336:10336 -> a
    172:172:boolean isInitialized():9980 -> a
    173:173:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getSupertype(int):10342:10342 -> a
    173:173:boolean isInitialized():9981 -> a
    174:174:boolean isInitialized():9981:9981 -> a
    175:175:int getConstructorCount():10593:10593 -> a
    175:175:boolean isInitialized():9986 -> a
    176:176:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getConstructor(int):10599:10599 -> a
    176:176:boolean isInitialized():9987 -> a
    177:177:boolean isInitialized():9987:9987 -> a
    178:178:int getFunctionCount():10718:10718 -> a
    178:178:boolean isInitialized():9992 -> a
    179:179:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getFunction(int):10724:10724 -> a
    179:179:boolean isInitialized():9993 -> a
    180:180:boolean isInitialized():9993:9993 -> a
    181:181:int getPropertyCount():10843:10843 -> a
    181:181:boolean isInitialized():9998 -> a
    182:182:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getProperty(int):10849:10849 -> a
    182:182:boolean isInitialized():9999 -> a
    183:183:boolean isInitialized():9999:9999 -> a
    184:184:int getTypeAliasCount():10968:10968 -> a
    184:184:boolean isInitialized():10004 -> a
    185:185:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getTypeAlias(int):10974:10974 -> a
    185:185:boolean isInitialized():10005 -> a
    186:186:boolean isInitialized():10005:10005 -> a
    187:187:int getEnumEntryCount():11093:11093 -> a
    187:187:boolean isInitialized():10010 -> a
    188:188:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getEnumEntry(int):11099:11099 -> a
    188:188:boolean isInitialized():10011 -> a
    189:189:boolean isInitialized():10011:10011 -> a
    190:190:boolean hasTypeTable():11270:11270 -> a
    190:190:boolean isInitialized():10016 -> a
    191:191:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():11276:11276 -> a
    191:191:boolean isInitialized():10017 -> a
    192:197:boolean isInitialized():10017:10022 -> a
    198:199:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder):10272:10273 -> a
    200:201:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addSupertype(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):10397:10398 -> a
    202:203:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addNestedClassName(int):10548:10549 -> a
    204:205:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addConstructor(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder):10654:10655 -> a
    206:207:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder.build():13764:13765 -> a
    206:207:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addConstructor(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder):10655 -> a
    208:208:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addConstructor(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder):10655:10655 -> a
    209:209:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
    209:209:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder.build():13766 -> a
    209:209:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addConstructor(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder):10655 -> a
    210:210:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder.build():13766:13766 -> a
    210:210:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addConstructor(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder):10655 -> a
    211:212:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addFunction(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder):10779:10780 -> a
    213:214:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addProperty(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder):10904:10905 -> a
    215:216:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addTypeAlias(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder):11029:11030 -> a
    217:218:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addEnumEntry(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder):11154:11155 -> a
    219:220:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder.build():20707:20708 -> a
    219:220:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addEnumEntry(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder):11155 -> a
    221:221:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addEnumEntry(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder):11155:11155 -> a
    222:222:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
    222:222:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder.build():20709 -> a
    222:222:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addEnumEntry(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder):11155 -> a
    223:223:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder.build():20709:20709 -> a
    223:223:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addEnumEntry(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder):11155 -> a
    224:226:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):11439:11441 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class getDefaultInstanceForType():9742:9742 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():9684 -> b
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addSealedSubclassFqName(int):11239:11240 -> b
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class build():9746:9747 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():9684 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class build():9748 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():9684 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class build():9748:9748 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():9684 -> c
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder addVersionRequirement(int):11385:11386 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder create():9697:9697 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder clone():9738 -> clone
    1:1:java.lang.Object clone():9684 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder clone():9738:9738 -> clone
    2:2:java.lang.Object clone():9684 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class getDefaultInstanceForType():9742:9742 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():9684 -> d
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setCompanionObjectName(int):10177:10178 -> d
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setFlags(int):10101:10102 -> e
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setFqName(int):10145:10146 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder create():9697:9697 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder access$8700():9684 -> h
    1:79:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class buildPartial():9754:9832 -> i
    1:3:void ensureConstructorIsMutable():10577:10579 -> j
    1:3:void ensureEnumEntryIsMutable():11077:11079 -> k
    1:3:void ensureFunctionIsMutable():10702:10704 -> l
    1:3:void ensureNestedClassNameIsMutable():10510:10512 -> m
    1:3:void ensurePropertyIsMutable():10827:10829 -> n
    1:3:void ensureSealedSubclassFqNameIsMutable():11201:11203 -> o
    1:3:void ensureSupertypeIsMutable():10320:10322 -> p
    1:3:void ensureTypeAliasIsMutable():10952:10954 -> q
    1:3:void ensureTypeParameterIsMutable():10195:10197 -> r
    1:3:void ensureVersionRequirementIsMutable():11327:11329 -> s
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind -> com.android.tools.r8.w.b.a.x0.a.n:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind CLASS -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind ENUM_CLASS -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind INTERFACE -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind ANNOTATION_CLASS -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind ENUM_ENTRY -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind COMPANION_OBJECT -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind OBJECT -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind[] $VALUES -> i
    int value -> a
    1:25:void <clinit>():8804:8828 -> <clinit>
    26:26:void <clinit>():8795:8795 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):8894:8895 -> <init>
    1:1:int getNumber():8865:8865 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind[] values():8795:8795 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor -> com.android.tools.r8.w.b.a.x0.a.r:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    java.util.List versionRequirement_ -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor defaultInstance -> i
    java.util.List valueParameter_ -> e
    int memoizedSerializedSize -> h
    int flags_ -> d
    int bitField0_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> j
    byte memoizedIsInitialized -> g
    1:664:void <clinit>():13473:14136 -> <clinit>
    665:667:void initFields():13586:13588 -> <clinit>
    665:667:void <clinit>():14137 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13367:13367 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13367:13367 -> <init>
    3:258:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):13374:13629 -> <init>
    259:259:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):13375:13375 -> <init>
    260:512:void <init>(boolean):13377:13629 -> <init>
    513:513:void <init>(boolean):13377:13377 -> <init>
    514:751:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13392:13629 -> <init>
    752:805:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13393:13446 -> <init>
    806:809:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13430:13433 -> <init>
    810:813:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13422:13425 -> <init>
    814:852:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13416:13454 -> <init>
    853:871:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13452:13470 -> <init>
    872:884:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13458:13470 -> <init>
    1:1:int access$12702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,int):13367:13367 -> a
    2:2:java.util.List access$12800(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13367:13367 -> a
    3:3:java.util.List access$12802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,java.util.List):13367:13367 -> a
    4:4:boolean isInitialized():13592:13592 -> a
    5:5:int getValueParameterCount():13535:13535 -> a
    5:5:boolean isInitialized():13596 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getValueParameter(int):13541:13541 -> a
    6:6:boolean isInitialized():13597 -> a
    7:16:boolean isInitialized():13597:13606 -> a
    17:31:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):13612:13626 -> a
    1:1:java.util.List access$12900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13367:13367 -> b
    2:2:java.util.List access$12902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,java.util.List):13367:13367 -> b
    3:3:int access$13002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,int):13367:13367 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getDefaultInstanceForType():13385:13385 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():13367 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$13100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13367:13367 -> c
    2:17:int getSerializedSize():13631:13646 -> c
    18:18:java.util.List getVersionRequirementList():13562:13562 -> c
    18:18:int getSerializedSize():13650 -> c
    19:23:int getSerializedSize():13650:13654 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilder():13718:13718 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilderForType():13719 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():13367 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilder():13718:13718 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13721 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder toBuilder():13723 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():13367 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13721:13721 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder toBuilder():13723 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():13367 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getDefaultInstance():13381:13381 -> k
    1:1:int getFlags():13513:13513 -> l
    1:1:java.util.List getValueParameterList():13522:13522 -> m
    1:1:java.util.List getVersionRequirementList():13562:13562 -> n
    1:1:boolean hasFlags():13501:13501 -> o
    1:3:void initFields():13586:13588 -> p
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilder():13718:13718 -> q
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$1 -> com.android.tools.r8.w.b.a.x0.a.p:
    1:1:void <init>():13474:13474 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13479:13479 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13474 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder -> com.android.tools.r8.w.b.a.x0.a.q:
    java.util.List valueParameter_ -> f
    int bitField0_ -> d
    int flags_ -> e
    java.util.List versionRequirement_ -> g
    1:305:void <init>():13734:14038 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):13728:13728 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13794:13796 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder setFlags(int):13892:13893 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13796 -> a
    7:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13798:13819 -> a
    29:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13844:13850 -> a
    29:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13728 -> a
    36:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13846:13850 -> a
    36:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13728 -> a
    41:41:int getValueParameterCount():13932:13932 -> a
    41:41:boolean isInitialized():13825 -> a
    42:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getValueParameter(int):13938:13938 -> a
    42:42:boolean isInitialized():13826 -> a
    43:48:boolean isInitialized():13826:13831 -> a
    49:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder addValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):13970:13971 -> a
    51:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder addVersionRequirement(int):14098:14099 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getDefaultInstanceForType():13760:13760 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():13728 -> b
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder setFlags(int):13892:13893 -> b
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor build():13764:13765 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():13728 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor build():13766 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():13728 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor build():13766:13766 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():13728 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder create():13741:13741 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder clone():13756 -> clone
    1:1:java.lang.Object clone():13728 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder clone():13756:13756 -> clone
    2:2:java.lang.Object clone():13728 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getDefaultInstanceForType():13760:13760 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():13728 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder create():13741:13741 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder access$12500():13728 -> h
    1:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor buildPartial():13772:13789 -> i
    1:3:void ensureValueParameterIsMutable():13916:13918 -> j
    1:3:void ensureVersionRequirementIsMutable():14040:14042 -> k
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract -> com.android.tools.r8.w.b.a.x0.a.u:
    java.util.List effect_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract defaultInstance -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    int memoizedSerializedSize -> d
    byte memoizedIsInitialized -> c
    1:390:void <clinit>():23388:23777 -> <clinit>
    391:391:void initFields():23439:23439 -> <clinit>
    391:391:void <clinit>():23778 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23312:23312 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23312:23312 -> <init>
    3:151:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):23318:23466 -> <init>
    152:152:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):23319:23319 -> <init>
    153:298:void <init>(boolean):23321:23466 -> <init>
    299:299:void <init>(boolean):23321:23321 -> <init>
    300:430:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23336:23466 -> <init>
    431:466:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23337:23372 -> <init>
    467:482:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23370:23385 -> <init>
    483:490:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23376:23383 -> <init>
    1:1:java.util.List access$22500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23312:23312 -> a
    2:2:java.util.List access$22502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,java.util.List):23312:23312 -> a
    3:3:boolean isInitialized():23443:23443 -> a
    4:4:int getEffectCount():23422:23422 -> a
    4:4:boolean isInitialized():23447 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect getEffect(int):23428:23428 -> a
    5:5:boolean isInitialized():23448 -> a
    6:11:boolean isInitialized():23448:23453 -> a
    12:16:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):23459:23463 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$22600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23312:23312 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getDefaultInstanceForType():23329:23329 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():23312 -> b
    1:10:int getSerializedSize():23468:23477 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder():23541:23541 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilderForType():23542 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():23312 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder():23541:23541 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23544 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder toBuilder():23546 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():23312 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23544:23544 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder toBuilder():23546 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():23312 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getDefaultInstance():23325:23325 -> g
    1:1:java.util.List getEffectList():23409:23409 -> h
    1:1:void initFields():23439:23439 -> i
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder():23541:23541 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder():23541:23541 -> k
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23544 -> k
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder toBuilder():23546 -> k
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23544:23544 -> k
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder toBuilder():23546 -> k
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$1 -> com.android.tools.r8.w.b.a.x0.a.s:
    1:1:void <init>():23389:23389 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23394:23394 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23389 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder -> com.android.tools.r8.w.b.a.x0.a.t:
    java.util.List effect_ -> c
    int bitField0_ -> b
    1:91:void <init>():23558:23648 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):23551:23551 -> a
    2:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23603:23614 -> a
    14:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23635:23641 -> a
    14:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23551 -> a
    21:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23637:23641 -> a
    21:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23551 -> a
    26:26:int getEffectCount():23667:23667 -> a
    26:26:boolean isInitialized():23620 -> a
    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect getEffect(int):23673:23673 -> a
    27:27:boolean isInitialized():23621 -> a
    28:28:boolean isInitialized():23621:23621 -> a
    29:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder addEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder):23728:23729 -> a
    31:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder.build():24407:24408 -> a
    31:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder addEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder):23729 -> a
    33:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder addEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder):23729:23729 -> a
    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder.build():24409 -> a
    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder addEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder):23729 -> a
    35:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder.build():24409:24409 -> a
    35:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder addEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder):23729 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getDefaultInstanceForType():23580:23580 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():23551 -> b
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract build():23584:23585 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():23551 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract build():23586 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():23551 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract build():23586:23586 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():23551 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder create():23565:23565 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder clone():23576 -> clone
    1:1:java.lang.Object clone():23551 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder clone():23576:23576 -> clone
    2:2:java.lang.Object clone():23551 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getDefaultInstanceForType():23580:23580 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():23551 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder create():23565:23565 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder access$22300():23551 -> f
    1:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract buildPartial():23592:23598 -> g
    1:3:void ensureEffectIsMutable():23651:23653 -> h
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect -> com.android.tools.r8.w.b.a.x0.a.z:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType effectType_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    java.util.List effectConstructorArgument_ -> d
    int memoizedSerializedSize -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect defaultInstance -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression conclusionOfConditionalEffect_ -> e
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind kind_ -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> j
    byte memoizedIsInitialized -> g
    1:835:void <clinit>():23955:24789 -> <clinit>
    836:839:void initFields():24226:24229 -> <clinit>
    836:839:void <clinit>():24790 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23842:23842 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23842:23842 -> <init>
    3:426:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):23848:24271 -> <init>
    427:427:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):23849:23849 -> <init>
    428:848:void <init>(boolean):23851:24271 -> <init>
    849:849:void <init>(boolean):23851:23851 -> <init>
    850:1255:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23866:24271 -> <init>
    1256:1319:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23867:23930 -> <init>
    1320:1328:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23911:23919 -> <init>
    1329:1332:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23903:23906 -> <init>
    1333:1382:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23890:23939 -> <init>
    1383:1398:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23937:23952 -> <init>
    1399:1406:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23943:23950 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType access$23002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType):23842:23842 -> a
    2:2:java.util.List access$23100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):23842:23842 -> a
    3:3:java.util.List access$23102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,java.util.List):23842:23842 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression access$23202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):23842:23842 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind access$23302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind):23842:23842 -> a
    6:6:int access$23402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,int):23842:23842 -> a
    7:7:boolean isInitialized():24233:24233 -> a
    8:8:int getEffectConstructorArgumentCount():24169:24169 -> a
    8:8:boolean isInitialized():24237 -> a
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getEffectConstructorArgument(int):24175:24175 -> a
    9:9:boolean isInitialized():24238 -> a
    10:15:boolean isInitialized():24238:24243 -> a
    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getConclusionOfConditionalEffect():24207:24207 -> a
    16:16:boolean isInitialized():24244 -> a
    17:22:boolean isInitialized():24244:24249 -> a
    23:36:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):24255:24268 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$23500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):23842:23842 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect getDefaultInstanceForType():23859:23859 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():23842 -> b
    1:22:int getSerializedSize():24273:24294 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilder():24358:24358 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilderForType():24359 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():23842 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilder():24358:24358 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24361 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder toBuilder():24363 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():23842 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24361:24361 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder toBuilder():24363 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():23842 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getConclusionOfConditionalEffect():24207:24207 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect getDefaultInstance():23855:23855 -> h
    1:1:java.util.List getEffectConstructorArgumentList():24156:24156 -> i
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType getEffectType():24147:24147 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind getKind():24222:24222 -> k
    1:1:boolean hasConclusionOfConditionalEffect():24196:24196 -> l
    1:1:boolean hasEffectType():24141:24141 -> m
    1:1:boolean hasKind():24216:24216 -> n
    1:4:void initFields():24226:24229 -> o
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilder():24358:24358 -> p
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$1 -> com.android.tools.r8.w.b.a.x0.a.v:
    1:1:void <init>():23956:23956 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23961:23961 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23956 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder -> com.android.tools.r8.w.b.a.x0.a.w:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType effectType_ -> c
    java.util.List effectConstructorArgument_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression conclusionOfConditionalEffect_ -> e
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind kind_ -> f
    1:376:void <init>():24375:24750 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):24368:24368 -> a
    2:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24440:24455 -> a
    18:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeConclusionOfConditionalEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24724:24726 -> a
    18:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24455 -> a
    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression.newBuilder():25553:25553 -> a
    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25556 -> a
    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeConclusionOfConditionalEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24726 -> a
    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24455 -> a
    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25556:25556 -> a
    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeConclusionOfConditionalEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24726 -> a
    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24455 -> a
    23:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeConclusionOfConditionalEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24726:24732 -> a
    23:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24455 -> a
    30:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24457:24460 -> a
    34:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24487:24493 -> a
    34:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24368 -> a
    41:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24489:24493 -> a
    41:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24368 -> a
    46:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder setEffectType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType):24520:24521 -> a
    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder setEffectType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType):24518:24518 -> a
    49:49:int getEffectConstructorArgumentCount():24554:24554 -> a
    49:49:boolean isInitialized():24466 -> a
    50:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getEffectConstructorArgument(int):24560:24560 -> a
    50:50:boolean isInitialized():24467 -> a
    51:51:boolean isInitialized():24467:24467 -> a
    52:52:boolean hasConclusionOfConditionalEffect():24670:24670 -> a
    52:52:boolean isInitialized():24472 -> a
    53:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getConclusionOfConditionalEffect():24681:24681 -> a
    53:53:boolean isInitialized():24473 -> a
    54:54:boolean isInitialized():24473:24473 -> a
    55:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder addEffectConstructorArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder):24615:24616 -> a
    57:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder setConclusionOfConditionalEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24695:24697 -> a
    60:61:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder setKind(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind):24770:24771 -> a
    62:62:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder setKind(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind):24768:24768 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect getDefaultInstanceForType():24403:24403 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():24368 -> b
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect build():24407:24408 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():24368 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect build():24409 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():24368 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect build():24409:24409 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():24368 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder create():24382:24382 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder clone():24399 -> clone
    1:1:java.lang.Object clone():24368 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder clone():24399:24399 -> clone
    2:2:java.lang.Object clone():24368 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect getDefaultInstanceForType():24403:24403 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():24368 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder create():24382:24382 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder access$22800():24368 -> f
    1:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect buildPartial():24415:24435 -> g
    1:3:void ensureEffectConstructorArgumentIsMutable():24538:24540 -> h
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType -> com.android.tools.r8.w.b.a.x0.a.x:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType CALLS -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType RETURNS_NOT_NULL -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType[] $VALUES -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType RETURNS_CONSTANT -> b
    int value -> a
    1:18:void <clinit>():23990:24007 -> <clinit>
    19:19:void <clinit>():23981:23981 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):24062:24063 -> <init>
    1:1:int getNumber():24037:24037 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType valueOf(int):24043:24043 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType valueOf(int):24042:24042 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType valueOf(int):24041:24041 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind -> com.android.tools.r8.w.b.a.x0.a.y:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind AT_MOST_ONCE -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind EXACTLY_ONCE -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind[] $VALUES -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind AT_LEAST_ONCE -> d
    int value -> a
    1:9:void <clinit>():24077:24085 -> <clinit>
    10:10:void <clinit>():24072:24072 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):24127:24128 -> <init>
    1:1:int getNumber():24102:24102 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind valueOf(int):24108:24108 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind valueOf(int):24107:24107 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind valueOf(int):24106:24106 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry -> com.android.tools.r8.w.b.a.x0.a.C:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry defaultInstance -> g
    int memoizedSerializedSize -> f
    int name_ -> d
    int bitField0_ -> c
    byte memoizedIsInitialized -> e
    1:273:void <clinit>():20528:20800 -> <clinit>
    274:274:void initFields():20560:20560 -> <clinit>
    274:274:void <clinit>():20801 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20457:20457 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20457:20457 -> <init>
    3:128:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):20464:20589 -> <init>
    129:129:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):20465:20465 -> <init>
    130:252:void <init>(boolean):20467:20589 -> <init>
    253:253:void <init>(boolean):20467:20467 -> <init>
    254:361:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20482:20589 -> <init>
    362:394:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20483:20515 -> <init>
    395:407:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20513:20525 -> <init>
    408:414:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20519:20525 -> <init>
    1:1:int access$19402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry,int):20457:20457 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$19600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20457:20457 -> a
    3:11:boolean isInitialized():20564:20572 -> a
    12:20:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):20578:20586 -> a
    1:1:int access$19502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry,int):20457:20457 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getDefaultInstanceForType():20475:20475 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():20457 -> b
    1:11:int getSerializedSize():20591:20601 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilder():20665:20665 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilderForType():20666 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():20457 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilder():20665:20665 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20668 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder toBuilder():20670 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():20457 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20668:20668 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder toBuilder():20670 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():20457 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getDefaultInstance():20471:20471 -> k
    1:1:int getName():20556:20556 -> l
    1:1:boolean hasName():20550:20550 -> m
    1:1:void initFields():20560:20560 -> n
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilder():20665:20665 -> o
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$1 -> com.android.tools.r8.w.b.a.x0.a.A:
    1:1:void <init>():20529:20529 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20534:20534 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20529 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder -> com.android.tools.r8.w.b.a.x0.a.B:
    int bitField0_ -> d
    int name_ -> e
    1:1:void <init>():20681:20681 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):20675:20675 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20727:20729 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder setName(int):20781:20782 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20729 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20731:20732 -> a
    9:9:boolean isInitialized():20738:20738 -> a
    10:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20751:20757 -> a
    10:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20675 -> a
    17:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20753:20757 -> a
    17:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20675 -> a
    22:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder setName(int):20781:20782 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getDefaultInstanceForType():20703:20703 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():20675 -> b
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry build():20707:20708 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():20675 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry build():20709 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():20675 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry build():20709:20709 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():20675 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder create():20688:20688 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder clone():20699 -> clone
    1:1:java.lang.Object clone():20675 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder clone():20699:20699 -> clone
    2:2:java.lang.Object clone():20675 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getDefaultInstanceForType():20703:20703 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():20675 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder create():20688:20688 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder access$19200():20675 -> h
    1:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry buildPartial():20715:20722 -> i
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression -> com.android.tools.r8.w.b.a.x0.a.G:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    int memoizedSerializedSize -> k
    int isInstanceTypeId_ -> g
    int valueParameterReference_ -> d
    int bitField0_ -> b
    int flags_ -> c
    byte memoizedIsInitialized -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue constantValue_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type isInstanceType_ -> f
    java.util.List orArgument_ -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> m
    java.util.List andArgument_ -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression defaultInstance -> l
    1:1328:void <clinit>():25074:26401 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24947:24947 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24947:24947 -> <init>
    3:504:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):24953:25454 -> <init>
    505:505:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):24954:24954 -> <init>
    506:1004:void <init>(boolean):24956:25454 -> <init>
    1005:1005:void <init>(boolean):24956:24956 -> <init>
    1006:1489:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24971:25454 -> <init>
    1490:1565:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24972:25047 -> <init>
    1566:1569:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25036:25039 -> <init>
    1570:1571:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25030:25031 -> <init>
    1572:1580:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25018:25026 -> <init>
    1581:1588:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25005:25012 -> <init>
    1589:1590:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25000:25001 -> <init>
    1591:1651:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24995:25055 -> <init>
    1652:1670:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25053:25071 -> <init>
    1671:1681:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25059:25069 -> <init>
    1:1:int access$23902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,int):24947:24947 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue access$24102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue):24947:24947 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$24202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):24947:24947 -> a
    4:4:java.util.List access$24400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24947:24947 -> a
    5:5:java.util.List access$24402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,java.util.List):24947:24947 -> a
    6:10:boolean isInitialized():25401:25405 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getIsInstanceType():25242:25242 -> a
    11:11:boolean isInitialized():25406 -> a
    12:13:boolean isInitialized():25406:25407 -> a
    14:14:int getAndArgumentCount():25297:25297 -> a
    14:14:boolean isInitialized():25411 -> a
    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getAndArgument(int):25309:25309 -> a
    15:15:boolean isInitialized():25412 -> a
    16:17:boolean isInitialized():25412:25413 -> a
    18:18:int getOrArgumentCount():25362:25362 -> a
    18:18:boolean isInitialized():25417 -> a
    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getOrArgument(int):25374:25374 -> a
    19:19:boolean isInitialized():25418 -> a
    20:25:boolean isInitialized():25418:25423 -> a
    26:48:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):25429:25451 -> a
    1:1:int access$24002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,int):24947:24947 -> b
    2:2:java.util.List access$24500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24947:24947 -> b
    3:3:java.util.List access$24502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,java.util.List):24947:24947 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getDefaultInstanceForType():24964:24964 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():24947 -> b
    1:1:int access$24302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,int):24947:24947 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$24700(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24947:24947 -> c
    3:36:int getSerializedSize():25456:25489 -> c
    1:1:int access$24602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,int):24947:24947 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder():25553:25553 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilderForType():25554 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():24947 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder():25553:25553 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25556 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder toBuilder():25558 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():24947 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25556:25556 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder toBuilder():25558 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():24947 -> e
    1:1:java.util.List getAndArgumentList():25272:25272 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue getConstantValue():25217:25217 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getDefaultInstance():24960:24960 -> i
    1:1:int getFlags():25177:25177 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getIsInstanceType():25242:25242 -> k
    1:1:int getIsInstanceTypeId():25257:25257 -> l
    1:1:java.util.List getOrArgumentList():25337:25337 -> m
    1:1:int getValueParameterReference():25202:25202 -> n
    1:1:boolean hasConstantValue():25211:25211 -> o
    1:1:boolean hasFlags():25166:25166 -> p
    1:1:boolean hasIsInstanceType():25231:25231 -> q
    1:1:boolean hasIsInstanceTypeId():25251:25251 -> r
    1:1:boolean hasValueParameterReference():25191:25191 -> s
    1:7:void initFields():25391:25397 -> t
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder():25553:25553 -> u
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder():25553:25553 -> v
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25556 -> v
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder toBuilder():25558 -> v
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25556:25556 -> v
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder toBuilder():25558 -> v
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$1 -> com.android.tools.r8.w.b.a.x0.a.D:
    1:1:void <init>():25075:25075 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25080:25080 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25075 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder -> com.android.tools.r8.w.b.a.x0.a.E:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue constantValue_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type isInstanceType_ -> f
    int isInstanceTypeId_ -> g
    java.util.List orArgument_ -> i
    int valueParameterReference_ -> d
    java.util.List andArgument_ -> h
    int bitField0_ -> b
    int flags_ -> c
    1:625:void <init>():25575:26199 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):25568:25568 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25659:25661 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setFlags(int):25773:25774 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25661 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25663:25664 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setValueParameterReference(int):25825:25826 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25664 -> a
    11:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25666:25670 -> a
    16:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeIsInstanceType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):25944:25946 -> a
    16:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25670 -> a
    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeIsInstanceType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):25946 -> a
    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25670 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeIsInstanceType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):25946 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25670 -> a
    21:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeIsInstanceType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):25946:25952 -> a
    21:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25670 -> a
    28:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25672:25673 -> a
    30:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setIsInstanceTypeId(int):25987:25988 -> a
    30:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25673 -> a
    32:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25675:25695 -> a
    53:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25728:25734 -> a
    53:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25568 -> a
    60:64:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25730:25734 -> a
    60:64:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25568 -> a
    65:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setFlags(int):25773:25774 -> a
    67:68:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setConstantValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue):25865:25866 -> a
    69:69:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setConstantValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue):25863:25863 -> a
    70:70:boolean hasIsInstanceType():25890:25890 -> a
    70:70:boolean isInitialized():25701 -> a
    71:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getIsInstanceType():25901:25901 -> a
    71:71:boolean isInitialized():25702 -> a
    72:72:boolean isInitialized():25702:25702 -> a
    73:73:int getAndArgumentCount():26033:26033 -> a
    73:73:boolean isInitialized():25707 -> a
    74:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getAndArgument(int):26045:26045 -> a
    74:74:boolean isInitialized():25708 -> a
    75:75:boolean isInitialized():25708:25708 -> a
    76:76:int getOrArgumentCount():26230:26230 -> a
    76:76:boolean isInitialized():25713 -> a
    77:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getOrArgument(int):26242:26242 -> a
    77:77:boolean isInitialized():25714 -> a
    78:78:boolean isInitialized():25714:25714 -> a
    79:81:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setIsInstanceType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):25915:25917 -> a
    82:83:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder addAndArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder):26130:26131 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getDefaultInstanceForType():25609:25609 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():25568 -> b
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setValueParameterReference(int):25825:25826 -> b
    4:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder addOrArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder):26327:26328 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():25568:25568 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder create():25582:25582 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder clone():25605 -> clone
    1:1:java.lang.Object clone():25568 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder clone():25605:25605 -> clone
    2:2:java.lang.Object clone():25568 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getDefaultInstanceForType():25609:25609 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():25568 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder create():25582:25582 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder access$23700():25568 -> f
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression build():25613:25614 -> g
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> g
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression build():25615 -> g
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression build():25615:25615 -> g
    1:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression buildPartial():25621:25654 -> h
    1:3:void ensureAndArgumentIsMutable():26005:26007 -> i
    1:3:void ensureOrArgumentIsMutable():26202:26204 -> j
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue -> com.android.tools.r8.w.b.a.x0.a.F:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue NULL -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue TRUE -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue[] $VALUES -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue FALSE -> c
    int value -> a
    1:9:void <clinit>():25097:25105 -> <clinit>
    10:10:void <clinit>():25092:25092 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):25147:25148 -> <init>
    1:1:int getNumber():25122:25122 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue valueOf(int):25128:25128 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue valueOf(int):25127:25127 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue valueOf(int):25126:25126 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function -> com.android.tools.r8.w.b.a.x0.a.J:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function defaultInstance -> r
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    int receiverTypeId_ -> k
    int returnTypeId_ -> h
    int name_ -> f
    int flags_ -> d
    int oldFlags_ -> e
    int bitField0_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> s
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type receiverType_ -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type returnType_ -> g
    byte memoizedIsInitialized -> p
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract contract_ -> o
    java.util.List typeParameter_ -> i
    java.util.List versionRequirement_ -> n
    java.util.List valueParameter_ -> l
    int memoizedSerializedSize -> q
    1:1590:void <clinit>():14502:16091 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14313:14313 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14313:14313 -> <init>
    3:582:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):14320:14899 -> <init>
    583:583:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):14321:14321 -> <init>
    584:1160:void <init>(boolean):14323:14899 -> <init>
    1161:1161:void <init>(boolean):14323:14323 -> <init>
    1162:1723:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14338:14899 -> <init>
    1724:1857:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14339:14472 -> <init>
    1858:1867:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14450:14459 -> <init>
    1868:1871:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14443:14446 -> <init>
    1872:1880:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14430:14438 -> <init>
    1881:1882:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14424:14425 -> <init>
    1883:1884:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14419:14420 -> <init>
    1885:1886:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14414:14415 -> <init>
    1887:1890:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14407:14410 -> <init>
    1891:1899:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14394:14402 -> <init>
    1900:1903:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14386:14389 -> <init>
    1904:1912:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14373:14381 -> <init>
    1913:1914:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14367:14368 -> <init>
    1915:2033:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14362:14480 -> <init>
    2034:2055:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14478:14499 -> <init>
    2056:2071:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14484:14499 -> <init>
    1:1:boolean hasOldFlags():14567:14567 -> A
    1:1:boolean hasReceiverType():14662:14662 -> B
    1:1:boolean hasReceiverTypeId():14677:14677 -> C
    1:1:boolean hasReturnType():14597:14597 -> D
    1:1:boolean hasReturnTypeId():14612:14612 -> E
    1:1:boolean hasTypeTable():14727:14727 -> F
    1:12:void initFields():14786:14797 -> G
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilder():15024:15024 -> H
    1:1:int access$13502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14313:14313 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$13802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):14313:14313 -> a
    3:3:java.util.List access$14000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14313:14313 -> a
    4:4:java.util.List access$14002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,java.util.List):14313:14313 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable access$14402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):14313:14313 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract access$14602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):14313:14313 -> a
    7:7:boolean isInitialized():14801:14801 -> a
    8:8:boolean hasName():14582:14582 -> a
    8:8:boolean isInitialized():14805 -> a
    9:12:boolean isInitialized():14806:14809 -> a
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():14603:14603 -> a
    13:13:boolean isInitialized():14810 -> a
    14:15:boolean isInitialized():14810:14811 -> a
    16:16:int getTypeParameterCount():14640:14640 -> a
    16:16:boolean isInitialized():14815 -> a
    17:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):14646:14646 -> a
    17:17:boolean isInitialized():14816 -> a
    18:23:boolean isInitialized():14816:14821 -> a
    24:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():14668:14668 -> a
    24:24:boolean isInitialized():14822 -> a
    25:26:boolean isInitialized():14822:14823 -> a
    27:27:int getValueParameterCount():14705:14705 -> a
    27:27:boolean isInitialized():14827 -> a
    28:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getValueParameter(int):14711:14711 -> a
    28:28:boolean isInitialized():14828 -> a
    29:30:boolean isInitialized():14828:14829 -> a
    31:31:boolean hasTypeTable():14727:14727 -> a
    31:31:boolean isInitialized():14833 -> a
    32:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():14733:14733 -> a
    32:32:boolean isInitialized():14834 -> a
    33:38:boolean isInitialized():14834:14839 -> a
    39:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getContract():14782:14782 -> a
    39:39:boolean isInitialized():14840 -> a
    40:49:boolean isInitialized():14840:14849 -> a
    50:91:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):14855:14896 -> a
    1:1:int access$13602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14313:14313 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$14102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):14313:14313 -> b
    3:3:java.util.List access$14300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14313:14313 -> b
    4:4:java.util.List access$14302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,java.util.List):14313:14313 -> b
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getDefaultInstanceForType():14331:14331 -> b
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():14313 -> b
    1:1:int access$13702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14313:14313 -> c
    2:2:java.util.List access$14500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14313:14313 -> c
    3:3:java.util.List access$14502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,java.util.List):14313:14313 -> c
    4:51:int getSerializedSize():14901:14948 -> c
    52:52:java.util.List getVersionRequirementList():14747:14747 -> c
    52:52:int getSerializedSize():14952 -> c
    53:61:int getSerializedSize():14952:14960 -> c
    1:1:int access$13902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14313:14313 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$14800(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14313:14313 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilder():15024:15024 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilderForType():15025 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():14313 -> d
    1:1:int access$14202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14313:14313 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilder():15024:15024 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15027 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder toBuilder():15029 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():14313 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15027:15027 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder toBuilder():15029 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():14313 -> e
    1:1:int access$14702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14313:14313 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getContract():14782:14782 -> k
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getDefaultInstance():14327:14327 -> l
    1:1:int getFlags():14558:14558 -> m
    1:1:int getName():14588:14588 -> n
    1:1:int getOldFlags():14573:14573 -> o
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():14668:14668 -> p
    1:1:int getReceiverTypeId():14683:14683 -> q
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():14603:14603 -> r
    1:1:int getReturnTypeId():14618:14618 -> s
    1:1:java.util.List getTypeParameterList():14627:14627 -> t
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():14733:14733 -> u
    1:1:java.util.List getValueParameterList():14692:14692 -> v
    1:1:java.util.List getVersionRequirementList():14747:14747 -> w
    1:1:boolean hasContract():14776:14776 -> x
    1:1:boolean hasFlags():14538:14538 -> y
    1:1:boolean hasName():14582:14582 -> z
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$1 -> com.android.tools.r8.w.b.a.x0.a.H:
    1:1:void <init>():14503:14503 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14508:14508 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14503 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder -> com.android.tools.r8.w.b.a.x0.a.I:
    int receiverTypeId_ -> l
    java.util.List versionRequirement_ -> o
    int returnTypeId_ -> i
    int oldFlags_ -> f
    int name_ -> g
    int bitField0_ -> d
    int flags_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type receiverType_ -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> n
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract contract_ -> p
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type returnType_ -> h
    java.util.List typeParameter_ -> j
    java.util.List valueParameter_ -> m
    1:987:void <init>():15040:16026 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):15034:15034 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15155:15157 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setFlags(int):15345:15346 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15157 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15159:15160 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setOldFlags(int):15391:15392 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15160 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15162:15163 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setName(int):15423:15424 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15163 -> a
    15:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15165:15166 -> a
    17:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15477:15479 -> a
    17:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15166 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15479 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15166 -> a
    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15479 -> a
    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15166 -> a
    22:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15479:15485 -> a
    22:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15166 -> a
    29:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15168:15169 -> a
    31:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setReturnTypeId(int):15515:15516 -> a
    31:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15169 -> a
    33:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15171:15182 -> a
    45:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15694:15696 -> a
    45:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15182 -> a
    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15696 -> a
    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15182 -> a
    49:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
    49:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15696 -> a
    49:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15182 -> a
    50:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15696:15702 -> a
    50:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15182 -> a
    57:58:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15184:15185 -> a
    59:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setReceiverTypeId(int):15732:15733 -> a
    59:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15185 -> a
    61:72:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15187:15198 -> a
    73:75:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):15911:15913 -> a
    73:75:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15198 -> a
    76:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder():12993:12993 -> a
    76:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996 -> a
    76:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):15913 -> a
    76:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15198 -> a
    77:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996:12996 -> a
    77:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):15913 -> a
    77:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15198 -> a
    78:84:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):15913:15919 -> a
    78:84:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15198 -> a
    85:96:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15200:15211 -> a
    97:99:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeContract(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):16065:16067 -> a
    97:99:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15211 -> a
    100:100:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract.newBuilder():23541:23541 -> a
    100:100:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23544 -> a
    100:100:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeContract(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):16067 -> a
    100:100:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15211 -> a
    101:101:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23544:23544 -> a
    101:101:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeContract(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):16067 -> a
    101:101:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15211 -> a
    102:108:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeContract(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):16067:16073 -> a
    102:108:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15211 -> a
    109:110:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15213:15214 -> a
    111:117:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):15273:15279 -> a
    111:117:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):15034 -> a
    118:122:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):15275:15279 -> a
    118:122:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):15034 -> a
    123:123:boolean hasName():15411:15411 -> a
    123:123:boolean isInitialized():15220 -> a
    124:124:boolean hasReturnType():15443:15443 -> a
    124:124:boolean isInitialized():15224 -> a
    125:125:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():15449:15449 -> a
    125:125:boolean isInitialized():15225 -> a
    126:126:boolean isInitialized():15225:15225 -> a
    127:127:int getTypeParameterCount():15549:15549 -> a
    127:127:boolean isInitialized():15230 -> a
    128:128:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):15555:15555 -> a
    128:128:boolean isInitialized():15231 -> a
    129:129:boolean isInitialized():15231:15231 -> a
    130:130:boolean hasReceiverType():15660:15660 -> a
    130:130:boolean isInitialized():15236 -> a
    131:131:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():15666:15666 -> a
    131:131:boolean isInitialized():15237 -> a
    132:132:boolean isInitialized():15237:15237 -> a
    133:133:int getValueParameterCount():15766:15766 -> a
    133:133:boolean isInitialized():15242 -> a
    134:134:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getValueParameter(int):15772:15772 -> a
    134:134:boolean isInitialized():15243 -> a
    135:135:boolean isInitialized():15243:15243 -> a
    136:136:boolean hasTypeTable():15877:15877 -> a
    136:136:boolean isInitialized():15248 -> a
    137:137:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():15883:15883 -> a
    137:137:boolean isInitialized():15249 -> a
    138:138:boolean isInitialized():15249:15249 -> a
    139:139:boolean hasContract():16031:16031 -> a
    139:139:boolean isInitialized():15254 -> a
    140:140:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getContract():16037:16037 -> a
    140:140:boolean isInitialized():15255 -> a
    141:146:boolean isInitialized():15255:15260 -> a
    147:148:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder addTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder):15610:15611 -> a
    149:151:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15675:15677 -> a
    152:153:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder addValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder):15827:15828 -> a
    154:155:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder addVersionRequirement(int):15992:15993 -> a
    156:158:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setContract(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):16046:16048 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getDefaultInstanceForType():15084:15084 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():15034 -> b
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setFlags(int):15345:15346 -> b
    4:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15458:15460 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():15034:15034 -> c
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setName(int):15423:15424 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder create():15047:15047 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder clone():15080 -> clone
    1:1:java.lang.Object clone():15034 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder clone():15080:15080 -> clone
    2:2:java.lang.Object clone():15034 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getDefaultInstanceForType():15084:15084 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():15034 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder create():15047:15047 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder access$13300():15034 -> h
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function build():15088:15089 -> i
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> i
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function build():15090 -> i
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function build():15090:15090 -> i
    1:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function buildPartial():15096:15150 -> j
    1:3:void ensureTypeParameterIsMutable():15533:15535 -> k
    1:3:void ensureValueParameterIsMutable():15750:15752 -> l
    1:3:void ensureVersionRequirementIsMutable():15934:15936 -> m
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind -> com.android.tools.r8.w.b.a.x0.a.K:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind SYNTHESIZED -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind FAKE_OVERRIDE -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind DELEGATION -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind[] $VALUES -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind DECLARATION -> b
    int value -> a
    1:13:void <clinit>():205:217 -> <clinit>
    14:14:void <clinit>():196:196 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):268:269 -> <init>
    1:1:int getNumber():242:242 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind[] values():196:196 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality -> com.android.tools.r8.w.b.a.x0.a.L:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality ABSTRACT -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality SEALED -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality FINAL -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality[] $VALUES -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality OPEN -> c
    int value -> a
    1:13:void <clinit>():23:35 -> <clinit>
    14:14:void <clinit>() -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):86:87 -> <init>
    1:1:int getNumber():60:60 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality[] values():14:14 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package -> com.android.tools.r8.w.b.a.x0.a.O:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable versionRequirementTable_ -> h
    byte memoizedIsInitialized -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package defaultInstance -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    java.util.List typeAlias_ -> f
    int memoizedSerializedSize -> j
    java.util.List property_ -> e
    java.util.List function_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> l
    int bitField0_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> g
    1:997:void <clinit>():11683:12679 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):11558:11558 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):11558:11558 -> <init>
    3:342:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):11565:11904 -> <init>
    343:343:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):11566:11566 -> <init>
    344:680:void <init>(boolean):11568:11904 -> <init>
    681:681:void <init>(boolean):11568:11568 -> <init>
    682:1003:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11583:11904 -> <init>
    1004:1073:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11584:11653 -> <init>
    1074:1082:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11632:11640 -> <init>
    1083:1086:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11624:11627 -> <init>
    1087:1090:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11616:11619 -> <init>
    1091:1144:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11608:11661 -> <init>
    1145:1166:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11659:11680 -> <init>
    1167:1182:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11665:11680 -> <init>
    1:1:java.util.List access$11000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11558:11558 -> a
    2:2:java.util.List access$11002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,java.util.List):11558:11558 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable access$11302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):11558:11558 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable access$11402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):11558:11558 -> a
    5:5:int access$11502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,int):11558:11558 -> a
    6:6:boolean isInitialized():11843:11843 -> a
    7:7:int getFunctionCount():11718:11718 -> a
    7:7:boolean isInitialized():11847 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getFunction(int):11724:11724 -> a
    8:8:boolean isInitialized():11848 -> a
    9:10:boolean isInitialized():11848:11849 -> a
    11:11:int getPropertyCount():11753:11753 -> a
    11:11:boolean isInitialized():11853 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getProperty(int):11759:11759 -> a
    12:12:boolean isInitialized():11854 -> a
    13:14:boolean isInitialized():11854:11855 -> a
    15:15:int getTypeAliasCount():11788:11788 -> a
    15:15:boolean isInitialized():11859 -> a
    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getTypeAlias(int):11794:11794 -> a
    16:16:boolean isInitialized():11860 -> a
    17:18:boolean isInitialized():11860:11861 -> a
    19:19:boolean hasTypeTable():11810:11810 -> a
    19:19:boolean isInitialized():11865 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():11816:11816 -> a
    20:20:boolean isInitialized():11866 -> a
    21:30:boolean isInitialized():11866:11875 -> a
    31:51:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):11881:11901 -> a
    1:1:java.util.List access$11100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11558:11558 -> b
    2:2:java.util.List access$11102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,java.util.List):11558:11558 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package getDefaultInstanceForType():11576:11576 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():11558 -> b
    1:1:java.util.List access$11200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11558:11558 -> c
    2:2:java.util.List access$11202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,java.util.List):11558:11558 -> c
    3:29:int getSerializedSize():11906:11932 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$11600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11558:11558 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilder():11996:11996 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilderForType():11997 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():11558 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilder():11996:11996 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11999 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder toBuilder():12001 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():11558 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11999:11999 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder toBuilder():12001 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():11558 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package getDefaultInstance():11572:11572 -> k
    1:1:java.util.List getFunctionList():11705:11705 -> l
    1:1:java.util.List getPropertyList():11740:11740 -> m
    1:1:java.util.List getTypeAliasList():11775:11775 -> n
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():11816:11816 -> o
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getVersionRequirementTable():11831:11831 -> p
    1:1:boolean hasTypeTable():11810:11810 -> q
    1:1:boolean hasVersionRequirementTable():11825:11825 -> r
    1:5:void initFields():11835:11839 -> s
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilder():11996:11996 -> t
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$1 -> com.android.tools.r8.w.b.a.x0.a.M:
    1:1:void <init>():11684:11684 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11689:11689 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11684 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder -> com.android.tools.r8.w.b.a.x0.a.N:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable versionRequirementTable_ -> i
    java.util.List property_ -> f
    java.util.List function_ -> e
    int bitField0_ -> d
    java.util.List typeAlias_ -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> h
    1:603:void <init>():12012:12614 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):12006:12006 -> a
    2:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12085:12117 -> a
    35:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12593:12595 -> a
    35:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12117 -> a
    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder():12993:12993 -> a
    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996 -> a
    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12595 -> a
    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12117 -> a
    39:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996:12996 -> a
    39:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12595 -> a
    39:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12117 -> a
    40:46:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12595:12601 -> a
    40:46:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12117 -> a
    47:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12119:12120 -> a
    49:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):12653:12655 -> a
    49:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12120 -> a
    52:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable.newBuilder():22167:22167 -> a
    52:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170 -> a
    52:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):12655 -> a
    52:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12120 -> a
    53:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170:22170 -> a
    53:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):12655 -> a
    53:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12120 -> a
    54:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):12655:12661 -> a
    54:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12120 -> a
    61:62:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):12122:12123 -> a
    63:69:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12166:12172 -> a
    63:69:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12006 -> a
    70:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12168:12172 -> a
    70:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12006 -> a
    75:75:int getFunctionCount():12198:12198 -> a
    75:75:boolean isInitialized():12129 -> a
    76:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getFunction(int):12204:12204 -> a
    76:76:boolean isInitialized():12130 -> a
    77:77:boolean isInitialized():12130:12130 -> a
    78:78:int getPropertyCount():12323:12323 -> a
    78:78:boolean isInitialized():12135 -> a
    79:79:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getProperty(int):12329:12329 -> a
    79:79:boolean isInitialized():12136 -> a
    80:80:boolean isInitialized():12136:12136 -> a
    81:81:int getTypeAliasCount():12448:12448 -> a
    81:81:boolean isInitialized():12141 -> a
    82:82:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getTypeAlias(int):12454:12454 -> a
    82:82:boolean isInitialized():12142 -> a
    83:83:boolean isInitialized():12142:12142 -> a
    84:84:boolean hasTypeTable():12559:12559 -> a
    84:84:boolean isInitialized():12147 -> a
    85:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():12565:12565 -> a
    85:85:boolean isInitialized():12148 -> a
    86:91:boolean isInitialized():12148:12153 -> a
    92:93:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder addFunction(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder):12259:12260 -> a
    94:95:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder addProperty(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder):12384:12385 -> a
    96:97:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder addTypeAlias(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder):12509:12510 -> a
    98:100:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder setVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):12634:12636 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package getDefaultInstanceForType():12042:12042 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():12006 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():12006:12006 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder create():12019:12019 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder clone():12038 -> clone
    1:1:java.lang.Object clone():12006 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder clone():12038:12038 -> clone
    2:2:java.lang.Object clone():12006 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package getDefaultInstanceForType():12042:12042 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():12006 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder create():12019:12019 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder access$10800():12006 -> h
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package build():12046:12047 -> i
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> i
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package build():12048 -> i
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package build():12048:12048 -> i
    1:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package buildPartial():12054:12080 -> j
    1:3:void ensureFunctionIsMutable():12182:12184 -> k
    1:3:void ensurePropertyIsMutable():12307:12309 -> l
    1:3:void ensureTypeAliasIsMutable():12432:12434 -> m
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property -> com.android.tools.r8.w.b.a.x0.a.S:
    int setterFlags_ -> n
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter setterValueParameter_ -> l
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    int getterFlags_ -> m
    java.util.List versionRequirement_ -> o
    int receiverTypeId_ -> k
    int returnTypeId_ -> h
    int name_ -> f
    int flags_ -> d
    int oldFlags_ -> e
    int bitField0_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property defaultInstance -> r
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> s
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type receiverType_ -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type returnType_ -> g
    byte memoizedIsInitialized -> p
    java.util.List typeParameter_ -> i
    int memoizedSerializedSize -> q
    1:1501:void <clinit>():16465:17965 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16290:16290 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16290:16290 -> <init>
    3:564:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):16297:16858 -> <init>
    565:565:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):16298:16298 -> <init>
    566:1124:void <init>(boolean):16300:16858 -> <init>
    1125:1125:void <init>(boolean):16300:16300 -> <init>
    1126:1669:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16315:16858 -> <init>
    1670:1792:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16316:16438 -> <init>
    1793:1796:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16422:16425 -> <init>
    1797:1798:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16416:16417 -> <init>
    1799:1800:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16411:16412 -> <init>
    1801:1802:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16406:16407 -> <init>
    1803:1804:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16401:16402 -> <init>
    1805:1806:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16396:16397 -> <init>
    1807:1815:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16384:16392 -> <init>
    1816:1824:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16371:16379 -> <init>
    1825:1828:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16363:16366 -> <init>
    1829:1837:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16350:16358 -> <init>
    1838:1839:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16344:16345 -> <init>
    1840:1947:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16339:16446 -> <init>
    1948:1966:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16444:16462 -> <init>
    1967:1979:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16450:16462 -> <init>
    1:1:boolean hasOldFlags():16534:16534 -> A
    1:1:boolean hasReceiverType():16629:16629 -> B
    1:1:boolean hasReceiverTypeId():16644:16644 -> C
    1:1:boolean hasReturnType():16564:16564 -> D
    1:1:boolean hasReturnTypeId():16579:16579 -> E
    1:1:boolean hasSetterFlags():16713:16713 -> F
    1:1:boolean hasSetterValueParameter():16659:16659 -> G
    1:12:void initFields():16757:16768 -> H
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilder():16983:16983 -> I
    1:1:int access$15202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$15502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):16290:16290 -> a
    3:3:java.util.List access$15700(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16290:16290 -> a
    4:4:java.util.List access$15702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,java.util.List):16290:16290 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter access$16002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):16290:16290 -> a
    6:6:boolean isInitialized():16772:16772 -> a
    7:7:boolean hasName():16549:16549 -> a
    7:7:boolean isInitialized():16776 -> a
    8:11:boolean isInitialized():16777:16780 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():16570:16570 -> a
    12:12:boolean isInitialized():16781 -> a
    13:14:boolean isInitialized():16781:16782 -> a
    15:15:int getTypeParameterCount():16607:16607 -> a
    15:15:boolean isInitialized():16786 -> a
    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):16613:16613 -> a
    16:16:boolean isInitialized():16787 -> a
    17:22:boolean isInitialized():16787:16792 -> a
    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():16635:16635 -> a
    23:23:boolean isInitialized():16793 -> a
    24:29:boolean isInitialized():16793:16798 -> a
    30:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getSetterValueParameter():16665:16665 -> a
    30:30:boolean isInitialized():16799 -> a
    31:40:boolean isInitialized():16799:16808 -> a
    41:82:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):16814:16855 -> a
    1:1:int access$15302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$15802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):16290:16290 -> b
    3:3:java.util.List access$16300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16290:16290 -> b
    4:4:java.util.List access$16302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,java.util.List):16290:16290 -> b
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getDefaultInstanceForType():16308:16308 -> b
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():16290 -> b
    1:1:int access$15402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$16500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16290:16290 -> c
    3:54:int getSerializedSize():16860:16911 -> c
    55:55:java.util.List getVersionRequirementList():16733:16733 -> c
    55:55:int getSerializedSize():16915 -> c
    56:60:int getSerializedSize():16915:16919 -> c
    1:1:int access$15602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilder():16983:16983 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilderForType():16984 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():16290 -> d
    1:1:int access$15902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilder():16983:16983 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16986 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder toBuilder():16988 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():16290 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16986:16986 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder toBuilder():16988 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():16290 -> e
    1:1:int access$16102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> f
    1:1:int access$16202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> g
    1:1:int access$16402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16290:16290 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getDefaultInstance():16304:16304 -> k
    1:1:int getFlags():16525:16525 -> l
    1:1:int getGetterFlags():16704:16704 -> m
    1:1:int getName():16555:16555 -> n
    1:1:int getOldFlags():16540:16540 -> o
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():16635:16635 -> p
    1:1:int getReceiverTypeId():16650:16650 -> q
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():16570:16570 -> r
    1:1:int getReturnTypeId():16585:16585 -> s
    1:1:int getSetterFlags():16719:16719 -> t
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getSetterValueParameter():16665:16665 -> u
    1:1:java.util.List getTypeParameterList():16594:16594 -> v
    1:1:java.util.List getVersionRequirementList():16733:16733 -> w
    1:1:boolean hasFlags():16503:16503 -> x
    1:1:boolean hasGetterFlags():16686:16686 -> y
    1:1:boolean hasName():16549:16549 -> z
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$1 -> com.android.tools.r8.w.b.a.x0.a.P:
    1:1:void <init>():16466:16466 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16471:16471 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16466 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder -> com.android.tools.r8.w.b.a.x0.a.Q:
    int getterFlags_ -> n
    int setterFlags_ -> o
    int receiverTypeId_ -> l
    java.util.List versionRequirement_ -> p
    int returnTypeId_ -> i
    int oldFlags_ -> f
    int name_ -> g
    int bitField0_ -> d
    int flags_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type receiverType_ -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type returnType_ -> h
    java.util.List typeParameter_ -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter setterValueParameter_ -> m
    1:868:void <init>():16999:17866 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):16993:16993 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17113:17115 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setFlags(int):17290:17291 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17115 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17117:17118 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setOldFlags(int):17338:17339 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17118 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17120:17121 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setName(int):17370:17371 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17121 -> a
    15:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17123:17124 -> a
    17:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17424:17426 -> a
    17:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17124 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17426 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17124 -> a
    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17426 -> a
    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17124 -> a
    22:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17426:17432 -> a
    22:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17124 -> a
    29:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17126:17127 -> a
    31:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setReturnTypeId(int):17462:17463 -> a
    31:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17127 -> a
    33:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17129:17140 -> a
    45:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17641:17643 -> a
    45:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17140 -> a
    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17643 -> a
    48:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17140 -> a
    49:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
    49:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17643 -> a
    49:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17140 -> a
    50:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17643:17649 -> a
    50:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17140 -> a
    57:58:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17142:17143 -> a
    59:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setReceiverTypeId(int):17679:17680 -> a
    59:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17143 -> a
    61:62:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17145:17146 -> a
    63:65:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeSetterValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):17733:17735 -> a
    63:65:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17146 -> a
    66:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter.newBuilder():18441:18441 -> a
    66:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18444 -> a
    66:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeSetterValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):17735 -> a
    66:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17146 -> a
    67:67:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18444:18444 -> a
    67:67:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeSetterValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):17735 -> a
    67:67:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17146 -> a
    68:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeSetterValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):17735:17741 -> a
    68:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17146 -> a
    75:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17148:17149 -> a
    77:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setGetterFlags(int):17807:17808 -> a
    77:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17149 -> a
    79:80:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17151:17152 -> a
    81:82:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setSetterFlags(int):17851:17852 -> a
    81:82:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17152 -> a
    83:94:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):17154:17165 -> a
    95:101:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17212:17218 -> a
    95:101:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16993 -> a
    102:106:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17214:17218 -> a
    102:106:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16993 -> a
    107:107:boolean hasName():17358:17358 -> a
    107:107:boolean isInitialized():17171 -> a
    108:108:boolean hasReturnType():17390:17390 -> a
    108:108:boolean isInitialized():17175 -> a
    109:109:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():17396:17396 -> a
    109:109:boolean isInitialized():17176 -> a
    110:110:boolean isInitialized():17176:17176 -> a
    111:111:int getTypeParameterCount():17496:17496 -> a
    111:111:boolean isInitialized():17181 -> a
    112:112:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):17502:17502 -> a
    112:112:boolean isInitialized():17182 -> a
    113:113:boolean isInitialized():17182:17182 -> a
    114:114:boolean hasReceiverType():17607:17607 -> a
    114:114:boolean isInitialized():17187 -> a
    115:115:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():17613:17613 -> a
    115:115:boolean isInitialized():17188 -> a
    116:116:boolean isInitialized():17188:17188 -> a
    117:117:boolean hasSetterValueParameter():17699:17699 -> a
    117:117:boolean isInitialized():17193 -> a
    118:118:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getSetterValueParameter():17705:17705 -> a
    118:118:boolean isInitialized():17194 -> a
    119:124:boolean isInitialized():17194:17199 -> a
    125:126:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder addTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder):17557:17558 -> a
    127:129:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17622:17624 -> a
    130:132:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setSetterValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):17714:17716 -> a
    133:134:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder addVersionRequirement(int):17926:17927 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getDefaultInstanceForType():17043:17043 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():16993 -> b
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setFlags(int):17290:17291 -> b
    4:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17405:17407 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():16993:16993 -> c
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setGetterFlags(int):17807:17808 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder create():17006:17006 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder clone():17039 -> clone
    1:1:java.lang.Object clone():16993 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder clone():17039:17039 -> clone
    2:2:java.lang.Object clone():16993 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getDefaultInstanceForType():17043:17043 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():16993 -> d
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setName(int):17370:17371 -> d
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setSetterFlags(int):17851:17852 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder create():17006:17006 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder access$15000():16993 -> h
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property build():17047:17048 -> i
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> i
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property build():17049 -> i
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property build():17049:17049 -> i
    1:54:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property buildPartial():17055:17108 -> j
    1:3:void ensureTypeParameterIsMutable():17480:17482 -> k
    1:3:void ensureVersionRequirementIsMutable():17868:17870 -> l
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type -> com.android.tools.r8.w.b.a.x0.a.Z:
    int outerTypeId_ -> n
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    int typeAliasName_ -> l
    int typeParameter_ -> j
    int typeParameterName_ -> k
    int flexibleUpperBoundId_ -> h
    int className_ -> i
    int flexibleTypeCapabilitiesId_ -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type defaultInstance -> t
    int bitField0_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type abbreviatedType_ -> o
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type outerType_ -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> u
    java.util.List argument_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type flexibleUpperBound_ -> g
    boolean nullable_ -> e
    byte memoizedIsInitialized -> r
    int memoizedSerializedSize -> s
    int abbreviatedTypeId_ -> p
    int flags_ -> q
    1:2203:void <clinit>():4971:7173 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4805:4805 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4805:4805 -> <init>
    3:1246:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):4812:6055 -> <init>
    1247:1247:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):4813:4813 -> <init>
    1248:2488:void <init>(boolean):4815:6055 -> <init>
    2489:2489:void <init>(boolean):4815:4815 -> <init>
    2490:3715:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4830:6055 -> <init>
    3716:3832:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4831:4947 -> <init>
    3833:3841:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4934:4942 -> <init>
    3842:3843:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4928:4929 -> <init>
    3844:3845:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4923:4924 -> <init>
    3846:3854:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4911:4919 -> <init>
    3855:3856:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4905:4906 -> <init>
    3857:3858:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4900:4901 -> <init>
    3859:3860:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4895:4896 -> <init>
    3861:3862:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4890:4891 -> <init>
    3863:3871:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4878:4886 -> <init>
    3872:3873:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4872:4873 -> <init>
    3874:3875:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4867:4868 -> <init>
    3876:3879:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4860:4863 -> <init>
    3880:3981:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4854:4955 -> <init>
    3982:3997:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4953:4968 -> <init>
    3998:4007:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4959:4968 -> <init>
    1:1:boolean hasAbbreviatedTypeId():5917:5917 -> A
    1:1:boolean hasClassName():5778:5778 -> B
    1:1:boolean hasFlags():5936:5936 -> C
    1:1:boolean hasFlexibleTypeCapabilitiesId():5728:5728 -> D
    1:1:boolean hasFlexibleUpperBound():5748:5748 -> E
    1:1:boolean hasFlexibleUpperBoundId():5763:5763 -> F
    1:1:boolean hasNullable():5708:5708 -> G
    1:1:boolean hasOuterType():5868:5868 -> H
    1:1:boolean hasOuterTypeId():5887:5887 -> I
    1:1:boolean hasTypeAliasName():5844:5844 -> J
    1:1:boolean hasTypeParameter():5797:5797 -> K
    1:1:boolean hasTypeParameterName():5820:5820 -> L
    1:3:void initFields():5950:5952 -> M
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getDefaultInstance():4819:4819 -> M
    4:4:void initFields():5953 -> M
    5:15:void initFields():5953:5963 -> M
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder():6183:6183 -> N
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder():6183:6183 -> O
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> O
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder toBuilder():6188 -> O
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> O
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder toBuilder():6188 -> O
    1:1:java.util.List access$5900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):4805:4805 -> a
    2:2:java.util.List access$5902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,java.util.List):4805:4805 -> a
    3:3:boolean access$6002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,boolean):4805:4805 -> a
    4:4:int access$6102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$6202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):4805:4805 -> a
    6:6:boolean isInitialized():5967:5967 -> a
    7:7:int getArgumentCount():5686:5686 -> a
    7:7:boolean isInitialized():5971 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument getArgument(int):5692:5692 -> a
    8:8:boolean isInitialized():5972 -> a
    9:14:boolean isInitialized():5972:5977 -> a
    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getFlexibleUpperBound():5754:5754 -> a
    15:15:boolean isInitialized():5978 -> a
    16:21:boolean isInitialized():5978:5983 -> a
    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getOuterType():5878:5878 -> a
    22:22:boolean isInitialized():5984 -> a
    23:28:boolean isInitialized():5984:5989 -> a
    29:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getAbbreviatedType():5908:5908 -> a
    29:29:boolean isInitialized():5990 -> a
    30:39:boolean isInitialized():5990:5999 -> a
    40:87:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):6005:6052 -> a
    1:1:int access$6302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$6802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):4805:4805 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$7400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):4805:4805 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getDefaultInstanceForType():4823:4823 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():4805 -> b
    1:1:int access$6402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$7002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):4805:4805 -> c
    3:15:int getSerializedSize():6057:6069 -> c
    16:16:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeBoolSize(int,boolean):587:587 -> c
    16:16:int getSerializedSize():6070 -> c
    17:63:int getSerializedSize():6073:6119 -> c
    1:1:int access$6502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder():6183:6183 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilderForType():6184 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():4805 -> d
    1:1:int access$6602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder():6183:6183 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder toBuilder():6188 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():4805 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder toBuilder():6188 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():4805 -> e
    1:1:int access$6702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> f
    1:1:int access$6902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> g
    1:1:int access$7102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> h
    1:1:int access$7202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> i
    1:1:int access$7302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4805:4805 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getAbbreviatedType():5908:5908 -> k
    1:1:int getAbbreviatedTypeId():5923:5923 -> l
    1:1:java.util.List getArgumentList():5673:5673 -> m
    1:1:int getClassName():5784:5784 -> n
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getDefaultInstance():4819:4819 -> o
    1:1:int getFlags():5946:5946 -> p
    1:1:int getFlexibleTypeCapabilitiesId():5739:5739 -> q
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getFlexibleUpperBound():5754:5754 -> r
    1:1:int getFlexibleUpperBoundId():5769:5769 -> s
    1:1:boolean getNullable():5714:5714 -> t
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getOuterType():5878:5878 -> u
    1:1:int getOuterTypeId():5893:5893 -> v
    1:1:int getTypeAliasName():5855:5855 -> w
    1:1:int getTypeParameter():5807:5807 -> x
    1:1:int getTypeParameterName():5830:5830 -> y
    1:1:boolean hasAbbreviatedType():5902:5902 -> z
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$1 -> com.android.tools.r8.w.b.a.x0.a.T:
    1:1:void <init>():4972:4972 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4977:4977 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4972 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument -> com.android.tools.r8.w.b.a.x0.a.X:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument defaultInstance -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection projection_ -> c
    int memoizedSerializedSize -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type type_ -> d
    int typeId_ -> e
    int bitField0_ -> b
    byte memoizedIsInitialized -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> i
    1:537:void <clinit>():5123:5659 -> <clinit>
    538:540:void initFields():5267:5269 -> <clinit>
    538:540:void <clinit>():5660 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):5028:5028 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):5028:5028 -> <init>
    3:271:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):5034:5302 -> <init>
    272:272:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):5035:5035 -> <init>
    273:538:void <init>(boolean):5037:5302 -> <init>
    539:539:void <init>(boolean):5037:5037 -> <init>
    540:790:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5052:5302 -> <init>
    791:840:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5053:5102 -> <init>
    841:849:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5089:5097 -> <init>
    850:884:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5076:5110 -> <init>
    885:897:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5108:5120 -> <init>
    898:902:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5114:5118 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection access$5202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection):5028:5028 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$5302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):5028:5028 -> a
    3:3:int access$5402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument,int):5028:5028 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$5600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5028:5028 -> a
    5:9:boolean isInitialized():5273:5277 -> a
    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():5248:5248 -> a
    10:10:boolean isInitialized():5278 -> a
    11:16:boolean isInitialized():5278:5283 -> a
    17:27:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):5289:5299 -> a
    1:1:int access$5502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument,int):5028:5028 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument getDefaultInstanceForType():5045:5045 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():5028 -> b
    1:18:int getSerializedSize():5304:5321 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilder():5385:5385 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilderForType():5386 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():5028 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilder():5385:5385 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5388 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder toBuilder():5390 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():5028 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5388:5388 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder toBuilder():5390 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():5028 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument getDefaultInstance():5041:5041 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection getProjection():5225:5225 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():5248:5248 -> i
    1:1:int getTypeId():5263:5263 -> j
    1:1:boolean hasProjection():5219:5219 -> k
    1:1:boolean hasType():5238:5238 -> l
    1:1:boolean hasTypeId():5257:5257 -> m
    1:3:void initFields():5267:5269 -> n
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilder():5385:5385 -> o
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$1 -> com.android.tools.r8.w.b.a.x0.a.U:
    1:1:void <init>():5124:5124 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5129:5129 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5124 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder -> com.android.tools.r8.w.b.a.x0.a.V:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection projection_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type type_ -> d
    int typeId_ -> e
    int bitField0_ -> b
    1:138:void <init>():5402:5539 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):5395:5395 -> a
    2:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5460:5465 -> a
    8:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):5598:5600 -> a
    8:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5465 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):5600 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5465 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):5600 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5465 -> a
    13:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):5600:5606 -> a
    13:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5465 -> a
    20:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5467:5468 -> a
    22:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder setTypeId(int):5640:5641 -> a
    22:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5468 -> a
    24:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5470:5470 -> a
    25:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5491:5497 -> a
    25:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5395 -> a
    32:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5493:5497 -> a
    32:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5395 -> a
    37:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder setProjection(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection):5524:5525 -> a
    39:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder setProjection(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection):5522:5522 -> a
    40:40:boolean hasType():5548:5548 -> a
    40:40:boolean isInitialized():5476 -> a
    41:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():5558:5558 -> a
    41:41:boolean isInitialized():5477 -> a
    42:42:boolean isInitialized():5477:5477 -> a
    43:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder setType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):5571:5573 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument getDefaultInstanceForType():5428:5428 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():5395 -> b
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument build():5432:5433 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():5395 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument build():5434 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():5395 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument build():5434:5434 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():5395 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder create():5409:5409 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder clone():5424 -> clone
    1:1:java.lang.Object clone():5395 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder clone():5424:5424 -> clone
    2:2:java.lang.Object clone():5395 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument getDefaultInstanceForType():5428:5428 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():5395 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder create():5409:5409 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder access$5000():5395 -> f
    1:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument buildPartial():5440:5455 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection -> com.android.tools.r8.w.b.a.x0.a.W:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection STAR -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection IN -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection OUT -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection INV -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection[] $VALUES -> f
    int value -> a
    1:13:void <clinit>():5146:5158 -> <clinit>
    14:14:void <clinit>():5141:5141 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):5205:5206 -> <init>
    1:1:int getNumber():5179:5179 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection valueOf(int):5186:5186 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection valueOf(int):5185:5185 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection valueOf(int):5184:5184 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection valueOf(int):5183:5183 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder -> com.android.tools.r8.w.b.a.x0.a.Y:
    int outerTypeId_ -> o
    int typeParameterName_ -> l
    int typeAliasName_ -> m
    int className_ -> j
    int typeParameter_ -> k
    int flexibleUpperBoundId_ -> i
    int flexibleTypeCapabilitiesId_ -> g
    int bitField0_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type abbreviatedType_ -> p
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type outerType_ -> n
    java.util.List argument_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type flexibleUpperBound_ -> h
    boolean nullable_ -> f
    int flags_ -> r
    int abbreviatedTypeId_ -> q
    1:830:void <init>():6199:7028 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):6193:6193 -> a
    2:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6324:6339 -> a
    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlexibleTypeCapabilitiesId(int):6620:6621 -> a
    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6339 -> a
    20:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6341:6342 -> a
    22:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFlexibleUpperBound(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6679:6681 -> a
    22:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6342 -> a
    25:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
    25:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
    25:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFlexibleUpperBound(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6681 -> a
    25:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6342 -> a
    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFlexibleUpperBound(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6681 -> a
    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6342 -> a
    27:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFlexibleUpperBound(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6681:6687 -> a
    27:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6342 -> a
    34:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6344:6345 -> a
    36:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlexibleUpperBoundId(int):6717:6718 -> a
    36:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6345 -> a
    38:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6347:6348 -> a
    40:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setClassName(int):6749:6750 -> a
    40:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6348 -> a
    42:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6350:6351 -> a
    44:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setTypeParameter(int):6793:6794 -> a
    44:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6351 -> a
    46:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6353:6354 -> a
    48:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setTypeParameterName(int):6841:6842 -> a
    48:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6354 -> a
    50:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6356:6357 -> a
    52:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setTypeAliasName(int):6892:6893 -> a
    52:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6357 -> a
    54:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6359:6360 -> a
    56:58:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeOuterType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6971:6973 -> a
    56:58:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6360 -> a
    59:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
    59:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
    59:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeOuterType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6973 -> a
    59:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6360 -> a
    60:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
    60:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeOuterType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6973 -> a
    60:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6360 -> a
    61:67:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeOuterType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6973:6979 -> a
    61:67:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6360 -> a
    68:69:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6362:6363 -> a
    70:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setOuterTypeId(int):7013:7014 -> a
    70:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6363 -> a
    72:73:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6365:6366 -> a
    74:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeAbbreviatedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):7067:7069 -> a
    74:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6366 -> a
    77:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
    77:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
    77:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeAbbreviatedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):7069 -> a
    77:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6366 -> a
    78:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
    78:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeAbbreviatedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):7069 -> a
    78:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6366 -> a
    79:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeAbbreviatedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):7069:7075 -> a
    79:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6366 -> a
    86:87:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6368:6369 -> a
    88:89:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setAbbreviatedTypeId(int):7105:7106 -> a
    88:89:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6369 -> a
    90:91:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6371:6372 -> a
    92:93:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlags(int):7149:7150 -> a
    92:93:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6372 -> a
    94:95:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6374:6375 -> a
    96:102:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):6418:6424 -> a
    96:102:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):6193 -> a
    103:107:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):6420:6424 -> a
    103:107:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):6193 -> a
    108:108:int getArgumentCount():6450:6450 -> a
    108:108:boolean isInitialized():6381 -> a
    109:109:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument getArgument(int):6456:6456 -> a
    109:109:boolean isInitialized():6382 -> a
    110:110:boolean isInitialized():6382:6382 -> a
    111:111:boolean hasFlexibleUpperBound():6645:6645 -> a
    111:111:boolean isInitialized():6387 -> a
    112:112:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getFlexibleUpperBound():6651:6651 -> a
    112:112:boolean isInitialized():6388 -> a
    113:113:boolean isInitialized():6388:6388 -> a
    114:114:boolean hasOuterType():6921:6921 -> a
    114:114:boolean isInitialized():6393 -> a
    115:115:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getOuterType():6931:6931 -> a
    115:115:boolean isInitialized():6394 -> a
    116:116:boolean isInitialized():6394:6394 -> a
    117:117:boolean hasAbbreviatedType():7033:7033 -> a
    117:117:boolean isInitialized():6399 -> a
    118:118:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getAbbreviatedType():7039:7039 -> a
    118:118:boolean isInitialized():6400 -> a
    119:124:boolean isInitialized():6400:6405 -> a
    125:126:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder):6511:6512 -> a
    127:128:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder.build():5432:5433 -> a
    127:128:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder):6512 -> a
    129:129:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder):6512:6512 -> a
    130:130:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
    130:130:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder.build():5434 -> a
    130:130:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder):6512 -> a
    131:131:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder.build():5434:5434 -> a
    131:131:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder addArgument(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder):6512 -> a
    132:133:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setNullable(boolean):6573:6574 -> a
    134:135:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setClassName(int):6749:6750 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getDefaultInstanceForType():6247:6247 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():6193 -> b
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setAbbreviatedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):7048:7050 -> b
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlags(int):7149:7150 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():6193:6193 -> c
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlexibleTypeCapabilitiesId(int):6620:6621 -> c
    4:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlexibleUpperBound(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6660:6662 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder create():6206:6206 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder clone():6243 -> clone
    1:1:java.lang.Object clone():6193 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder clone():6243:6243 -> clone
    2:2:java.lang.Object clone():6193 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getDefaultInstanceForType():6247:6247 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():6193 -> d
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setTypeAliasName(int):6892:6893 -> d
    4:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setOuterType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6944:6946 -> d
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setTypeParameter(int):6793:6794 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder create():6206:6206 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder access$5700():6193 -> h
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type build():6251:6252 -> i
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> i
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type build():6253 -> i
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type build():6253:6253 -> i
    1:61:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type buildPartial():6259:6319 -> j
    1:3:void ensureArgumentIsMutable():6434:6436 -> k
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias -> com.android.tools.r8.w.b.a.x0.a.c0:
    int memoizedSerializedSize -> n
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    int expandedTypeId_ -> j
    int underlyingTypeId_ -> h
    int flags_ -> d
    int name_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias defaultInstance -> o
    int bitField0_ -> c
    java.util.List typeParameter_ -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type expandedType_ -> i
    byte memoizedIsInitialized -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type underlyingType_ -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> p
    java.util.List versionRequirement_ -> l
    java.util.List annotation_ -> k
    1:1264:void <clinit>():19171:20434 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):19013:19013 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):19013:19013 -> <init>
    3:464:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):19020:19481 -> <init>
    465:465:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):19021:19021 -> <init>
    466:924:void <init>(boolean):19023:19481 -> <init>
    925:925:void <init>(boolean):19023:19023 -> <init>
    926:1369:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19038:19481 -> <init>
    1370:1472:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19039:19141 -> <init>
    1473:1476:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19125:19128 -> <init>
    1477:1480:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19117:19120 -> <init>
    1481:1482:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19111:19112 -> <init>
    1483:1491:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19099:19107 -> <init>
    1492:1493:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19093:19094 -> <init>
    1494:1502:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19081:19089 -> <init>
    1503:1506:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19073:19076 -> <init>
    1507:1508:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19067:19068 -> <init>
    1509:1596:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19062:19149 -> <init>
    1597:1618:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19147:19168 -> <init>
    1619:1634:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19153:19168 -> <init>
    1:9:void initFields():19392:19400 -> A
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilder():19594:19594 -> B
    1:1:int access$18002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,int):19013:19013 -> a
    2:2:java.util.List access$18200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19013:19013 -> a
    3:3:java.util.List access$18202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,java.util.List):19013:19013 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$18302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):19013:19013 -> a
    5:5:boolean isInitialized():19404:19404 -> a
    6:6:boolean hasName():19218:19218 -> a
    6:6:boolean isInitialized():19408 -> a
    7:7:boolean isInitialized():19409:19409 -> a
    8:8:int getTypeParameterCount():19246:19246 -> a
    8:8:boolean isInitialized():19412 -> a
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):19252:19252 -> a
    9:9:boolean isInitialized():19413 -> a
    10:15:boolean isInitialized():19413:19418 -> a
    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUnderlyingType():19274:19274 -> a
    16:16:boolean isInitialized():19419 -> a
    17:22:boolean isInitialized():19419:19424 -> a
    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getExpandedType():19304:19304 -> a
    23:23:boolean isInitialized():19425 -> a
    24:25:boolean isInitialized():19425:19426 -> a
    26:26:int getAnnotationCount():19341:19341 -> a
    26:26:boolean isInitialized():19430 -> a
    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getAnnotation(int):19347:19347 -> a
    27:27:boolean isInitialized():19431 -> a
    28:37:boolean isInitialized():19431:19440 -> a
    38:70:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):19446:19478 -> a
    1:1:int access$18102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,int):19013:19013 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$18502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):19013:19013 -> b
    3:3:java.util.List access$18700(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19013:19013 -> b
    4:4:java.util.List access$18702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,java.util.List):19013:19013 -> b
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getDefaultInstanceForType():19031:19031 -> b
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():19013 -> b
    1:1:int access$18402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,int):19013:19013 -> c
    2:2:java.util.List access$18800(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19013:19013 -> c
    3:3:java.util.List access$18802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,java.util.List):19013:19013 -> c
    4:43:int getSerializedSize():19483:19522 -> c
    44:44:java.util.List getVersionRequirementList():19368:19368 -> c
    44:44:int getSerializedSize():19526 -> c
    45:49:int getSerializedSize():19526:19530 -> c
    1:1:int access$18602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,int):19013:19013 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$19000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19013:19013 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilder():19594:19594 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilderForType():19595 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():19013 -> d
    1:1:int access$18902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,int):19013:19013 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilder():19594:19594 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19597 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder toBuilder():19599 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():19013 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19597:19597 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder toBuilder():19599 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():19013 -> e
    1:1:java.util.List getAnnotationList():19328:19328 -> k
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getDefaultInstance():19027:19027 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getExpandedType():19304:19304 -> m
    1:1:int getExpandedTypeId():19319:19319 -> n
    1:1:int getFlags():19209:19209 -> o
    1:1:int getName():19224:19224 -> p
    1:1:java.util.List getTypeParameterList():19233:19233 -> q
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUnderlyingType():19274:19274 -> r
    1:1:int getUnderlyingTypeId():19289:19289 -> s
    1:1:java.util.List getVersionRequirementList():19368:19368 -> t
    1:1:boolean hasExpandedType():19298:19298 -> u
    1:1:boolean hasExpandedTypeId():19313:19313 -> v
    1:1:boolean hasFlags():19198:19198 -> w
    1:1:boolean hasName():19218:19218 -> x
    1:1:boolean hasUnderlyingType():19268:19268 -> y
    1:1:boolean hasUnderlyingTypeId():19283:19283 -> z
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$1 -> com.android.tools.r8.w.b.a.x0.a.a0:
    1:1:void <init>():19172:19172 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19177:19177 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19172 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder -> com.android.tools.r8.w.b.a.x0.a.b0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type expandedType_ -> j
    int expandedTypeId_ -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type underlyingType_ -> h
    int underlyingTypeId_ -> i
    int name_ -> f
    int bitField0_ -> d
    int flags_ -> e
    java.util.List typeParameter_ -> g
    java.util.List versionRequirement_ -> m
    java.util.List annotation_ -> l
    1:726:void <init>():19610:20335 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):19604:19604 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19707:19709 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setFlags(int):19849:19850 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19709 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19711:19712 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setName(int):19886:19887 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19712 -> a
    11:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19714:19725 -> a
    23:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeUnderlyingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20065:20067 -> a
    23:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19725 -> a
    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeUnderlyingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20067 -> a
    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19725 -> a
    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeUnderlyingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20067 -> a
    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19725 -> a
    28:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeUnderlyingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20067:20073 -> a
    28:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19725 -> a
    35:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19727:19728 -> a
    37:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setUnderlyingTypeId(int):20103:20104 -> a
    37:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19728 -> a
    39:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19730:19731 -> a
    41:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeExpandedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20157:20159 -> a
    41:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19731 -> a
    44:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
    44:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
    44:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeExpandedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20159 -> a
    44:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19731 -> a
    45:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
    45:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeExpandedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20159 -> a
    45:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19731 -> a
    46:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeExpandedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20159:20165 -> a
    46:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19731 -> a
    53:54:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19733:19734 -> a
    55:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setExpandedTypeId(int):20195:20196 -> a
    55:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19734 -> a
    57:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19736:19757 -> a
    79:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19804:19810 -> a
    79:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19604 -> a
    86:90:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19806:19810 -> a
    86:90:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19604 -> a
    91:91:boolean hasName():19874:19874 -> a
    91:91:boolean isInitialized():19763 -> a
    92:92:int getTypeParameterCount():19920:19920 -> a
    92:92:boolean isInitialized():19767 -> a
    93:93:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):19926:19926 -> a
    93:93:boolean isInitialized():19768 -> a
    94:94:boolean isInitialized():19768:19768 -> a
    95:95:boolean hasUnderlyingType():20031:20031 -> a
    95:95:boolean isInitialized():19773 -> a
    96:96:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUnderlyingType():20037:20037 -> a
    96:96:boolean isInitialized():19774 -> a
    97:97:boolean isInitialized():19774:19774 -> a
    98:98:boolean hasExpandedType():20123:20123 -> a
    98:98:boolean isInitialized():19779 -> a
    99:99:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getExpandedType():20129:20129 -> a
    99:99:boolean isInitialized():19780 -> a
    100:100:boolean isInitialized():19780:19780 -> a
    101:101:int getAnnotationCount():20229:20229 -> a
    101:101:boolean isInitialized():19785 -> a
    102:102:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getAnnotation(int):20235:20235 -> a
    102:102:boolean isInitialized():19786 -> a
    103:108:boolean isInitialized():19786:19791 -> a
    109:110:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder addTypeParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder):19981:19982 -> a
    111:113:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setExpandedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20138:20140 -> a
    114:115:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder addAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder):20290:20291 -> a
    116:117:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder addVersionRequirement(int):20395:20396 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getDefaultInstanceForType():19648:19648 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():19604 -> b
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setFlags(int):19849:19850 -> b
    4:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setUnderlyingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):20046:20048 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():19604:19604 -> c
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setName(int):19886:19887 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder create():19617:19617 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder clone():19644 -> clone
    1:1:java.lang.Object clone():19604 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder clone():19644:19644 -> clone
    2:2:java.lang.Object clone():19604 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getDefaultInstanceForType():19648:19648 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():19604 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder create():19617:19617 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder access$17800():19604 -> h
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias build():19652:19653 -> i
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> i
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias build():19654 -> i
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias build():19654:19654 -> i
    1:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias buildPartial():19660:19702 -> j
    1:3:void ensureAnnotationIsMutable():20213:20215 -> k
    1:3:void ensureTypeParameterIsMutable():19904:19906 -> l
    1:3:void ensureVersionRequirementIsMutable():20337:20339 -> m
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter -> com.android.tools.r8.w.b.a.x0.a.g0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    int memoizedSerializedSize -> l
    int upperBoundIdMemoizedSerializedSize -> j
    int id_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance variance_ -> g
    int name_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter defaultInstance -> m
    int bitField0_ -> c
    byte memoizedIsInitialized -> k
    boolean reified_ -> f
    java.util.List upperBoundId_ -> i
    java.util.List upperBound_ -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> n
    1:875:void <clinit>():7378:8252 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7250:7250 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7250:7250 -> <init>
    3:391:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):7257:7645 -> <init>
    392:392:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):7258:7258 -> <init>
    393:778:void <init>(boolean):7260:7645 -> <init>
    779:779:void <init>(boolean):7260:7260 -> <init>
    780:1150:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7275:7645 -> <init>
    1151:1226:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7276:7351 -> <init>
    1227:1230:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7335:7338 -> <init>
    1231:1234:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7327:7330 -> <init>
    1235:1242:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7314:7321 -> <init>
    1243:1244:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7309:7310 -> <init>
    1245:1246:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7304:7305 -> <init>
    1247:1307:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7299:7359 -> <init>
    1308:1326:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7357:7375 -> <init>
    1327:1339:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7363:7375 -> <init>
    1:1:int access$7802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,int):7250:7250 -> a
    2:2:boolean access$8002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,boolean):7250:7250 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance access$8102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance):7250:7250 -> a
    4:4:java.util.List access$8200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7250:7250 -> a
    5:5:java.util.List access$8202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,java.util.List):7250:7250 -> a
    6:6:boolean isInitialized():7587:7587 -> a
    7:7:boolean hasId():7465:7465 -> a
    7:7:boolean isInitialized():7591 -> a
    8:8:boolean isInitialized():7592:7592 -> a
    9:9:boolean hasName():7480:7480 -> a
    9:9:boolean isInitialized():7595 -> a
    10:10:boolean isInitialized():7596:7596 -> a
    11:11:int getUpperBoundCount():7538:7538 -> a
    11:11:boolean isInitialized():7599 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUpperBound(int):7544:7544 -> a
    12:12:boolean isInitialized():7600 -> a
    13:22:boolean isInitialized():7600:7609 -> a
    23:40:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):7615:7632 -> a
    41:41:java.util.List getUpperBoundIdList():7561:7561 -> a
    41:41:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):7634 -> a
    42:50:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):7634:7642 -> a
    1:1:int access$7902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,int):7250:7250 -> b
    2:2:java.util.List access$8300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7250:7250 -> b
    3:3:java.util.List access$8302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,java.util.List):7250:7250 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getDefaultInstanceForType():7268:7268 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():7250 -> b
    1:1:int access$8402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,int):7250:7250 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$8500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7250:7250 -> c
    3:15:int getSerializedSize():7647:7659 -> c
    16:16:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeBoolSize(int,boolean):587:587 -> c
    16:16:int getSerializedSize():7660 -> c
    17:28:int getSerializedSize():7663:7674 -> c
    29:29:java.util.List getUpperBoundIdList():7561:7561 -> c
    29:29:int getSerializedSize():7678 -> c
    30:39:int getSerializedSize():7678:7687 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilder():7751:7751 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilderForType():7752 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():7250 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilder():7751:7751 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7754 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder toBuilder():7756 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():7250 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7754:7754 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder toBuilder():7756 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():7250 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getDefaultInstance():7264:7264 -> k
    1:1:int getId():7471:7471 -> l
    1:1:int getName():7486:7486 -> m
    1:1:boolean getReified():7501:7501 -> n
    1:1:java.util.List getUpperBoundIdList():7561:7561 -> o
    1:1:java.util.List getUpperBoundList():7525:7525 -> p
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance getVariance():7516:7516 -> q
    1:1:boolean hasId():7465:7465 -> r
    1:1:boolean hasName():7480:7480 -> s
    1:1:boolean hasReified():7495:7495 -> t
    1:1:boolean hasVariance():7510:7510 -> u
    1:6:void initFields():7578:7583 -> v
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilder():7751:7751 -> w
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$1 -> com.android.tools.r8.w.b.a.x0.a.d0:
    1:1:void <init>():7379:7379 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7384:7384 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7379 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder -> com.android.tools.r8.w.b.a.x0.a.e0:
    int name_ -> f
    java.util.List upperBoundId_ -> j
    java.util.List upperBound_ -> i
    int bitField0_ -> d
    boolean reified_ -> g
    int id_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance variance_ -> h
    1:415:void <init>():7767:8181 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):7761:7761 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7845:7847 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setId(int):7942:7943 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7847 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7849:7850 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setName(int):7974:7975 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7850 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7852:7853 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setReified(boolean):8006:8007 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7853 -> a
    15:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7855:7871 -> a
    32:34:void ensureUpperBoundIdIsMutable():8183:8185 -> a
    32:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7873 -> a
    35:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7874:7879 -> a
    41:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7912:7918 -> a
    41:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7761 -> a
    48:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7914:7918 -> a
    48:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7761 -> a
    53:53:boolean hasId():7930:7930 -> a
    53:53:boolean isInitialized():7885 -> a
    54:54:boolean hasName():7962:7962 -> a
    54:54:boolean isInitialized():7889 -> a
    55:55:int getUpperBoundCount():8075:8075 -> a
    55:55:boolean isInitialized():7893 -> a
    56:56:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUpperBound(int):8081:8081 -> a
    56:56:boolean isInitialized():7894 -> a
    57:62:boolean isInitialized():7894:7899 -> a
    63:64:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setId(int):7942:7943 -> a
    65:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setReified(boolean):8006:8007 -> a
    67:68:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setVariance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance):8041:8042 -> a
    69:69:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setVariance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance):8039:8039 -> a
    70:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder addUpperBound(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder):8136:8137 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getDefaultInstanceForType():7799:7799 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():7761 -> b
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setName(int):7974:7975 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():7761:7761 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder create():7774:7774 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder clone():7795 -> clone
    1:1:java.lang.Object clone():7761 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder clone():7795:7795 -> clone
    2:2:java.lang.Object clone():7761 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getDefaultInstanceForType():7799:7799 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():7761 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder create():7774:7774 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder access$7600():7761 -> h
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter build():7803:7804 -> i
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> i
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter build():7805 -> i
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter build():7805:7805 -> i
    1:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter buildPartial():7811:7840 -> j
    1:3:void ensureUpperBoundIsMutable():8059:8061 -> k
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance -> com.android.tools.r8.w.b.a.x0.a.f0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance IN -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance[] $VALUES -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance OUT -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance INV -> d
    int value -> a
    1:9:void <clinit>():7401:7409 -> <clinit>
    10:10:void <clinit>():7396:7396 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):7451:7452 -> <init>
    1:1:int getNumber():7426:7426 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance valueOf(int):7432:7432 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance valueOf(int):7431:7431 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance valueOf(int):7430:7430 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable -> com.android.tools.r8.w.b.a.x0.a.j0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    java.util.List type_ -> c
    int memoizedSerializedSize -> f
    int firstNullable_ -> d
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable defaultInstance -> g
    byte memoizedIsInitialized -> e
    1:487:void <clinit>():12806:13292 -> <clinit>
    488:489:void initFields():12883:12884 -> <clinit>
    488:489:void <clinit>():13293 -> <clinit>
    490:490:void initFields():12883:12883 -> <clinit>
    490:490:void <clinit>():13293 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):12725:12725 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):12725:12725 -> <init>
    3:186:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):12731:12914 -> <init>
    187:187:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):12732:12732 -> <init>
    188:368:void <init>(boolean):12734:12914 -> <init>
    369:369:void <init>(boolean):12734:12734 -> <init>
    370:535:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12749:12914 -> <init>
    536:568:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12750:12782 -> <init>
    569:585:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12774:12790 -> <init>
    586:601:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12788:12803 -> <init>
    602:609:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12794:12801 -> <init>
    1:1:java.util.List access$12000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12725:12725 -> a
    2:2:java.util.List access$12002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable,java.util.List):12725:12725 -> a
    3:3:int access$12102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable,int):12725:12725 -> a
    4:4:boolean isInitialized():12888:12888 -> a
    5:5:int getTypeCount():12841:12841 -> a
    5:5:boolean isInitialized():12892 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType(int):12847:12847 -> a
    6:6:boolean isInitialized():12893 -> a
    7:12:boolean isInitialized():12893:12898 -> a
    13:20:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):12904:12911 -> a
    1:1:int access$12202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable,int):12725:12725 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$12300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12725:12725 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getDefaultInstanceForType():12742:12742 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():12725 -> b
    1:14:int getSerializedSize():12916:12929 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder():12993:12993 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilderForType():12994 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():12725 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder():12993:12993 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder toBuilder():12998 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():12725 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996:12996 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder toBuilder():12998 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():12725 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getDefaultInstance():12738:12738 -> g
    1:1:int getFirstNullable():12879:12879 -> h
    1:1:java.util.List getTypeList():12828:12828 -> i
    1:1:boolean hasFirstNullable():12868:12868 -> j
    1:2:void initFields():12883:12884 -> k
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder():12993:12993 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder toBuilder():12998 -> l
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12996:12996 -> l
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder toBuilder():12998 -> l
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$1 -> com.android.tools.r8.w.b.a.x0.a.h0:
    1:1:void <init>():12807:12807 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12812:12812 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12807 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder -> com.android.tools.r8.w.b.a.x0.a.i0:
    java.util.List type_ -> c
    int firstNullable_ -> d
    int bitField0_ -> b
    1:227:void <init>():13010:13236 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):13003:13003 -> a
    2:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):13063:13067 -> a
    7:9:void ensureTypeIsMutable():13114:13116 -> a
    7:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):13069 -> a
    10:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):13070:13075 -> a
    16:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder setFirstNullable(int):13268:13269 -> a
    16:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):13075 -> a
    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):13077:13077 -> a
    19:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13098:13104 -> a
    19:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13003 -> a
    26:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13100:13104 -> a
    26:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13003 -> a
    31:31:int getTypeCount():13130:13130 -> a
    31:31:boolean isInitialized():13083 -> a
    32:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType(int):13136:13136 -> a
    32:32:boolean isInitialized():13084 -> a
    33:33:boolean isInitialized():13084:13084 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getDefaultInstanceForType():13034:13034 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():13003 -> b
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable build():13038:13039 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():13003 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable build():13040 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():13003 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable build():13040:13040 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():13003 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder create():13017:13017 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder clone():13030 -> clone
    1:1:java.lang.Object clone():13003 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder clone():13030:13030 -> clone
    2:2:java.lang.Object clone():13003 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getDefaultInstanceForType():13034:13034 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():13003 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder create():13017:13017 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder access$11800():13003 -> f
    1:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable buildPartial():13046:13058 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter -> com.android.tools.r8.w.b.a.x0.a.m0:
    byte memoizedIsInitialized -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter defaultInstance -> l
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    int memoizedSerializedSize -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type varargElementType_ -> h
    int varargElementTypeId_ -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type type_ -> f
    int typeId_ -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> m
    int flags_ -> d
    int name_ -> e
    int bitField0_ -> c
    1:724:void <clinit>():18159:18882 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18047:18047 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18047:18047 -> <init>
    3:294:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):18054:18345 -> <init>
    295:295:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):18055:18055 -> <init>
    296:584:void <init>(boolean):18057:18345 -> <init>
    585:585:void <init>(boolean):18057:18057 -> <init>
    586:859:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18072:18345 -> <init>
    860:925:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18073:18138 -> <init>
    926:927:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18132:18133 -> <init>
    928:936:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18120:18128 -> <init>
    937:945:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18107:18115 -> <init>
    946:947:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18101:18102 -> <init>
    948:998:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18096:18146 -> <init>
    999:1011:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18144:18156 -> <init>
    1012:1018:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18150:18156 -> <init>
    1:1:int access$16902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,int):18047:18047 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$17102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18047:18047 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$17600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18047:18047 -> a
    4:4:boolean isInitialized():18289:18289 -> a
    5:5:boolean hasName():18210:18210 -> a
    5:5:boolean isInitialized():18293 -> a
    6:9:boolean isInitialized():18294:18297 -> a
    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():18231:18231 -> a
    10:10:boolean isInitialized():18298 -> a
    11:16:boolean isInitialized():18298:18303 -> a
    17:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getVarargElementType():18261:18261 -> a
    17:17:boolean isInitialized():18304 -> a
    18:27:boolean isInitialized():18304:18313 -> a
    28:51:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):18319:18342 -> a
    1:1:int access$17002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,int):18047:18047 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$17302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18047:18047 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getDefaultInstanceForType():18065:18065 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():18047 -> b
    1:1:int access$17202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,int):18047:18047 -> c
    2:32:int getSerializedSize():18347:18377 -> c
    1:1:int access$17402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,int):18047:18047 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder():18441:18441 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilderForType():18442 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():18047 -> d
    1:1:int access$17502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,int):18047:18047 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder():18441:18441 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18444 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder toBuilder():18446 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():18047 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18444:18444 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder toBuilder():18446 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():18047 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getDefaultInstance():18061:18061 -> k
    1:1:int getFlags():18201:18201 -> l
    1:1:int getName():18216:18216 -> m
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():18231:18231 -> n
    1:1:int getTypeId():18246:18246 -> o
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getVarargElementType():18261:18261 -> p
    1:1:int getVarargElementTypeId():18276:18276 -> q
    1:1:boolean hasFlags():18188:18188 -> r
    1:1:boolean hasName():18210:18210 -> s
    1:1:boolean hasType():18225:18225 -> t
    1:1:boolean hasTypeId():18240:18240 -> u
    1:1:boolean hasVarargElementType():18255:18255 -> v
    1:1:boolean hasVarargElementTypeId():18270:18270 -> w
    1:6:void initFields():18280:18285 -> x
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder():18441:18441 -> y
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder():18441:18441 -> z
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18444 -> z
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder toBuilder():18446 -> z
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18444:18444 -> z
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder toBuilder():18446 -> z
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$1 -> com.android.tools.r8.w.b.a.x0.a.k0:
    1:1:void <init>():18160:18160 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18165:18165 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18160 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder -> com.android.tools.r8.w.b.a.x0.a.l0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type varargElementType_ -> i
    int varargElementTypeId_ -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type type_ -> g
    int typeId_ -> h
    int name_ -> f
    int bitField0_ -> d
    int flags_ -> e
    1:329:void <init>():18457:18785 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):18451:18451 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18533:18535 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setFlags(int):18639:18640 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18535 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18537:18538 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setName(int):18678:18679 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18538 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18540:18541 -> a
    13:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18732:18734 -> a
    13:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18541 -> a
    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18734 -> a
    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18541 -> a
    17:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
    17:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18734 -> a
    17:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18541 -> a
    18:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18734:18740 -> a
    18:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18541 -> a
    25:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18543:18544 -> a
    27:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setTypeId(int):18770:18771 -> a
    27:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18544 -> a
    29:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18546:18547 -> a
    31:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeVarargElementType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18824:18826 -> a
    31:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18547 -> a
    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder():6183:6183 -> a
    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeVarargElementType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18826 -> a
    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18547 -> a
    35:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186:6186 -> a
    35:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeVarargElementType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18826 -> a
    35:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18547 -> a
    36:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeVarargElementType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18826:18832 -> a
    36:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18547 -> a
    43:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18549:18550 -> a
    45:46:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setVarargElementTypeId(int):18862:18863 -> a
    45:46:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18550 -> a
    47:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18552:18553 -> a
    49:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18588:18594 -> a
    49:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18451 -> a
    56:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18590:18594 -> a
    56:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18451 -> a
    61:62:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setFlags(int):18639:18640 -> a
    63:63:boolean hasName():18666:18666 -> a
    63:63:boolean isInitialized():18559 -> a
    64:64:boolean hasType():18698:18698 -> a
    64:64:boolean isInitialized():18563 -> a
    65:65:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():18704:18704 -> a
    65:65:boolean isInitialized():18564 -> a
    66:66:boolean isInitialized():18564:18564 -> a
    67:67:boolean hasVarargElementType():18790:18790 -> a
    67:67:boolean isInitialized():18569 -> a
    68:68:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getVarargElementType():18796:18796 -> a
    68:68:boolean isInitialized():18570 -> a
    69:74:boolean isInitialized():18570:18575 -> a
    75:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18713:18715 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getDefaultInstanceForType():18489:18489 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():18451 -> b
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setName(int):18678:18679 -> b
    4:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setVarargElementType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18805:18807 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():18451:18451 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder create():18464:18464 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder clone():18485 -> clone
    1:1:java.lang.Object clone():18451 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder clone():18485:18485 -> clone
    2:2:java.lang.Object clone():18451 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getDefaultInstanceForType():18489:18489 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():18451 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder create():18464:18464 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder access$16700():18451 -> h
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter build():18493:18494 -> i
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> i
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter build():18495 -> i
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter build():18495:18495 -> i
    1:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter buildPartial():18501:18528 -> j
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement -> com.android.tools.r8.w.b.a.x0.a.r0:
    byte memoizedIsInitialized -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level level_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    int memoizedSerializedSize -> j
    int errorCode_ -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement defaultInstance -> k
    int message_ -> g
    int versionFull_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind versionKind_ -> h
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> l
    int version_ -> c
    1:885:void <clinit>():21033:21917 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20924:20924 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20924:20924 -> <init>
    3:440:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):20930:21367 -> <init>
    441:441:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):20931:20931 -> <init>
    442:876:void <init>(boolean):20933:21367 -> <init>
    877:877:void <init>(boolean):20933:20933 -> <init>
    878:1297:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20948:21367 -> <init>
    1298:1360:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20949:21011 -> <init>
    1361:1362:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20999:21000 -> <init>
    1363:1364:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20994:20995 -> <init>
    1365:1372:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20982:20989 -> <init>
    1373:1374:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20977:20978 -> <init>
    1375:1423:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20972:21020 -> <init>
    1424:1436:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21018:21030 -> <init>
    1437:1441:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21024:21028 -> <init>
    1:1:int access$20002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,int):20924:20924 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level access$20202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level):20924:20924 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind access$20502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind):20924:20924 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$20700(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):20924:20924 -> a
    5:9:boolean isInitialized():21335:21339 -> a
    10:29:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):21345:21364 -> a
    1:1:int access$20102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,int):20924:20924 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement getDefaultInstanceForType():20941:20941 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():20924 -> b
    1:1:int access$20302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,int):20924:20924 -> c
    2:31:int getSerializedSize():21369:21398 -> c
    1:1:int access$20402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,int):20924:20924 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilder():21462:21462 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilderForType():21463 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():20924 -> d
    1:1:int access$20602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,int):20924:20924 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilder():21462:21462 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21465 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder toBuilder():21467 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():20924 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21465:21465 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder toBuilder():21467 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():20924 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement getDefaultInstance():20937:20937 -> g
    1:1:int getErrorCode():21274:21274 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level getLevel():21251:21251 -> i
    1:1:int getMessage():21297:21297 -> j
    1:1:int getVersion():21203:21203 -> k
    1:1:int getVersionFull():21228:21228 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind getVersionKind():21322:21322 -> m
    1:1:boolean hasErrorCode():21264:21264 -> n
    1:1:boolean hasLevel():21241:21241 -> o
    1:1:boolean hasMessage():21287:21287 -> p
    1:1:boolean hasVersion():21191:21191 -> q
    1:1:boolean hasVersionFull():21217:21217 -> r
    1:1:boolean hasVersionKind():21311:21311 -> s
    1:6:void initFields():21326:21331 -> t
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilder():21462:21462 -> u
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$1 -> com.android.tools.r8.w.b.a.x0.a.n0:
    1:1:void <init>():21034:21034 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21039:21039 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21034 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder -> com.android.tools.r8.w.b.a.x0.a.o0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level level_ -> e
    int errorCode_ -> f
    int message_ -> g
    int versionFull_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind versionKind_ -> h
    int bitField0_ -> b
    int version_ -> c
    1:379:void <init>():21479:21857 -> <init>
    boolean isInitialized() -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):21472:21472 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21555:21557 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersion(int):21637:21638 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21557 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21559:21560 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersionFull(int):21690:21691 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21560 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21562:21563 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setLevel(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level):21742:21743 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21563 -> a
    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setLevel(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level):21740:21740 -> a
    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21563 -> a
    16:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21565:21566 -> a
    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setErrorCode(int):21790:21791 -> a
    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21566 -> a
    20:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21568:21569 -> a
    22:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setMessage(int):21838:21839 -> a
    22:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21569 -> a
    24:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21571:21572 -> a
    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersionKind(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind):21892:21893 -> a
    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21572 -> a
    28:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersionKind(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind):21890:21890 -> a
    28:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21572 -> a
    29:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21574:21574 -> a
    30:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21589:21595 -> a
    30:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21472 -> a
    37:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21591:21595 -> a
    37:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21472 -> a
    42:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setLevel(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level):21742:21743 -> a
    44:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setErrorCode(int):21790:21791 -> a
    46:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersionKind(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind):21892:21893 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement getDefaultInstanceForType():21511:21511 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():21472 -> b
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setMessage(int):21838:21839 -> b
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement build():21515:21516 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():21472 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement build():21517 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():21472 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement build():21517:21517 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():21472 -> c
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersion(int):21637:21638 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder create():21486:21486 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder clone():21507 -> clone
    1:1:java.lang.Object clone():21472 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder clone():21507:21507 -> clone
    2:2:java.lang.Object clone():21472 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement getDefaultInstanceForType():21511:21511 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():21472 -> d
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersionFull(int):21690:21691 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder create():21486:21486 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder access$19800():21472 -> f
    1:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement buildPartial():21523:21550 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level -> com.android.tools.r8.w.b.a.x0.a.p0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level[] $VALUES -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level HIDDEN -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level ERROR -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level WARNING -> b
    int value -> a
    1:9:void <clinit>():21056:21064 -> <clinit>
    10:10:void <clinit>():21051:21051 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):21106:21107 -> <init>
    1:1:int getNumber():21081:21081 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level valueOf(int):21087:21087 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level valueOf(int):21086:21086 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level valueOf(int):21085:21085 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind -> com.android.tools.r8.w.b.a.x0.a.q0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind COMPILER_VERSION -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind LANGUAGE_VERSION -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind API_VERSION -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind[] $VALUES -> e
    int value -> a
    1:9:void <clinit>():21121:21129 -> <clinit>
    10:10:void <clinit>():21116:21116 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):21171:21172 -> <init>
    1:1:int getNumber():21146:21146 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind valueOf(int):21152:21152 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind valueOf(int):21151:21151 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind valueOf(int):21150:21150 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable -> com.android.tools.r8.w.b.a.x0.a.u0:
    java.util.List requirement_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    int memoizedSerializedSize -> d
    byte memoizedIsInitialized -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable defaultInstance -> e
    1:378:void <clinit>():22020:22397 -> <clinit>
    379:379:void initFields():22071:22071 -> <clinit>
    379:379:void <clinit>():22398 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):21944:21944 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):21944:21944 -> <init>
    3:145:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):21950:22092 -> <init>
    146:146:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):21951:21951 -> <init>
    147:286:void <init>(boolean):21953:22092 -> <init>
    287:287:void <init>(boolean):21953:21953 -> <init>
    288:412:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21968:22092 -> <init>
    413:448:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21969:22004 -> <init>
    449:464:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22002:22017 -> <init>
    465:472:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22008:22015 -> <init>
    1:1:java.util.List access$21100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):21944:21944 -> a
    2:2:java.util.List access$21102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable,java.util.List):21944:21944 -> a
    3:7:boolean isInitialized():22075:22079 -> a
    8:12:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):22085:22089 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$21200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):21944:21944 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getDefaultInstanceForType():21961:21961 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():21944 -> b
    1:10:int getSerializedSize():22094:22103 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder():22167:22167 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilderForType():22168 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():21944 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder():22167:22167 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder toBuilder():22172 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():21944 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170:22170 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder toBuilder():22172 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():21944 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getDefaultInstance():21957:21957 -> g
    1:1:int getRequirementCount():22054:22054 -> h
    1:1:java.util.List getRequirementList():22041:22041 -> i
    1:1:void initFields():22071:22071 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder():22167:22167 -> k
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder():22167:22167 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder toBuilder():22172 -> l
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22170:22170 -> l
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder toBuilder():22172 -> l
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$1 -> com.android.tools.r8.w.b.a.x0.a.s0:
    1:1:void <init>():22021:22021 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22026:22026 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22021 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder -> com.android.tools.r8.w.b.a.x0.a.t0:
    java.util.List requirement_ -> c
    int bitField0_ -> b
    1:85:void <init>():22184:22268 -> <init>
    boolean isInitialized() -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):22177:22177 -> a
    2:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22229:22240 -> a
    14:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22255:22261 -> a
    14:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22177 -> a
    21:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22257:22261 -> a
    21:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22177 -> a
    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder addRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder):22348:22349 -> a
    28:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder.build():21515:21516 -> a
    28:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder addRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder):22349 -> a
    30:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder addRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder):22349:22349 -> a
    31:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
    31:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder.build():21517 -> a
    31:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder addRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder):22349 -> a
    32:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder.build():21517:21517 -> a
    32:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder addRequirement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder):22349 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getDefaultInstanceForType():22206:22206 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():22177 -> b
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable build():22210:22211 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():22177 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable build():22212 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():22177 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable build():22212:22212 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():22177 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder create():22191:22191 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder clone():22202 -> clone
    1:1:java.lang.Object clone():22177 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder clone():22202:22202 -> clone
    2:2:java.lang.Object clone():22177 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getDefaultInstanceForType():22206:22206 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():22177 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder create():22191:22191 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder access$20900():22177 -> f
    1:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable buildPartial():22218:22224 -> g
    1:3:void ensureRequirementIsMutable():22271:22273 -> h
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility -> com.android.tools.r8.w.b.a.x0.a.v0:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility LOCAL -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility PRIVATE_TO_THIS -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility PUBLIC -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility PROTECTED -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility PRIVATE -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility INTERNAL -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility[] $VALUES -> h
    int value -> a
    1:21:void <clinit>():105:125 -> <clinit>
    22:22:void <clinit>():96:96 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):186:187 -> <init>
    1:1:int getNumber():158:158 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility[] values():96:96 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.BinaryVersion -> com.android.tools.r8.w.b.a.x0.a.w0.a:
    java.util.List rest -> d
    int[] numbers -> e
    int minor -> b
    int patch -> c
    int major -> a
    1:5:void <init>(int[]):17:21 -> <init>
    1:1:int getMajor():18:18 -> a
    2:3:boolean isCompatibleTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.BinaryVersion):34:35 -> a
    1:1:int getMinor():19:19 -> b
    1:1:int[] toArray():25:25 -> c
    1:1:boolean equals(java.lang.Object):58:58 -> equals
    1:4:int hashCode():62:65 -> hashCode
    1:1:int[] toArray():25:25 -> toString
    1:1:java.lang.String toString():52 -> toString
    2:6:java.lang.String toString():80:84 -> toString
    7:7:java.lang.String toString():53:53 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags -> com.android.tools.r8.w.b.a.x0.a.w0.f:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField MEMBER_KIND -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_SUSPEND -> p
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField HAS_GETTER -> r
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_CONST -> t
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField HAS_CONSTANT -> v
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_EXTERNAL_CLASS -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField MODALITY -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_INFIX -> l
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_TAILREC -> n
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_NOT_DEFAULT -> A
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_INLINE_ACCESSOR -> C
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField HAS_ANNOTATIONS -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_UNSIGNED -> E
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_INNER -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField DECLARES_DEFAULT_VALUE -> y
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_VAR -> q
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField HAS_SETTER -> s
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_LATEINIT -> u
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_EXTERNAL_PROPERTY -> w
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_EXPECT_CLASS -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField VISIBILITY -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_OPERATOR -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField CLASS_KIND -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_INLINE -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_EXTERNAL_FUNCTION -> o
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField SUSPEND_TYPE -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_EXTERNAL_ACCESSOR -> B
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_NEGATED -> D
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_DATA -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_DELEGATED -> x
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_CROSSINLINE -> z
    1:65:void <clinit>():17:81 -> <clinit>
    void $$$reportNull$$$0(int) -> a
    1:1:int getAccessorFlags(boolean,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality,boolean,boolean,boolean):189:189 -> a
    2:2:int getAccessorFlags(boolean,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality,boolean,boolean,boolean):0:0 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$1 -> com.android.tools.r8.w.b.a.x0.a.w0.b:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField -> com.android.tools.r8.w.b.a.x0.a.w0.c:
    1:1:void <init>(int):259:259 -> <init>
    1:1:java.lang.Object get(int):256:256 -> a
    2:2:int toFlags(java.lang.Object):256:256 -> a
    3:3:int toFlags(java.lang.Boolean):270:270 -> a
    1:1:java.lang.Boolean get(int):265:265 -> b
    2:2:void $$$reportNull$$$0(int):0:0 -> b
    2:2:java.lang.Boolean get(int):265 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$EnumLiteFlagField -> com.android.tools.r8.w.b.a.x0.a.w0.d:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite[] values -> c
    1:2:void <init>(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite[]):280:281 -> <init>
    1:1:int toFlags(java.lang.Object):276:276 -> a
    2:2:int toFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite):309:309 -> a
    2:2:int toFlags(java.lang.Object):276 -> a
    3:8:int bitWidth(java.lang.Object[]):285:290 -> a
    9:9:void $$$reportNull$$$0(int):0:0 -> a
    9:9:int bitWidth(java.lang.Object[]):0 -> a
    10:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite get(int):296:300 -> a
    10:14:java.lang.Object get(int):276 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField -> com.android.tools.r8.w.b.a.x0.a.w0.e:
    int bitWidth -> b
    int offset -> a
    1:1:void <init>(int,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$1):224:224 -> <init>
    2:4:void <init>(int,int):246:248 -> <init>
    java.lang.Object get(int) -> a
    int toFlags(java.lang.Object) -> a
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField after(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite[]):226:227 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField booleanFirst():235:235 -> a
    4:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField booleanAfter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField):239:240 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver -> com.android.tools.r8.w.b.a.x0.a.w0.g:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable -> com.android.tools.r8.w.b.a.x0.a.w0.h:
    java.util.List types -> a
    1:20:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):21:40 -> <init>
    21:33:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):28:40 -> <init>
    34:34:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):31:31 -> <init>
    35:35:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):22:22 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type get(int):34:34 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement -> com.android.tools.r8.w.b.a.x0.a.w0.l:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version version -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind kind -> b
    java.lang.Integer errorCode -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion Companion -> f
    com.android.tools.r8.jetbrains.kotlin.DeprecationLevel level -> c
    java.lang.String message -> e
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind,com.android.tools.r8.jetbrains.kotlin.DeprecationLevel,java.lang.Integer,java.lang.String):24:24 -> <init>
    1:1:java.lang.Integer getErrorCode():28:28 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind getKind():26:26 -> b
    1:1:com.android.tools.r8.jetbrains.kotlin.DeprecationLevel getLevel():27:27 -> c
    1:1:java.lang.String getMessage():29:29 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version getVersion():25:25 -> e
    1:1:java.lang.String toString():81:81 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Companion -> com.android.tools.r8.w.b.a.x0.a.w0.i:
    1:1:void <init>():83:83 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):83:83 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version -> com.android.tools.r8.w.b.a.x0.a.w0.k:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version$Companion Companion -> e
    int minor -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version INFINITY -> d
    int patch -> c
    int major -> a
    1:1:void <clinit>():54:54 -> <clinit>
    1:1:void <init>(int,int,int):31:31 -> <init>
    int component1() -> a
    1:8:void encode(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):39:46 -> a
    9:9:void encode(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):43:43 -> a
    int component2() -> b
    int component3() -> c
    1:1:java.lang.String asString():33:33 -> toString
    1:1:java.lang.String toString():50 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirement$Version$Companion -> com.android.tools.r8.w.b.a.x0.a.w0.j:
    1:1:void <init>():52:52 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):52:52 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable -> com.android.tools.r8.w.b.a.x0.a.w0.n:
    java.util.List infos -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable$Companion Companion -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable EMPTY -> b
    1:1:void <clinit>():15:15 -> <clinit>
    2:2:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():69:69 -> <clinit>
    2:2:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> <clinit>
    2:2:void <clinit>():15 -> <clinit>
    3:3:void <clinit>():15:15 -> <clinit>
    1:1:void <init>(java.util.List):11:11 -> <init>
    2:2:void <init>(java.util.List,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):11:11 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable access$getEMPTY$cp():11:11 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement get(int):12:12 -> a
    3:3:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.getOrNull(java.util.List,int):0:0 -> a
    3:3:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.getOrNull(java.util.List,int):0 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement get(int):12 -> a
    4:165:int com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.getLastIndex(java.util.List):0:161 -> a
    4:165:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.getOrNull(java.util.List,int):254 -> a
    4:165:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.getOrNull(java.util.List,int):0 -> a
    4:165:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement get(int):12 -> a
    166:166:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.getOrNull(java.util.List,int):254:254 -> a
    166:166:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.getOrNull(java.util.List,int):0 -> a
    166:166:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement get(int):12 -> a
    167:167:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement get(int):12:12 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable$Companion -> com.android.tools.r8.w.b.a.x0.a.w0.m:
    1:1:void <init>():14:14 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):14:14 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable create(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):18:18 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable getEMPTY():15:15 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable create(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):18 -> a
    3:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable create(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):18:19 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable create(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):18:18 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf -> com.android.tools.r8.w.b.a.x0.a.x0.r:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension constructorSignature -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension propertySignature -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension flags -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension methodSignature -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension lambdaClassOriginName -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension typeParameterAnnotation -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension classModuleName -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension typeAnnotation -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension isRaw -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension packageModuleName -> l
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension packageLocalVariable -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension classLocalVariable -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension anonymousObjectOriginName -> k
    1:212:void <clinit>():3800:4011 -> <clinit>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1 -> com.android.tools.r8.w.b.a.x0.a.x0.a:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature -> com.android.tools.r8.w.b.a.x0.a.x0.d:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature defaultInstance -> g
    int memoizedSerializedSize -> f
    int desc_ -> d
    int bitField0_ -> b
    int name_ -> c
    byte memoizedIsInitialized -> e
    1:348:void <clinit>():2669:3016 -> <clinit>
    349:350:void initFields():2724:2725 -> <clinit>
    349:350:void <clinit>():3017 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594:2594 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594:2594 -> <init>
    3:152:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2600:2749 -> <init>
    153:153:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2601:2601 -> <init>
    154:300:void <init>(boolean):2603:2749 -> <init>
    301:301:void <init>(boolean):2603:2603 -> <init>
    302:433:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2618:2749 -> <init>
    434:463:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2619:2648 -> <init>
    464:478:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2642:2656 -> <init>
    479:491:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2654:2666 -> <init>
    492:496:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2660:2664 -> <init>
    1:1:int access$2702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature,int):2594:2594 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$3000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2594:2594 -> a
    3:7:boolean isInitialized():2729:2733 -> a
    8:15:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):2739:2746 -> a
    1:1:int access$2802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature,int):2594:2594 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature getDefaultInstanceForType():2611:2611 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():2594 -> b
    1:1:int access$2902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature,int):2594:2594 -> c
    2:15:int getSerializedSize():2751:2764 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder():2828:2828 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilderForType():2829 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():2594 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder():2828:2828 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2831 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder toBuilder():2833 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2594 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2831:2831 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder toBuilder():2833 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2594 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature getDefaultInstance():2607:2607 -> g
    1:1:int getDesc():2720:2720 -> h
    1:1:int getName():2697:2697 -> i
    1:1:boolean hasDesc():2710:2710 -> j
    1:1:boolean hasName():2691:2691 -> k
    1:2:void initFields():2724:2725 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder():2828:2828 -> m
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder():2828:2828 -> n
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2831 -> n
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder toBuilder():2833 -> n
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2831:2831 -> n
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder toBuilder():2833 -> n
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$1 -> com.android.tools.r8.w.b.a.x0.a.x0.b:
    1:1:void <init>():2670:2670 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2675:2675 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2670 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder -> com.android.tools.r8.w.b.a.x0.a.x0.c:
    int desc_ -> d
    int bitField0_ -> b
    int name_ -> c
    1:1:void <init>():2845:2845 -> <init>
    boolean isInitialized() -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):2838:2838 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2897:2899 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder setName(int):2949:2950 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2899 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2901:2902 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder setDesc(int):2993:2994 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2902 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2904:2904 -> a
    12:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2919:2925 -> a
    12:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2838 -> a
    19:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2921:2925 -> a
    19:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2838 -> a
    24:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder setDesc(int):2993:2994 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature getDefaultInstanceForType():2869:2869 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():2838 -> b
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder setName(int):2949:2950 -> b
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature build():2873:2874 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():2838 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature build():2875 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():2838 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature build():2875:2875 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():2838 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder create():2852:2852 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder clone():2865 -> clone
    1:1:java.lang.Object clone():2838 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder clone():2865:2865 -> clone
    2:2:java.lang.Object clone():2838 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature getDefaultInstanceForType():2869:2869 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():2838 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder create():2852:2852 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder access$2500():2838 -> f
    1:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature buildPartial():2881:2892 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature -> com.android.tools.r8.w.b.a.x0.a.x0.g:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature defaultInstance -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    int memoizedSerializedSize -> f
    int desc_ -> d
    int bitField0_ -> b
    int name_ -> c
    byte memoizedIsInitialized -> e
    1:348:void <clinit>():2207:2554 -> <clinit>
    349:350:void initFields():2262:2263 -> <clinit>
    349:350:void <clinit>():2555 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132:2132 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132:2132 -> <init>
    3:152:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2138:2287 -> <init>
    153:153:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2139:2139 -> <init>
    154:300:void <init>(boolean):2141:2287 -> <init>
    301:301:void <init>(boolean):2141:2141 -> <init>
    302:433:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2156:2287 -> <init>
    434:463:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2157:2186 -> <init>
    464:478:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2180:2194 -> <init>
    479:491:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2192:2204 -> <init>
    492:496:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2198:2202 -> <init>
    1:1:int access$2002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature,int):2132:2132 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$2300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2132:2132 -> a
    3:7:boolean isInitialized():2267:2271 -> a
    8:15:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):2277:2284 -> a
    1:1:int access$2102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature,int):2132:2132 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getDefaultInstanceForType():2149:2149 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():2132 -> b
    1:1:int access$2202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature,int):2132:2132 -> c
    2:15:int getSerializedSize():2289:2302 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder():2366:2366 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilderForType():2367 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():2132 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder():2366:2366 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder toBuilder():2371 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2132 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369:2369 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder toBuilder():2371 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2132 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getDefaultInstance():2145:2145 -> g
    1:1:int getDesc():2258:2258 -> h
    1:1:int getName():2235:2235 -> i
    1:1:boolean hasDesc():2248:2248 -> j
    1:1:boolean hasName():2229:2229 -> k
    1:2:void initFields():2262:2263 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder():2366:2366 -> m
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder():2366:2366 -> n
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369 -> n
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder toBuilder():2371 -> n
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369:2369 -> n
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder toBuilder():2371 -> n
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$1 -> com.android.tools.r8.w.b.a.x0.a.x0.e:
    1:1:void <init>():2208:2208 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2213:2213 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2208 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder -> com.android.tools.r8.w.b.a.x0.a.x0.f:
    int desc_ -> d
    int bitField0_ -> b
    int name_ -> c
    1:1:void <init>():2383:2383 -> <init>
    boolean isInitialized() -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):2376:2376 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2435:2437 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder setName(int):2487:2488 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2437 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2439:2440 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder setDesc(int):2531:2532 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2440 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2442:2442 -> a
    12:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2457:2463 -> a
    12:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2376 -> a
    19:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2459:2463 -> a
    19:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2376 -> a
    24:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder setDesc(int):2531:2532 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getDefaultInstanceForType():2407:2407 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():2376 -> b
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder setName(int):2487:2488 -> b
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature build():2411:2412 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():2376 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature build():2413 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():2376 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature build():2413:2413 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():2376 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder create():2390:2390 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder clone():2403 -> clone
    1:1:java.lang.Object clone():2376 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder clone():2403:2403 -> clone
    2:2:java.lang.Object clone():2376 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getDefaultInstanceForType():2407:2407 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():2376 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder create():2390:2390 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder access$1800():2376 -> f
    1:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature buildPartial():2419:2430 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature -> com.android.tools.r8.w.b.a.x0.a.x0.j:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getter_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature setter_ -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature defaultInstance -> i
    int memoizedSerializedSize -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature syntheticMethod_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature field_ -> c
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> j
    byte memoizedIsInitialized -> g
    1:596:void <clinit>():3191:3786 -> <clinit>
    597:600:void initFields():3276:3279 -> <clinit>
    597:600:void <clinit>():3787 -> <clinit>
    601:601:void initFields():3276:3276 -> <clinit>
    601:601:void <clinit>():3787 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):3074:3074 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):3074:3074 -> <init>
    3:232:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):3080:3309 -> <init>
    233:233:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):3081:3081 -> <init>
    234:460:void <init>(boolean):3083:3309 -> <init>
    461:461:void <init>(boolean):3083:3083 -> <init>
    462:673:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3098:3309 -> <init>
    674:745:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3099:3170 -> <init>
    746:754:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3149:3157 -> <init>
    755:763:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3136:3144 -> <init>
    764:819:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3123:3178 -> <init>
    820:832:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3176:3188 -> <init>
    833:837:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3182:3186 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature access$3402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):3074:3074 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$3502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3074:3074 -> a
    3:3:int access$3802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature,int):3074:3074 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$3900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3074:3074 -> a
    5:9:boolean isInitialized():3283:3287 -> a
    10:23:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):3293:3306 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$3602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3074:3074 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature getDefaultInstanceForType():3091:3091 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():3074 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$3702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3074:3074 -> c
    2:23:int getSerializedSize():3311:3332 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilder():3396:3396 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilderForType():3397 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():3074 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilder():3396:3396 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3399 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder toBuilder():3401 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():3074 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3399:3399 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder toBuilder():3401 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():3074 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature getDefaultInstance():3087:3087 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature getField():3219:3219 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getGetter():3257:3257 -> i
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getSetter():3272:3272 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getSyntheticMethod():3242:3242 -> k
    1:1:boolean hasField():3213:3213 -> l
    1:1:boolean hasGetter():3251:3251 -> m
    1:1:boolean hasSetter():3266:3266 -> n
    1:1:boolean hasSyntheticMethod():3232:3232 -> o
    1:4:void initFields():3276:3279 -> p
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilder():3396:3396 -> q
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$1 -> com.android.tools.r8.w.b.a.x0.a.x0.h:
    1:1:void <init>():3192:3192 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3197:3197 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3192 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder -> com.android.tools.r8.w.b.a.x0.a.x0.i:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getter_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature setter_ -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature syntheticMethod_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature field_ -> c
    int bitField0_ -> b
    1:310:void <init>():3413:3722 -> <init>
    boolean isInitialized() -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):3406:3406 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3477:3479 -> a
    5:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):3557:3559 -> a
    5:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3479 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature.newBuilder():2828:2828 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2831 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):3559 -> a
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3479 -> a
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2831:2831 -> a
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):3559 -> a
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3479 -> a
    10:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):3559:3565 -> a
    10:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3479 -> a
    17:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3481:3482 -> a
    19:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSyntheticMethod(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3637:3639 -> a
    19:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3482 -> a
    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder():2366:2366 -> a
    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369 -> a
    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSyntheticMethod(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3639 -> a
    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3482 -> a
    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369:2369 -> a
    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSyntheticMethod(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3639 -> a
    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3482 -> a
    24:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSyntheticMethod(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3639:3645 -> a
    24:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3482 -> a
    31:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3484:3485 -> a
    33:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeGetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3701:3703 -> a
    33:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3485 -> a
    36:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder():2366:2366 -> a
    36:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369 -> a
    36:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeGetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3703 -> a
    36:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3485 -> a
    37:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369:2369 -> a
    37:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeGetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3703 -> a
    37:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3485 -> a
    38:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeGetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3703:3709 -> a
    38:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3485 -> a
    45:46:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3487:3488 -> a
    47:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3761:3763 -> a
    47:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3488 -> a
    50:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder():2366:2366 -> a
    50:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369 -> a
    50:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3763 -> a
    50:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3488 -> a
    51:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature.newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369:2369 -> a
    51:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3763 -> a
    51:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3488 -> a
    52:58:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3763:3769 -> a
    52:58:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3488 -> a
    59:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3490:3490 -> a
    60:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3505:3511 -> a
    60:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3406 -> a
    67:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3507:3511 -> a
    67:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3406 -> a
    72:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):3538:3540 -> a
    75:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder setGetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3682:3684 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature getDefaultInstanceForType():3441:3441 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():3406 -> b
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder setSetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3742:3744 -> b
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature build():3445:3446 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3406 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature build():3447 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3406 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature build():3447:3447 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3406 -> c
    5:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder setSyntheticMethod(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3610:3612 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder create():3420:3420 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder clone():3437 -> clone
    1:1:java.lang.Object clone():3406 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder clone():3437:3437 -> clone
    2:2:java.lang.Object clone():3406 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature getDefaultInstanceForType():3441:3441 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():3406 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder create():3420:3420 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder access$3200():3406 -> f
    1:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature buildPartial():3453:3472 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes -> com.android.tools.r8.w.b.a.x0.a.x0.q:
    java.util.List record_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes defaultInstance -> g
    java.util.List localName_ -> c
    int memoizedSerializedSize -> f
    int localNameMemoizedSerializedSize -> d
    byte memoizedIsInitialized -> e
    1:1923:void <clinit>():170:2092 -> <clinit>
    1924:1925:void initFields():1633:1634 -> <clinit>
    1924:1925:void <clinit>():2093 -> <clinit>
    1926:1926:void initFields():1633:1633 -> <clinit>
    1926:1926:void <clinit>():2093 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70:70 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70:70 -> <init>
    3:1589:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):76:1662 -> <init>
    1590:1590:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):77:77 -> <init>
    1591:3174:void <init>(boolean):79:1662 -> <init>
    3175:3175:void <init>(boolean):79:79 -> <init>
    3176:4744:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):94:1662 -> <init>
    4745:4793:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):95:143 -> <init>
    4794:4797:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):127:130 -> <init>
    4798:4830:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):119:151 -> <init>
    4831:4849:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):149:167 -> <init>
    4850:4860:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):155:165 -> <init>
    1:1:java.util.List access$1400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):70:70 -> a
    2:2:java.util.List access$1402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.util.List):70:70 -> a
    3:7:boolean isInitialized():1638:1642 -> a
    8:10:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):1648:1650 -> a
    11:11:java.util.List getLocalNameList():1608:1608 -> a
    11:11:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):1652 -> a
    12:19:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):1652:1659 -> a
    1:1:java.util.List access$1500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):70:70 -> b
    2:2:java.util.List access$1502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.util.List):70:70 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes getDefaultInstanceForType():87:87 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():70 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$1600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):70:70 -> c
    2:13:int getSerializedSize():1664:1675 -> c
    14:14:java.util.List getLocalNameList():1608:1608 -> c
    14:14:int getSerializedSize():1679 -> c
    15:23:int getSerializedSize():1679:1687 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilder():1751:1751 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilderForType():1752 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():70 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilder():1751:1751 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):1754 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder toBuilder():1756 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():70 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):1754:1754 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder toBuilder():1756 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():70 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes getDefaultInstance():83:83 -> g
    1:1:java.util.List getLocalNameList():1608:1608 -> h
    1:1:java.util.List getRecordList():1568:1568 -> i
    1:2:void initFields():1633:1634 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilder():1751:1751 -> k
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$1 -> com.android.tools.r8.w.b.a.x0.a.x0.k:
    1:1:void <init>():171:171 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):176:176 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):171 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder -> com.android.tools.r8.w.b.a.x0.a.x0.l:
    java.util.List localName_ -> d
    java.util.List record_ -> c
    int bitField0_ -> b
    1:227:void <init>():1768:1994 -> <init>
    boolean isInitialized() -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):1761:1761 -> a
    2:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):1820:1841 -> a
    24:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1856:1862 -> a
    24:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1761 -> a
    31:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1858:1862 -> a
    31:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1761 -> a
    36:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder addAllLocalName(java.lang.Iterable):2068:2069 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes getDefaultInstanceForType():1792:1792 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():1761 -> b
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder addAllRecord(java.lang.Iterable):1969:1970 -> b
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes build():1796:1797 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():1761 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes build():1798 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():1761 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes build():1798:1798 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():1761 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder create():1775:1775 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder clone():1788 -> clone
    1:1:java.lang.Object clone():1761 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder clone():1788:1788 -> clone
    2:2:java.lang.Object clone():1761 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes getDefaultInstanceForType():1792:1792 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():1761 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder create():1775:1775 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder access$1200():1761 -> f
    1:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes buildPartial():1804:1815 -> g
    1:3:void ensureLocalNameIsMutable():1996:1998 -> h
    1:3:void ensureRecordIsMutable():1872:1874 -> i
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record -> com.android.tools.r8.w.b.a.x0.a.x0.p:
    int memoizedSerializedSize -> l
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    int replaceCharMemoizedSerializedSize -> j
    int substringIndexMemoizedSerializedSize -> h
    java.lang.Object string_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record defaultInstance -> m
    int predefinedIndex_ -> d
    int bitField0_ -> b
    int range_ -> c
    byte memoizedIsInitialized -> k
    java.util.List replaceChar_ -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> n
    java.util.List substringIndex_ -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation operation_ -> f
    1:1088:void <clinit>():469:1556 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328:328 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328:328 -> <init>
    3:491:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):334:822 -> <init>
    492:492:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):335:335 -> <init>
    493:978:void <init>(boolean):337:822 -> <init>
    979:979:void <init>(boolean):337:337 -> <init>
    980:1450:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):352:822 -> <init>
    1451:1540:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):353:442 -> <init>
    1541:1550:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):427:436 -> <init>
    1551:1554:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):420:423 -> <init>
    1555:1564:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):406:415 -> <init>
    1565:1568:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):399:402 -> <init>
    1569:1576:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):386:393 -> <init>
    1577:1578:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):381:382 -> <init>
    1579:1653:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):376:450 -> <init>
    1654:1672:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):448:466 -> <init>
    1673:1683:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):454:464 -> <init>
    1:1:int access$1002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,int):328:328 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$1100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):328:328 -> a
    3:3:java.lang.Object access$602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,java.lang.Object):328:328 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation access$702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation):328:328 -> a
    5:5:java.util.List access$802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,java.util.List):328:328 -> a
    6:10:boolean isInitialized():782:786 -> a
    11:19:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):792:800 -> a
    20:20:java.util.List getSubstringIndexList():706:706 -> a
    20:20:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):802 -> a
    21:26:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):802:807 -> a
    27:27:java.util.List getReplaceCharList():746:746 -> a
    27:27:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):809 -> a
    28:35:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):809:816 -> a
    36:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString getStringBytes():658:666 -> a
    36:44:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):817 -> a
    45:47:void writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):817:819 -> a
    1:1:int access$402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,int):328:328 -> b
    2:2:java.lang.Object access$600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):328:328 -> b
    3:3:java.util.List access$902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,java.util.List):328:328 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record getDefaultInstanceForType():345:345 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():328 -> b
    1:1:int access$502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,int):328:328 -> c
    2:2:java.util.List access$800(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):328:328 -> c
    3:22:int getSerializedSize():824:843 -> c
    23:23:java.util.List getSubstringIndexList():706:706 -> c
    23:23:int getSerializedSize():847 -> c
    24:34:int getSerializedSize():847:857 -> c
    35:35:java.util.List getReplaceCharList():746:746 -> c
    35:35:int getSerializedSize():861 -> c
    36:43:int getSerializedSize():861:868 -> c
    44:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString getStringBytes():658:666 -> c
    44:52:int getSerializedSize():869 -> c
    53:53:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeBytesSize(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):637:637 -> c
    53:53:int getSerializedSize():869 -> c
    54:54:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeBytesSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):883:883 -> c
    54:54:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeBytesSize(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):637 -> c
    54:54:int getSerializedSize():869 -> c
    55:56:int getSerializedSize():872:873 -> c
    1:1:java.util.List access$900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):328:328 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder():937:937 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilderForType():938 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():328 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder():937:937 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):940 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder toBuilder():942 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():328 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):940:940 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder toBuilder():942 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():328 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record getDefaultInstance():341:341 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation getOperation():690:690 -> h
    1:1:int getPredefinedIndex():613:613 -> i
    1:1:int getRange():590:590 -> j
    1:1:int getReplaceCharCount():757:757 -> k
    1:1:java.util.List getReplaceCharList():746:746 -> l
    1:5:java.lang.String getString():636:640 -> m
    6:6:java.lang.String com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.toStringUtf8():624:624 -> m
    6:6:java.lang.String getString():642 -> m
    7:8:java.lang.String getString():643:644 -> m
    9:9:java.lang.String com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.toStringUtf8():626:626 -> m
    9:9:java.lang.String getString():642 -> m
    10:10:java.lang.String com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.toStringUtf8():0:0 -> m
    10:10:java.lang.String getString():642 -> m
    1:1:int getSubstringIndexCount():718:718 -> n
    1:1:java.util.List getSubstringIndexList():706:706 -> o
    1:1:boolean hasOperation():680:680 -> p
    1:1:boolean hasPredefinedIndex():603:603 -> q
    1:1:boolean hasRange():580:580 -> r
    1:1:boolean hasString():626:626 -> s
    1:6:void initFields():773:778 -> t
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder():937:937 -> u
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder():937:937 -> v
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):940 -> v
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder toBuilder():942 -> v
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):940:940 -> v
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder toBuilder():942 -> v
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$1 -> com.android.tools.r8.w.b.a.x0.a.x0.m:
    1:1:void <init>():470:470 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):475:475 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):470 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder -> com.android.tools.r8.w.b.a.x0.a.x0.n:
    java.lang.Object string_ -> e
    int predefinedIndex_ -> d
    java.util.List replaceChar_ -> h
    java.util.List substringIndex_ -> g
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation operation_ -> f
    int range_ -> c
    1:497:void <init>():954:1450 -> <init>
    boolean isInitialized() -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):947:947 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1032:1034 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setRange(int):1124:1125 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1034 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1036:1037 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setPredefinedIndex(int):1172:1173 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1037 -> a
    11:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1039:1045 -> a
    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setOperation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation):1323:1324 -> a
    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1045 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setOperation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation):1321:1321 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1045 -> a
    21:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1047:1050 -> a
    25:27:void ensureSubstringIndexIsMutable():1344:1346 -> a
    25:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1052 -> a
    28:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1053:1060 -> a
    36:38:void ensureReplaceCharIsMutable():1452:1454 -> a
    36:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1062 -> a
    39:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1063:1067 -> a
    44:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1082:1088 -> a
    44:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):947 -> a
    51:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1084:1088 -> a
    51:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):947 -> a
    56:57:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setPredefinedIndex(int):1172:1173 -> a
    58:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setOperation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation):1323:1324 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record getDefaultInstanceForType():986:986 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():947 -> b
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setRange(int):1124:1125 -> b
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record build():990:991 -> c
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():947 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record build():992 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():947 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record build():992:992 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():947 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder create():961:961 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder clone():982 -> clone
    1:1:java.lang.Object clone():947 -> clone
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder clone():982:982 -> clone
    2:2:java.lang.Object clone():947 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record getDefaultInstanceForType():986:986 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType():947 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder create():961:961 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder access$200():947 -> f
    1:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record buildPartial():998:1027 -> g
    1:1:int getRange():1114:1114 -> h
    1:1:int getReplaceCharCount():1478:1478 -> i
    1:1:int getSubstringIndexCount():1372:1372 -> j
    1:1:boolean hasOperation():1300:1300 -> k
    1:1:boolean hasPredefinedIndex():1152:1152 -> l
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation -> com.android.tools.r8.w.b.a.x0.a.x0.o:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation NONE -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation[] $VALUES -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation DESC_TO_CLASS_ID -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation INTERNAL_TO_CLASS_ID -> c
    int value -> a
    1:19:void <clinit>():492:510 -> <clinit>
    20:20:void <clinit>():487:487 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):562:563 -> <init>
    1:1:int getNumber():537:537 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation valueOf(int):543:543 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation valueOf(int):542:542 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation valueOf(int):541:541 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.BitEncoding -> com.android.tools.r8.w.b.a.x0.a.x0.s.a:
    boolean FORCE_8TO7_ENCODING -> a
    boolean $assertionsDisabled -> b
    1:13:void <clinit>():15:27 -> <clinit>
    void $$$reportNull$$$0(int) -> a
    1:1:java.lang.String[] encodeBytes(byte[]):45:45 -> a
    2:77:java.lang.String[] com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.UtfEncodingKt.bytesToStrings(byte[]):0:75 -> a
    2:77:java.lang.String[] encodeBytes(byte[]):46 -> a
    78:110:byte[] encode8to7(byte[]):75:107 -> a
    78:110:java.lang.String[] encodeBytes(byte[]):48 -> a
    111:111:java.lang.String[] encodeBytes(byte[]):51:51 -> a
    112:153:java.lang.String[] splitBytesToStringArray(byte[]):130:171 -> a
    112:153:java.lang.String[] encodeBytes(byte[]):52 -> a
    154:154:byte[] encode8to7(byte[]):0:0 -> a
    154:154:java.lang.String[] encodeBytes(byte[]):48 -> a
    155:155:java.lang.String[] encodeBytes(byte[]):0:0 -> a
    156:157:void addModuloByte(byte[],int):114:115 -> a
    158:161:byte[] decodeBytes(java.lang.String[]):179:182 -> a
    162:239:byte[] com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.UtfEncodingKt.stringsToBytes(java.lang.String[]):0:77 -> a
    162:239:byte[] decodeBytes(java.lang.String[]):182 -> a
    240:250:byte[] com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.UtfEncodingKt.stringsToBytes(java.lang.String[]):59:69 -> a
    240:250:byte[] decodeBytes(java.lang.String[]):182 -> a
    251:251:byte[] decodeBytes(java.lang.String[]):185:185 -> a
    252:261:byte[] combineStringArrayIntoBytes(java.lang.String[]):210:219 -> a
    252:261:byte[] decodeBytes(java.lang.String[]):189 -> a
    262:262:byte[] decodeBytes(java.lang.String[]):191:191 -> a
    263:279:byte[] decode7to8(byte[]):247:263 -> a
    263:279:byte[] decodeBytes(java.lang.String[]):192 -> a
    1:2:java.lang.String[] dropMarker(java.lang.String[]):199:200 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.ClassMapperLite -> com.android.tools.r8.w.b.a.x0.a.x0.s.c:
    java.util.Map map -> a
    1:10:void <clinit>():20:29 -> <clinit>
    11:11:void <clinit>():21:21 -> <clinit>
    12:165:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.getIndices(java.util.Collection):0:153 -> <clinit>
    12:165:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.getIndices(java.util.Collection):0 -> <clinit>
    12:165:void <clinit>():32 -> <clinit>
    166:743:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):0:577 -> <clinit>
    166:743:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):0 -> <clinit>
    166:743:void <clinit>():32 -> <clinit>
    744:744:void com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt__RangesKt.checkStepIsPositive(boolean,java.lang.Number):0:0 -> <clinit>
    744:744:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):577 -> <clinit>
    744:744:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):0 -> <clinit>
    744:744:void <clinit>():32 -> <clinit>
    745:745:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):578:578 -> <clinit>
    745:745:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):0 -> <clinit>
    745:745:void <clinit>():32 -> <clinit>
    746:746:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression$Companion.fromClosedRange(int,int,int):122:122 -> <clinit>
    746:746:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):578 -> <clinit>
    746:746:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):0 -> <clinit>
    746:746:void <clinit>():32 -> <clinit>
    747:784:void <clinit>():32:69 -> <clinit>
    785:785:void <clinit>():20:20 -> <clinit>
    1:1:java.lang.String mapClass(java.lang.String):78:78 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.ClassMapperLite$map$1$1 -> com.android.tools.r8.w.b.a.x0.a.x0.s.b:
    java.util.Map $this_apply -> a
    1:1:java.lang.Object invoke(java.lang.Object,java.lang.Object):15:15 -> a
    2:2:void invoke(java.lang.String,java.lang.String):40:40 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmBytecodeBinaryVersion -> com.android.tools.r8.w.b.a.x0.a.x0.s.d:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmBytecodeBinaryVersion INSTANCE -> f
    1:4:void <clinit>():19:22 -> <clinit>
    1:1:void <init>(int[]):14:14 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature -> com.android.tools.r8.w.b.a.x0.a.x0.s.g:
    1:1:void <init>():14:14 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):14:14 -> <init>
    java.lang.String asString() -> a
    1:1:java.lang.String toString():27:27 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Field -> com.android.tools.r8.w.b.a.x0.a.x0.s.e:
    java.lang.String name -> a
    java.lang.String desc -> b
    1:1:void <init>(java.lang.String,java.lang.String):23:23 -> <init>
    1:1:java.lang.String asString():24:24 -> a
    2:2:java.lang.String getName():23:23 -> a
    2:2:java.lang.String asString():24 -> a
    3:3:java.lang.String asString():24:24 -> a
    4:4:java.lang.String getDesc():23:23 -> a
    4:4:java.lang.String asString():24 -> a
    5:5:java.lang.String asString():24:24 -> a
    1:1:java.lang.String getDesc():23:23 -> b
    1:1:java.lang.String getName():23:23 -> c
    1:1:java.lang.String getName():23:23 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:java.lang.String getName():23:23 -> equals
    2:2:boolean equals(java.lang.Object):0 -> equals
    3:3:boolean equals(java.lang.Object):0:0 -> equals
    4:4:java.lang.String getDesc():23:23 -> equals
    4:4:boolean equals(java.lang.Object):0 -> equals
    5:5:java.lang.String getDesc():23:23 -> equals
    5:5:boolean equals(java.lang.Object):0 -> equals
    6:6:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.String getName():23:23 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    3:3:java.lang.String getDesc():23:23 -> hashCode
    3:3:int hashCode():0 -> hashCode
    4:4:int hashCode():0:0 -> hashCode
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method -> com.android.tools.r8.w.b.a.x0.a.x0.s.f:
    java.lang.String name -> a
    java.lang.String desc -> b
    1:1:void <init>(java.lang.String,java.lang.String):19:19 -> <init>
    1:1:java.lang.String asString():20:20 -> a
    2:2:java.lang.String getName():19:19 -> a
    2:2:java.lang.String asString():20 -> a
    3:3:java.lang.String asString():20:20 -> a
    4:4:java.lang.String getDesc():19:19 -> a
    4:4:java.lang.String asString():20 -> a
    5:5:java.lang.String asString():20:20 -> a
    1:1:java.lang.String getDesc():19:19 -> b
    1:1:java.lang.String getName():19:19 -> c
    1:1:java.lang.String getName():19:19 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:java.lang.String getName():19:19 -> equals
    2:2:boolean equals(java.lang.Object):0 -> equals
    3:3:boolean equals(java.lang.Object):0:0 -> equals
    4:4:java.lang.String getDesc():19:19 -> equals
    4:4:boolean equals(java.lang.Object):0 -> equals
    5:5:java.lang.String getDesc():19:19 -> equals
    5:5:boolean equals(java.lang.Object):0 -> equals
    6:6:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.String getName():19:19 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    3:3:java.lang.String getDesc():19:19 -> hashCode
    3:3:int hashCode():0 -> hashCode
    4:4:int hashCode():0:0 -> hashCode
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMetadataVersion -> com.android.tools.r8.w.b.a.x0.a.x0.s.h:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMetadataVersion INSTANCE -> g
    boolean isStrictSemantics -> f
    1:1:void <clinit>():30:30 -> <clinit>
    2:17:void <init>(int[]):0:15 -> <clinit>
    2:17:void <clinit>():30 -> <clinit>
    18:21:void <clinit>():30:33 -> <clinit>
    22:37:void <init>(int[]):0:15 -> <clinit>
    22:37:void <clinit>():33 -> <clinit>
    1:1:void <init>(int[],boolean):14:14 -> <init>
    1:6:boolean isCompatible():20:25 -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver -> com.android.tools.r8.w.b.a.x0.a.x0.s.j:
    java.util.List records -> b
    java.util.List PREDEFINED_STRINGS -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes types -> c
    java.lang.String[] strings -> d
    java.util.Set localNameIndices -> a
    java.util.Map PREDEFINED_STRINGS_MAP -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver$Companion Companion -> g
    1:31:void <clinit>():78:108 -> <clinit>
    32:74:void <clinit>():78:120 -> <clinit>
    75:86:void <clinit>():111:122 -> <clinit>
    1:16:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.lang.String[]):13:28 -> <init>
    17:17:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.lang.String[]):20:20 -> <init>
    1:1:java.util.Map access$getPREDEFINED_STRINGS_MAP$cp():13:13 -> a
    2:34:java.lang.String getString(int):32:64 -> a
    35:45:java.lang.String getString(int):58:68 -> a
    1:1:java.util.List getRecords():20:20 -> b
    2:2:boolean isLocalClassName(int):75:75 -> b
    1:1:java.lang.String[] getStrings():15:15 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes getTypes():14:14 -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver$Companion -> com.android.tools.r8.w.b.a.x0.a.x0.s.i:
    1:1:void <init>():77:77 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):77:77 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmProtoBufUtil -> com.android.tools.r8.w.b.a.x0.a.x0.s.k:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite EXTENSION_REGISTRY -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmProtoBufUtil INSTANCE -> b
    1:2:void <clinit>():18:19 -> <clinit>
    3:15:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf.registerAllExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):10:22 -> <clinit>
    3:15:void <clinit>():19 -> <clinit>
    16:16:void <clinit>():19:19 -> <clinit>
    1:1:void <init>():18:18 -> <init>
    1:122:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Field getJvmFieldSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable,boolean):0:121 -> a
    1:122:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Field getJvmFieldSignature$default(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmProtoBufUtil,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable,boolean,int,java.lang.Object):110 -> a
    123:123:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(java.lang.String[],java.lang.String[]):27:27 -> a
    124:156:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(byte[],java.lang.String[]):0:32 -> a
    124:156:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(java.lang.String[],java.lang.String[]):27 -> a
    157:157:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class.parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):9650:9650 -> a
    157:157:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(byte[],java.lang.String[]):32 -> a
    157:157:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(java.lang.String[],java.lang.String[]):27 -> a
    158:158:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(byte[],java.lang.String[]):32:32 -> a
    158:158:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(java.lang.String[],java.lang.String[]):27 -> a
    159:159:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver readNameResolver(java.io.InputStream,java.lang.String[]):52:52 -> a
    160:160:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes.parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1737:1737 -> a
    160:160:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver readNameResolver(java.io.InputStream,java.lang.String[]):52 -> a
    161:161:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver readNameResolver(java.io.InputStream,java.lang.String[]):52:52 -> a
    162:163:java.lang.String[] writeData(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.serialization.JvmStringTable):59:60 -> a
    164:169:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite.writeTo(java.io.OutputStream):77:82 -> a
    164:169:java.lang.String[] writeData(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.serialization.JvmStringTable):61 -> a
    170:170:java.lang.String[] writeData(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.serialization.JvmStringTable):62:62 -> a
    171:171:java.lang.String[] writeData(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.serialization.JvmStringTable):59:59 -> a
    172:177:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):70:75 -> a
    178:178:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.listOfNotNull(java.lang.Object):118:118 -> a
    178:178:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.listOfNotNull(java.lang.Object):0 -> a
    178:178:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):75 -> a
    179:179:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():69:69 -> a
    179:179:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> a
    179:179:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.listOfNotNull(java.lang.Object):118 -> a
    179:179:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.listOfNotNull(java.lang.Object):0 -> a
    179:179:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):75 -> a
    180:241:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):75:136 -> a
    242:242:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):75:75 -> a
    243:2317:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.plus(java.util.Collection,java.lang.Iterable):0:2074 -> a
    243:2317:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.plus(java.util.Collection,java.lang.Iterable):0 -> a
    243:2317:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):75 -> a
    2318:2320:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):138:140 -> a
    2321:2326:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):77:82 -> a
    2327:2381:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmConstructorSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):90:144 -> a
    2382:2385:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmConstructorSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):100:103 -> a
    2386:2386:java.lang.String mapTypeDefault(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):126:126 -> a
    2387:2387:java.lang.String com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver.getQualifiedClassName(int):72:72 -> a
    2387:2387:java.lang.String mapTypeDefault(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):126 -> a
    2388:2388:java.lang.String mapTypeDefault(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):126:126 -> a
    1:2:com.android.tools.r8.jetbrains.kotlin.Pair readFunctionDataFrom(java.lang.String[],java.lang.String[]):47:48 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function.parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):15000:15000 -> b
    3:3:com.android.tools.r8.jetbrains.kotlin.Pair readFunctionDataFrom(java.lang.String[],java.lang.String[]):48 -> b
    4:4:com.android.tools.r8.jetbrains.kotlin.Pair readFunctionDataFrom(java.lang.String[],java.lang.String[]):48:48 -> b
    1:1:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(java.lang.String[],java.lang.String[]):37:37 -> c
    2:44:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(byte[],java.lang.String[]):0:42 -> c
    2:44:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(java.lang.String[],java.lang.String[]):37 -> c
    45:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package.parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11972:11972 -> c
    45:45:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(byte[],java.lang.String[]):42 -> c
    45:45:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(java.lang.String[],java.lang.String[]):37 -> c
    46:46:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(byte[],java.lang.String[]):42:42 -> c
    46:46:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(java.lang.String[],java.lang.String[]):37 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.serialization.JvmStringTable -> com.android.tools.r8.w.b.a.x0.a.x0.t.a:
    java.util.LinkedHashSet localNames -> d
    java.util.ArrayList records -> b
    java.util.ArrayList strings -> a
    java.util.HashMap map -> c
    1:101:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver):15:115 -> <init>
    102:106:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver):24:28 -> <init>
    107:107:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):15:15 -> <init>
    1:1:java.util.ArrayList getStrings():16:16 -> a
    2:72:int getStringIndex(java.lang.String):33:103 -> a
    73:76:int getStringIndex(java.lang.String):34:37 -> a
    77:518:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.lastOrNull(java.util.List):0:441 -> a
    77:518:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.lastOrNull(java.util.List):0 -> a
    77:518:int getStringIndex(java.lang.String):37 -> a
    519:519:int getStringIndex(java.lang.String):37:37 -> a
    520:520:boolean isTrivial(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder):45:45 -> a
    520:520:int getStringIndex(java.lang.String):38 -> a
    521:588:int getStringIndex(java.lang.String):39:106 -> a
    589:589:int getStringIndex(java.lang.String):104:104 -> a
    590:603:int getQualifiedClassNameIndex(java.lang.String,boolean):57:70 -> a
    604:604:boolean com.android.tools.r8.jetbrains.kotlin.text.StringsKt.contains$default(java.lang.CharSequence,char,boolean,int,java.lang.Object):0:0 -> a
    604:604:int getQualifiedClassNameIndex(java.lang.String,boolean):73 -> a
    605:605:int getQualifiedClassNameIndex(java.lang.String,boolean):76:76 -> a
    606:719:java.lang.Integer com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver$Companion.getPredefinedStringIndex(java.lang.String):0:113 -> a
    606:719:int getQualifiedClassNameIndex(java.lang.String,boolean):76 -> a
    720:725:int getQualifiedClassNameIndex(java.lang.String,boolean):78:83 -> a
    726:741:int getQualifiedClassNameIndex(java.lang.String,boolean):74:89 -> a
    742:759:void serializeTo(java.io.OutputStream):95:112 -> a
    760:761:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder.build():990:991 -> a
    760:761:void serializeTo(java.io.OutputStream):96 -> a
    762:762:void serializeTo(java.io.OutputStream):96:96 -> a
    763:763:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
    763:763:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder.build():992 -> a
    763:763:void serializeTo(java.io.OutputStream):96 -> a
    764:764:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder.build():992:992 -> a
    764:764:void serializeTo(java.io.OutputStream):96 -> a
    765:766:void serializeTo(java.io.OutputStream):96:97 -> a
    767:768:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder.build():1796:1797 -> a
    767:768:void serializeTo(java.io.OutputStream):98 -> a
    769:776:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite.writeDelimitedTo(java.io.OutputStream):86:93 -> a
    769:776:void serializeTo(java.io.OutputStream):98 -> a
    777:777:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
    777:777:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder.build():1798 -> a
    777:777:void serializeTo(java.io.OutputStream):98 -> a
    778:778:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder.build():1798:1798 -> a
    778:778:void serializeTo(java.io.OutputStream):98 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.Interner -> com.android.tools.r8.w.b.a.x0.a.y0.b:
    java.util.HashMap interned -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.Interner parent -> c
    int firstIndex -> a
    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.Interner):8:10 -> <init>
    1:19:java.util.List getAllInternedObjects():13:31 -> a
    20:2547:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.sortedWith(java.lang.Iterable,java.util.Comparator):0:2527 -> a
    20:2547:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.sortedWith(java.lang.Iterable,java.util.Comparator):0 -> a
    20:2547:java.util.List getAllInternedObjects():31 -> a
    2548:4410:void com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.sortWith(java.lang.Object[],java.util.Comparator):0:1862 -> a
    2548:4410:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.sortedWith(java.lang.Iterable,java.util.Comparator):947 -> a
    2548:4410:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.sortedWith(java.lang.Iterable,java.util.Comparator):0 -> a
    2548:4410:java.util.List getAllInternedObjects():31 -> a
    4411:5991:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.sortedWith(java.lang.Iterable,java.util.Comparator):947:2527 -> a
    4411:5991:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.sortedWith(java.lang.Iterable,java.util.Comparator):0 -> a
    4411:5991:java.util.List getAllInternedObjects():31 -> a
    5992:5995:java.lang.Integer find(java.lang.Object):19:22 -> a
    1:1:boolean isEmpty():16:16 -> b
    2:3:int intern(java.lang.Object):26:27 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.Interner$allInternedObjects$$inlined$sortedBy$1 -> com.android.tools.r8.w.b.a.x0.a.y0.a:
    java.util.HashMap receiver$0$inlined -> a
    1:220:int compare(java.lang.Object,java.lang.Object):102:321 -> compare
    221:221:int com.android.tools.r8.jetbrains.kotlin.comparisons.ComparisonsKt__ComparisonsKt.compareValues(java.lang.Comparable,java.lang.Comparable):78:78 -> compare
    221:221:int com.android.tools.r8.jetbrains.kotlin.comparisons.ComparisonsKt.compareValues(java.lang.Comparable,java.lang.Comparable):0 -> compare
    221:221:int compare(java.lang.Object,java.lang.Object):321 -> compare
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableVersionRequirementTable -> com.android.tools.r8.w.b.a.x0.a.y0.c:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.Interner com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.interner -> a
    1:6:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.<init>():23:28 -> <init>
    1:6:void <init>():56 -> <init>
    7:7:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.Interner.<init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.Interner,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> <init>
    7:7:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.<init>():28 -> <init>
    7:7:void <init>():56 -> <init>
    8:8:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.<init>():28:28 -> <init>
    8:8:void <init>():56 -> <init>
    1:36:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.get(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):0:35 -> a
    1:36:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.get(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):0 -> a
    37:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():39:39 -> a
    37:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():0 -> a
    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder createTableBuilder():57:57 -> a
    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder createTableBuilder():55 -> a
    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():40 -> a
    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():0 -> a
    39:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():41:42 -> a
    39:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():0 -> a
    41:41:void addElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):55:55 -> a
    41:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():42 -> a
    41:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():0 -> a
    42:102:void addElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder):0:60 -> a
    42:102:void addElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):55 -> a
    42:102:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():42 -> a
    42:102:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():0 -> a
    103:103:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():44:44 -> a
    103:103:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.MutableTable.serialize():0 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.serialization.TableElementWrapper -> com.android.tools.r8.w.b.a.x0.a.y0.d:
    byte[] bytes -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder builder -> c
    int hashCode -> b
    1:4:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):13:16 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder getBuilder():13:13 -> a
    1:1:boolean equals(java.lang.Object):20:20 -> equals
    1:1:int hashCode():18:18 -> hashCode
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite -> com.android.tools.r8.w.b.a.x0.b.c:
    1:1:void <init>():46:46 -> <init>
    void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite.writeTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream) -> a
    int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite.getSerializedSize() -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite.newBuilderForType() -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite.toBuilder() -> e
    1:7:byte[] toByteArray():64:70 -> f
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder -> com.android.tools.r8.w.b.a.x0.b.b:
    1:1:void <init>():118:118 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder.mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite) -> a
    1:1:void addAll(java.lang.Iterable,java.util.Collection):334:334 -> a
    2:4:void checkForNullValues(java.lang.Iterable):348:350 -> a
    2:4:void addAll(java.lang.Iterable,java.util.Collection):335 -> a
    5:11:void addAll(java.lang.Iterable,java.util.Collection):336:342 -> a
    12:12:void addAll(java.lang.Iterable,java.util.Collection):340:340 -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder.build() -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder$LimitedInputStream -> com.android.tools.r8.w.b.a.x0.b.a:
    int limit -> a
    1:2:void <init>(java.io.InputStream,int):245:246 -> <init>
    1:1:int available():251:251 -> available
    1:6:int read():256:261 -> read
    7:13:int read(byte[],int,int):269:275 -> read
    1:3:long skip(long):282:284 -> skip
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractParser -> com.android.tools.r8.w.b.a.x0.b.d:
    1:1:void <clinit>():78:78 -> <clinit>
    1:1:void <init>():49:49 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite checkMessageInitialized(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):70:70 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite.newUninitializedMessageException():102:102 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):57 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite checkMessageInitialized(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):71 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException.asInvalidProtocolBufferException():81:81 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite checkMessageInitialized(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):71 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite checkMessageInitialized(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):71:71 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):224:224 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
    5:5:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
    6:17:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readRawVarint32(int,java.io.InputStream):692:703 -> a
    6:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):228 -> a
    6:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
    6:17:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):232:232 -> a
    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
    18:18:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
    19:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):191:194 -> a
    19:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):233 -> a
    19:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
    19:22:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245:245 -> a
    23:23:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
    24:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):196:196 -> a
    24:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):233 -> a
    24:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
    24:24:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
    25:25:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readRawVarint32(int,java.io.InputStream):705:705 -> a
    25:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):228 -> a
    25:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
    25:25:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.malformedVarint():84:84 -> a
    26:26:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readRawVarint32(int,java.io.InputStream):711 -> a
    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):228 -> a
    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
    26:26:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
    27:27:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readRawVarint32(int,java.io.InputStream):711:711 -> a
    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):228 -> a
    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
    27:27:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
    28:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):230:230 -> a
    28:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
    28:28:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
    1:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):191:194 -> b
    1:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):209 -> b
    1:4:java.lang.Object parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> b
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):209:209 -> b
    5:5:java.lang.Object parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> b
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):196:196 -> b
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):209 -> b
    6:6:java.lang.Object parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString -> com.android.tools.r8.w.b.a.x0.b.g:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString EMPTY -> a
    boolean $assertionsDisabled -> b
    1:22:void <clinit>():60:81 -> <clinit>
    1:1:void <init>():84:84 -> <init>
    int getTreeDepth() -> a
    int partialHash(int,int,int) -> a
    void writeToInternal(java.io.OutputStream,int,int) -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString copyFrom(byte[],int,int):206:208 -> a
    4:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString copyFromUtf8(java.lang.String):269:271 -> a
    7:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concat(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):396:403 -> a
    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concat(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):399:399 -> a
    16:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString copyFrom(java.lang.Iterable):420:432 -> a
    29:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString balancedConcat(java.util.Iterator,int):442:450 -> a
    38:47:void copyTo(byte[],int,int,int):490:499 -> a
    48:48:void copyTo(byte[],int,int,int):495:495 -> a
    49:49:void copyTo(byte[],int,int,int):491:491 -> a
    50:50:void copyTo(byte[],int,int,int):488:488 -> a
    51:51:void copyTo(byte[],int,int,int):485:485 -> a
    52:52:void copyTo(byte[],int,int,int):482:482 -> a
    void copyToInternal(byte[],int,int,int) -> b
    boolean isBalanced() -> b
    int partialIsValidUtf8(int,int,int) -> b
    java.lang.String toString(java.lang.String) -> b
    boolean isValidUtf8() -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$Output newOutput():751:751 -> e
    int peekCachedHashCode() -> f
    1:1:java.lang.String toString():1019:1019 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator -> com.android.tools.r8.w.b.a.x0.b.e:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$Output -> com.android.tools.r8.w.b.a.x0.b.f:
    int bufferPos -> e
    byte[] buffer -> d
    java.util.ArrayList flushedBuffers -> b
    int flushedBuffersTotalBytes -> c
    byte[] EMPTY_BYTE_ARRAY -> f
    int initialCapacity -> a
    1:1:void <clinit>():765:765 -> <clinit>
    1:7:void <init>(int):783:789 -> <init>
    8:8:void <init>(int):785:785 -> <init>
    1:9:void flushFullBuffer(int):898:906 -> a
    10:10:void flushLastBuffer():914:914 -> a
    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString toByteString():827 -> a
    11:12:byte[] copyArray(byte[],int):835:836 -> a
    11:12:void flushLastBuffer():916 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString toByteString():827 -> a
    13:27:void flushLastBuffer():917:931 -> a
    13:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString toByteString():827 -> a
    28:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString toByteString():828:828 -> a
    1:1:java.lang.String toString():888:888 -> toString
    2:2:int size():872:872 -> toString
    2:2:java.lang.String toString():888 -> toString
    3:3:java.lang.String toString():888:888 -> toString
    1:4:void write(int):794:797 -> write
    5:19:void write(byte[],int,int):802:816 -> write
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream -> com.android.tools.r8.w.b.a.x0.b.i:
    int recursionLimit -> l
    int sizeLimit -> m
    int currentLimit -> j
    int recursionDepth -> k
    int totalBytesRetired -> i
    int lastTag -> g
    int bufferSizeAfterLimit -> d
    int bufferPos -> e
    int bufferSize -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream$RefillCallback refillCallback -> n
    byte[] buffer -> a
    java.io.InputStream input -> f
    boolean enableAliasing -> h
    boolean bufferIsImmutable -> b
    1:1:void <init>(java.io.InputStream):898:898 -> <init>
    2:194:void <init>(java.io.InputStream):864:1056 -> <init>
    195:200:void <init>(java.io.InputStream):899:904 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream newInstance(java.io.InputStream):58:58 -> a
    2:2:void checkLastTagWas(int):173:173 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.invalidEndTag():94:94 -> a
    3:3:void checkLastTagWas(int):174 -> a
    4:4:void checkLastTagWas(int):174:174 -> a
    5:6:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):256:257 -> a
    7:7:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeFixed32NoTag(int):410:410 -> a
    7:7:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):258 -> a
    8:8:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):244:244 -> a
    9:10:void skipMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):286:287 -> a
    9:10:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):245 -> a
    11:14:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):246:249 -> a
    15:17:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):238:240 -> a
    18:19:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):232:233 -> a
    20:20:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeFixed64NoTag(long):405:405 -> a
    20:20:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):234 -> a
    21:21:long readInt64():343:343 -> a
    21:21:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):226 -> a
    22:22:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):227:227 -> a
    23:23:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt64NoTag(long):385:385 -> a
    23:23:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):228 -> a
    24:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.invalidWireType():99:99 -> a
    24:24:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):262 -> a
    25:25:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):262:262 -> a
    26:33:void readGroup(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):420:427 -> a
    34:34:void readGroup(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):421:421 -> a
    35:43:void readMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):471:479 -> a
    44:45:void popLimit(int):1018:1019 -> a
    44:45:void readMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):480 -> a
    46:46:void readMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):473:473 -> a
    47:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite readMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):489:497 -> a
    56:57:void popLimit(int):1018:1019 -> a
    56:57:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite readMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):498 -> a
    58:58:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite readMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):491:491 -> a
    59:63:int getBytesUntilLimit():1027:1031 -> a
    1:1:boolean readBool():363:363 -> b
    2:3:void popLimit(int):1018:1019 -> b
    1:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString readBytes():504:517 -> c
    15:22:int pushLimit(int):988:995 -> c
    23:23:int pushLimit(int):991:991 -> c
    24:24:int pushLimit(int):986:986 -> c
    1:1:double readDouble():328:328 -> d
    2:23:byte[] readRawBytesSlowPath(int):1177:1198 -> d
    24:25:void refillBuffer(int):1081:1082 -> d
    24:25:void ensureAvailable(int):1068 -> d
    24:25:byte[] readRawBytesSlowPath(int):1203 -> d
    26:62:byte[] readRawBytesSlowPath(int):1204:1240 -> d
    63:82:byte[] readRawBytesSlowPath(int):1238:1257 -> d
    83:85:byte[] readRawBytesSlowPath(int):1185:1187 -> d
    1:1:int readEnum():570:570 -> e
    2:3:void refillBuffer(int):1081:1082 -> e
    1:1:float readFloat():333:333 -> f
    2:4:void skipRawBytes(int):1272:1274 -> f
    5:25:void skipRawBytesSlowPath(int):1289:1309 -> f
    5:25:void skipRawBytes(int):1276 -> f
    26:28:void skipRawBytesSlowPath(int):1291:1293 -> f
    26:28:void skipRawBytes(int):1276 -> f
    29:29:void skipRawBytesSlowPath(int):1286:1286 -> f
    29:29:void skipRawBytes(int):1276 -> f
    1:1:int readInt32():348:348 -> g
    2:41:boolean tryRefillBuffer(int):1095:1134 -> g
    42:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.sizeLimitExceeded():110:110 -> g
    42:42:boolean tryRefillBuffer(int):1131 -> g
    43:43:boolean tryRefillBuffer(int):1131:1131 -> g
    44:44:boolean tryRefillBuffer(int):1123:1123 -> g
    45:45:boolean tryRefillBuffer(int):1096:1096 -> g
    1:11:int readRawLittleEndian32():789:799 -> h
    1:11:long readRawLittleEndian64():807:817 -> i
    1:36:int readRawVarint32():602:637 -> j
    37:37:int readRawVarint32():634:634 -> j
    1:43:long readRawVarint64():728:770 -> k
    44:44:long readRawVarint64():767:767 -> k
    1:4:byte readRawByte():1148:1151 -> l
    1:4:long readRawVarint64SlowPath():778 -> l
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.malformedVarint():84:84 -> l
    5:5:long readRawVarint64SlowPath():784 -> l
    6:6:long readRawVarint64SlowPath():784:784 -> l
    1:1:long readSInt64():590:590 -> m
    1:12:java.lang.String readString():372:383 -> n
    1:13:java.lang.String readStringRequireUtf8():393:405 -> o
    14:14:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Utf8.isValidUtf8(byte[],int,int):122:122 -> o
    14:14:java.lang.String readStringRequireUtf8():409 -> o
    15:15:java.lang.String readStringRequireUtf8():412:412 -> o
    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.invalidUtf8():120:120 -> o
    16:16:java.lang.String readStringRequireUtf8():410 -> o
    17:17:java.lang.String readStringRequireUtf8():410:410 -> o
    1:1:boolean isAtEnd():1041:1041 -> p
    1:1:int readTag():149 -> p
    2:6:int readTag():150:154 -> p
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.invalidTag():89:89 -> p
    7:7:int readTag():158 -> p
    8:8:int readTag():158:158 -> p
    1:8:void recomputeBufferSizeAfterLimit():1001:1008 -> q
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream$RefillCallback -> com.android.tools.r8.w.b.a.x0.b.h:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream -> com.android.tools.r8.w.b.a.x0.b.k:
    byte[] buffer -> a
    java.io.OutputStream output -> e
    int totalBytesWritten -> d
    int limit -> b
    int position -> c
    1:1:void <init>(byte[],int,int):78:78 -> <init>
    2:28:void <init>(byte[],int,int):56:82 -> <init>
    29:29:void <init>(java.io.OutputStream,byte[]):85:85 -> <init>
    30:63:void <init>(java.io.OutputStream,byte[]):56:89 -> <init>
    int computeRawVarint64Size(long) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream newInstance(java.io.OutputStream,int):106:106 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream newInstance(byte[]):117:117 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream newInstance(byte[],int,int):130:130 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream newInstance(byte[]):117 -> a
    4:5:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):455:456 -> a
    6:6:int computeMessageSize(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):628:628 -> a
    7:8:int computeMessageSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):865:866 -> a
    7:8:int computeMessageSize(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):628 -> a
    9:9:int computeEnumSize(int,int):681:681 -> a
    10:10:int computeEnumSizeNoTag(int):916:916 -> a
    10:10:int computeEnumSize(int,int):681 -> a
    11:11:int computeInt32SizeNoTag(int):794:794 -> a
    12:13:int computeMessageSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):865:866 -> a
    14:15:int spaceLeft():984:985 -> a
    14:15:void checkNoSpaceLeft():1001 -> a
    16:16:void checkNoSpaceLeft():1002:1002 -> a
    17:17:int spaceLeft():987:987 -> a
    17:17:void checkNoSpaceLeft():1001 -> a
    18:18:void writeTag(int,int):1180:1180 -> a
    18:18:void writeBool(int,boolean):219 -> a
    19:19:void writeBoolNoTag(boolean):415:415 -> a
    19:19:void writeBool(int,boolean):220 -> a
    20:20:void writeTag(int,int):1180:1180 -> a
    20:20:void writeBytes(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):263 -> a
    21:21:void writeBytes(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):264:264 -> a
    22:22:void writeTag(int,int):1180:1180 -> a
    22:22:void writeDouble(int,double):170 -> a
    23:23:void writeDoubleNoTag(double):375:375 -> a
    23:23:void writeDouble(int,double):171 -> a
    24:24:void writeTag(int,int):1180:1180 -> a
    24:24:void writeFloat(int,float):177 -> a
    25:25:void writeFloatNoTag(float):380:380 -> a
    25:25:void writeFloat(int,float):178 -> a
    26:26:void writeTag(int,int):1180:1180 -> a
    26:26:void writeSInt64(int,long):341 -> a
    27:27:void writeSInt64NoTag(long):517:517 -> a
    27:27:void writeSInt64(int,long):342 -> a
    int computeRawVarint32Size(int) -> b
    1:2:void writeMessageNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):448:449 -> b
    3:3:int computeInt32Size(int,int):560:560 -> b
    4:5:void flush():974:975 -> b
    6:6:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047:1047 -> b
    7:31:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1147:1171 -> b
    7:31:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> b
    32:37:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.writeTo(java.io.OutputStream,int,int):564:569 -> b
    32:37:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1171 -> b
    32:37:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> b
    38:38:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1173:1173 -> b
    38:38:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> b
    39:39:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.writeTo(java.io.OutputStream,int,int):565:565 -> b
    39:39:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1171 -> b
    39:39:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> b
    40:40:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.writeTo(java.io.OutputStream,int,int):562:562 -> b
    40:40:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1171 -> b
    40:40:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> b
    41:41:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.writeTo(java.io.OutputStream,int,int):559:559 -> b
    41:41:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1171 -> b
    41:41:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> b
    42:42:void writeRawBytes(byte[]):1052:1052 -> b
    43:70:void writeRawBytes(byte[],int,int):1113:1140 -> b
    43:70:void writeRawBytes(byte[]):1052 -> b
    71:71:void writeTag(int,int):1180:1180 -> b
    71:71:void writeMessage(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):255 -> b
    72:73:void writeMessageNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):448:449 -> b
    72:73:void writeMessage(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):256 -> b
    74:81:void writeRawLittleEndian64(long):1256:1263 -> b
    1:9:void refreshBuffer():958:966 -> c
    10:10:void refreshBuffer():960:960 -> c
    11:11:void writeTag(int,int):1180:1180 -> c
    11:11:void writeEnum(int,int):313 -> c
    12:15:void writeInt32NoTag(int):396:399 -> c
    12:15:void writeEnumNoTag(int):497 -> c
    12:15:void writeEnum(int,int):314 -> c
    16:16:int computeTagSize(int):1185:1185 -> c
    17:20:void writeRawVarint64(long):1221:1224 -> c
    1:4:void writeInt32NoTag(int):396:399 -> d
    1:4:void writeEnumNoTag(int):497 -> d
    5:5:void writeTag(int,int):1180:1180 -> d
    5:5:void writeInt32(int,int):198 -> d
    6:9:void writeInt32NoTag(int):396:399 -> d
    6:9:void writeInt32(int,int):199 -> d
    1:4:void writeInt32NoTag(int):396:399 -> e
    1:6:void writeRawByte(byte):1032:1037 -> f
    1:6:void writeRawByte(int):1042 -> f
    1:4:void writeRawLittleEndian32(int):1246:1249 -> g
    1:4:void writeRawVarint32(int):1195:1198 -> h
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream$OutOfSpaceException -> com.android.tools.r8.w.b.a.x0.b.j:
    1:1:void <init>():1016:1016 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite -> com.android.tools.r8.w.b.a.x0.b.m:
    java.util.Map extensionsByNumber -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite EMPTY -> b
    1:1:void <clinit>():159:159 -> <clinit>
    1:2:void <init>():137:138 -> <init>
    3:4:void <init>(boolean):156:157 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite getEmptyRegistry():97:97 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension findLiteExtensionByNumber(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,int):117:117 -> a
    3:3:void add(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):125:125 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getContainingTypeDefaultInstance():825:825 -> a
    4:4:void add(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):125 -> a
    5:5:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getNumber():830:830 -> a
    5:5:void add(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):125 -> a
    6:6:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getNumber():694:694 -> a
    6:6:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getNumber():830 -> a
    6:6:void add(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):125 -> a
    7:7:void add(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):125:125 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite newInstance():92:92 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite$ObjectIntPair -> com.android.tools.r8.w.b.a.x0.b.l:
    java.lang.Object object -> a
    int number -> b
    1:3:void <init>(java.lang.Object,int):167:169 -> <init>
    1:5:boolean equals(java.lang.Object):178:182 -> equals
    1:1:int hashCode():174:174 -> hashCode
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet -> com.android.tools.r8.w.b.a.x0.b.o:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet DEFAULT_INSTANCE -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap fields -> a
    boolean isImmutable -> b
    boolean hasLazyField -> c
    1:1:void <clinit>():102:102 -> <clinit>
    1:1:void <init>():76:76 -> <init>
    2:6:void <init>():73:77 -> <init>
    7:7:void <init>(boolean):84:84 -> <init>
    8:21:void <init>(boolean):73:86 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet newFieldSet():92:92 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet clone():134 -> a
    2:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet clone():135:145 -> a
    13:13:java.lang.Object getField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):224:224 -> a
    14:14:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):340:340 -> a
    15:15:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
    15:15:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):340 -> a
    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
    16:16:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):345 -> a
    17:17:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):345:345 -> a
    18:18:java.lang.Object getField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):224:224 -> a
    18:18:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):347 -> a
    19:25:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):350:356 -> a
    26:26:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):341:341 -> a
    27:28:boolean isInitialized(java.util.Map$Entry):435:436 -> a
    29:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteJavaType():702:702 -> a
    29:29:boolean isInitialized(java.util.Map$Entry):436 -> a
    30:31:boolean isInitialized(java.util.Map$Entry):436:437 -> a
    32:32:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
    32:32:boolean isInitialized(java.util.Map$Entry):437 -> a
    33:47:boolean isInitialized(java.util.Map$Entry):439:453 -> a
    48:48:int getWireFormatForFieldType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):472:472 -> a
    49:54:void mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet):481:486 -> a
    55:58:java.lang.Object cloneIfMutable(java.lang.Object):491:494 -> a
    59:93:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):556:590 -> a
    94:94:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readSInt64():590:590 -> a
    94:94:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):575 -> a
    95:95:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):575:575 -> a
    96:96:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readSInt32():585:585 -> a
    96:96:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):574 -> a
    97:97:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):574:574 -> a
    98:98:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readSFixed64():580:580 -> a
    98:98:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):573 -> a
    99:99:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):573:573 -> a
    100:100:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readSFixed32():575:575 -> a
    100:100:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):572 -> a
    101:115:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):572:586 -> a
    116:116:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readUInt32():562:562 -> a
    116:116:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):571 -> a
    117:117:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):571:571 -> a
    118:129:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):570:581 -> a
    130:130:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):578:578 -> a
    131:133:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):566:568 -> a
    134:134:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):564:564 -> a
    135:135:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readFixed32():358:358 -> a
    135:135:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):563 -> a
    136:136:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):563:563 -> a
    137:137:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readFixed64():353:353 -> a
    137:137:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):562 -> a
    138:138:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):562:562 -> a
    139:139:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> a
    139:139:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):561 -> a
    140:140:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):561:561 -> a
    141:141:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readUInt64():338:338 -> a
    141:141:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):560 -> a
    142:142:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):560:560 -> a
    143:143:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt64():343:343 -> a
    143:143:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):559 -> a
    144:144:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):559:559 -> a
    145:145:float com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readFloat():333:333 -> a
    145:145:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):558 -> a
    146:146:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):558:558 -> a
    147:147:double com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readDouble():328:328 -> a
    147:147:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):557 -> a
    148:148:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):557:557 -> a
    149:150:void writeElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):657:658 -> a
    151:151:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeTag(int,int):1180:1180 -> a
    151:151:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeGroup(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):233 -> a
    151:151:void writeElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):658 -> a
    152:152:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeGroupNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):430:430 -> a
    152:152:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeGroup(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):234 -> a
    152:152:void writeElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):658 -> a
    153:153:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeTag(int,int):1180:1180 -> a
    153:153:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeGroup(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):235 -> a
    153:153:void writeElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):658 -> a
    154:154:void writeElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):660:660 -> a
    155:155:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeTag(int,int):1180:1180 -> a
    155:155:void writeElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):660 -> a
    156:156:void writeElement(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):661:661 -> a
    157:180:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):679:702 -> a
    181:181:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeSInt64NoTag(long):517:517 -> a
    181:181:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):702 -> a
    182:182:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):701:701 -> a
    183:183:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeSInt32NoTag(int):512:512 -> a
    183:183:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):701 -> a
    184:184:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):700:700 -> a
    185:185:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeSFixed64NoTag(long):507:507 -> a
    185:185:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):700 -> a
    186:186:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):699:699 -> a
    187:187:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeSFixed32NoTag(int):502:502 -> a
    187:187:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):699 -> a
    188:191:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):705:708 -> a
    192:192:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):698:698 -> a
    193:193:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt32NoTag(int):489:489 -> a
    193:193:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):698 -> a
    194:197:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):692:695 -> a
    198:199:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeByteArrayNoTag(byte[]):461:462 -> a
    198:199:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):695 -> a
    200:200:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):690:690 -> a
    201:201:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):689:689 -> a
    202:202:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeGroupNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):430:430 -> a
    202:202:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):689 -> a
    203:203:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):688:688 -> a
    204:206:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeStringNoTag(java.lang.String):423:425 -> a
    204:206:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):688 -> a
    207:207:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):687:687 -> a
    208:208:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeBoolNoTag(boolean):415:415 -> a
    208:208:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):687 -> a
    209:209:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):686:686 -> a
    210:210:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeFixed32NoTag(int):410:410 -> a
    210:210:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):686 -> a
    211:211:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):685:685 -> a
    212:212:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeFixed64NoTag(long):405:405 -> a
    212:212:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):685 -> a
    213:213:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):684:684 -> a
    214:214:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):683:683 -> a
    215:215:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt64NoTag(long):385:385 -> a
    215:215:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):683 -> a
    216:216:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):682:682 -> a
    217:217:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeInt64NoTag(long):390:390 -> a
    217:217:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):682 -> a
    218:218:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):681:681 -> a
    219:219:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeFloatNoTag(float):380:380 -> a
    219:219:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):681 -> a
    220:220:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):680:680 -> a
    221:221:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeDoubleNoTag(double):375:375 -> a
    221:221:void writeElementNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):680 -> a
    222:222:void writeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):719:719 -> a
    223:223:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
    223:223:void writeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):719 -> a
    224:224:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getNumber():694:694 -> a
    224:224:void writeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):720 -> a
    225:225:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
    225:225:void writeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):721 -> a
    226:226:void writeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):722:722 -> a
    227:227:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isPacked():710:710 -> a
    227:227:void writeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):723 -> a
    228:228:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeTag(int,int):1180:1180 -> a
    228:228:void writeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):724 -> a
    229:246:void writeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):727:744 -> a
    247:288:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):835:876 -> a
    289:289:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):858:858 -> a
    290:290:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeSInt64SizeNoTag(long):948:948 -> a
    290:290:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):858 -> a
    291:291:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):857:857 -> a
    292:292:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeSInt32SizeNoTag(int):940:940 -> a
    292:292:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):857 -> a
    293:293:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):856:856 -> a
    294:308:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):855:869 -> a
    309:309:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeEnumSizeNoTag(int):916:916 -> a
    309:309:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):869 -> a
    310:310:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):872:872 -> a
    311:311:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeEnumSizeNoTag(int):916:916 -> a
    311:311:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):872 -> a
    312:312:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):854:854 -> a
    313:313:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeUInt32SizeNoTag(int):908:908 -> a
    313:313:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):854 -> a
    314:315:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):849:850 -> a
    316:316:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeBytesSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):883:883 -> a
    316:316:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):850 -> a
    317:317:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):852:852 -> a
    318:318:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeByteArraySizeNoTag(byte[]):892:892 -> a
    318:318:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):852 -> a
    319:319:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):864:864 -> a
    320:320:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):847:847 -> a
    321:321:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeGroupSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):844:844 -> a
    321:321:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):847 -> a
    322:322:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):846:846 -> a
    323:327:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeStringSizeNoTag(java.lang.String):831:835 -> a
    323:327:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):846 -> a
    328:328:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):845:845 -> a
    329:329:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):844:844 -> a
    330:330:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):843:843 -> a
    331:331:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):842:842 -> a
    332:332:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):841:841 -> a
    333:333:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeUInt64SizeNoTag(long):777:777 -> a
    333:333:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):841 -> a
    334:334:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):840:840 -> a
    335:335:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.computeInt64SizeNoTag(long):785:785 -> a
    335:335:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):840 -> a
    336:336:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):839:839 -> a
    337:337:int computeElementSizeNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):838:838 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet emptySet():99:99 -> b
    2:2:boolean hasField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):209:209 -> b
    3:3:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> b
    3:3:boolean hasField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):209 -> b
    4:4:boolean hasField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):214:214 -> b
    5:5:boolean hasField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):210:210 -> b
    6:23:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):373:390 -> b
    24:24:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):385:385 -> b
    25:25:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):381:381 -> b
    26:26:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):379:379 -> b
    27:27:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):378:378 -> b
    28:28:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):377:377 -> b
    29:29:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):376:376 -> b
    30:30:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):375:375 -> b
    31:60:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):374:403 -> b
    61:61:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):369:369 -> b
    62:68:void mergeFromField(java.util.Map$Entry):504:510 -> b
    69:69:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> b
    69:69:void mergeFromField(java.util.Map$Entry):510 -> b
    70:70:java.lang.Object getField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):224:224 -> b
    70:70:void mergeFromField(java.util.Map$Entry):511 -> b
    71:77:void mergeFromField(java.util.Map$Entry):513:519 -> b
    78:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteJavaType():702:702 -> b
    78:78:void mergeFromField(java.util.Map$Entry):519 -> b
    79:79:void mergeFromField(java.util.Map$Entry):519:519 -> b
    80:80:java.lang.Object getField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):224:224 -> b
    80:80:void mergeFromField(java.util.Map$Entry):520 -> b
    81:84:void mergeFromField(java.util.Map$Entry):522:525 -> b
    85:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.internalMergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):720:720 -> b
    85:85:void mergeFromField(java.util.Map$Entry):525 -> b
    86:93:void mergeFromField(java.util.Map$Entry):525:532 -> b
    94:94:int computeFieldSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):885:885 -> b
    95:95:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> b
    95:95:int computeFieldSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):885 -> b
    96:96:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getNumber():694:694 -> b
    96:96:int computeFieldSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):886 -> b
    97:97:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> b
    97:97:int computeFieldSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):887 -> b
    98:98:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isPacked():710:710 -> b
    98:98:int computeFieldSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):888 -> b
    99:107:int computeFieldSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):890:898 -> b
    108:114:int computeElementSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):814:820 -> b
    108:114:int computeFieldSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):899 -> b
    115:121:int computeElementSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,int,java.lang.Object):814:820 -> b
    115:121:int computeFieldSize(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):904 -> b
    1:1:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):238:238 -> c
    2:2:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> c
    2:2:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):238 -> c
    3:13:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):239:249 -> c
    14:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> c
    14:14:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):249 -> c
    15:15:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):249:249 -> c
    16:29:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):240:253 -> c
    30:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> c
    30:30:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):253 -> c
    31:37:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):253:259 -> c
    38:45:int getSerializedSize():755:762 -> c
    1:1:java.lang.Object clone():50:50 -> clone
    1:8:boolean isInitialized():418:425 -> d
    1:5:java.util.Iterator iterator():197:201 -> e
    1:5:void makeImmutable():107:111 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet newFieldSet():92:92 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite -> com.android.tools.r8.w.b.a.x0.b.n:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite -> com.android.tools.r8.w.b.a.x0.b.v:
    1:1:void <init>():53:53 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):56:56 -> <init>
    1:1:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> a
    2:10:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):517:525 -> a
    2:10:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
    11:11:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):525 -> a
    11:11:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    12:16:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):525:529 -> a
    12:16:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    17:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
    17:17:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):529 -> a
    17:17:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    18:35:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):529:546 -> a
    18:35:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    36:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
    36:36:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):546 -> a
    36:36:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    37:38:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):546:547 -> a
    37:38:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    39:39:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> a
    39:39:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):548 -> a
    39:39:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    40:40:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):549:549 -> a
    40:40:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    41:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getEnumType():714:714 -> a
    41:41:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):549 -> a
    41:41:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    42:54:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):549:561 -> a
    42:54:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    55:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
    55:55:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):561 -> a
    55:55:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    56:66:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):561:571 -> a
    56:66:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    67:67:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteJavaType():702:702 -> a
    67:67:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):571 -> a
    67:67:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    68:105:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):571:608 -> a
    68:105:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    106:106:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
    106:106:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):608 -> a
    106:106:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    107:107:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):608:608 -> a
    107:107:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    108:108:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):574:574 -> a
    108:108:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    109:109:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
    109:109:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):574 -> a
    109:109:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    110:113:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):575:578 -> a
    110:113:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    114:114:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getMessageDefaultInstance():839:839 -> a
    114:114:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):582 -> a
    114:114:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    115:118:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):582:585 -> a
    115:118:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    119:119:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
    119:119:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):585 -> a
    119:119:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    120:120:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):585:585 -> a
    120:120:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    121:121:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getNumber():694:694 -> a
    121:121:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getNumber():830 -> a
    121:121:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):587 -> a
    121:121:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    122:127:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):587:592 -> a
    122:127:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    128:128:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> a
    128:128:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):596 -> a
    128:128:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    129:129:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):597:597 -> a
    129:129:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    130:130:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getEnumType():714:714 -> a
    130:130:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):597 -> a
    130:130:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    131:136:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):597:602 -> a
    131:136:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    137:137:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt32NoTag(int):489:489 -> a
    137:137:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):603 -> a
    137:137:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    138:138:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):614:614 -> a
    138:138:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    139:139:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
    139:139:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):614 -> a
    139:139:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    140:143:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):615:618 -> a
    140:143:boolean access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    144:144:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension newSingularGeneratedExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Class):639:639 -> a
    145:146:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension newRepeatedGeneratedExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean,java.lang.Class):661:662 -> a
    147:149:java.lang.reflect.Method getMethodOrDie(java.lang.Class,java.lang.String,java.lang.Class[]):735:737 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$1 -> com.android.tools.r8.w.b.a.x0.b.p:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder -> com.android.tools.r8.w.b.a.x0.b.q:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    1:45:void <init>():87:131 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder setUnknownFields(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):127:127 -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite getDefaultInstanceForType() -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString getUnknownFields():123:123 -> e
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder -> com.android.tools.r8.w.b.a.x0.b.r:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet extensions -> b
    boolean extensionsIsMutable -> c
    1:3:void <init>():332:334 -> <init>
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet buildExtensions():361:363 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet access$000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):327 -> a
    4:5:void mergeExtensionFields(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage):495:496 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getContainingTypeDefaultInstance():825:825 -> a
    6:6:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):368 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder addExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):453 -> a
    7:7:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):368:368 -> a
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder addExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):453 -> a
    8:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder addExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):454:455 -> a
    10:10:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):371:371 -> a
    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder addExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):453 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getContainingTypeDefaultInstance():825:825 -> b
    1:1:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):368 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder setExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):431 -> b
    2:2:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):368:368 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder setExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):431 -> b
    3:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder setExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):432:433 -> b
    5:5:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> b
    5:5:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.toFieldSetType(java.lang.Object):869 -> b
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder setExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):433 -> b
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteJavaType():702:702 -> b
    6:6:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.toFieldSetType(java.lang.Object):870 -> b
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder setExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):433 -> b
    7:17:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.toFieldSetType(java.lang.Object):870:880 -> b
    7:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder setExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):433 -> b
    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder setExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):433:433 -> b
    19:19:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):371:371 -> b
    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder setExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension,java.lang.Object):431 -> b
    1:3:void ensureExtensionsIsMutable():350:352 -> f
    1:1:boolean extensionsAreInitialized():471:471 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage -> com.android.tools.r8.w.b.a.x0.b.s:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet extensions -> a
    1:2:void <init>():171:172 -> <init>
    3:4:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):175:176 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet access$200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage):164:164 -> a
    2:2:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246:246 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getContainingTypeDefaultInstance():825:825 -> a
    3:3:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):181 -> a
    3:3:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):211 -> a
    4:4:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):181:181 -> a
    4:4:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):211 -> a
    5:7:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):212:214 -> a
    8:8:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.fromFieldSetType(java.lang.Object):844:844 -> a
    8:8:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):216 -> a
    9:9:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
    9:9:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.fromFieldSetType(java.lang.Object):844 -> a
    9:9:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):216 -> a
    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteJavaType():702:702 -> a
    10:10:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.fromFieldSetType(java.lang.Object):845 -> a
    10:10:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):216 -> a
    11:21:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.fromFieldSetType(java.lang.Object):845:855 -> a
    11:21:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):216 -> a
    22:22:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):184:184 -> a
    22:22:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):211 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getContainingTypeDefaultInstance():825:825 -> b
    1:1:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):181 -> b
    1:1:boolean hasExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):194 -> b
    2:2:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):181:181 -> b
    2:2:boolean hasExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):194 -> b
    3:3:boolean hasExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):195:195 -> b
    4:4:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):184:184 -> b
    4:4:boolean hasExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):194 -> b
    1:1:boolean extensionsAreInitialized():233:233 -> g
    1:1:int extensionsSerializedSize():316:316 -> h
    1:1:void makeExtensionsImmutable():261:261 -> i
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage$ExtensionWriter newExtensionWriter():308:308 -> j
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage$ExtensionWriter -> com.android.tools.r8.w.b.a.x0.b.s$a:
    java.util.Map$Entry next -> b
    java.util.Iterator iter -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage this$0 -> d
    boolean messageSetWireFormat -> c
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage,boolean,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$1):270:270 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage,boolean):279:279 -> <init>
    3:12:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage,boolean):274:283 -> <init>
    1:1:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):288:288 -> a
    2:2:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getNumber():694:694 -> a
    2:2:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):288 -> a
    3:4:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):289:290 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteJavaType():702:702 -> a
    5:5:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):290 -> a
    6:6:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):290:290 -> a
    7:7:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
    7:7:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):290 -> a
    8:8:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getNumber():694:694 -> a
    8:8:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):293 -> a
    9:9:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):293:293 -> a
    10:10:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeTag(int,int):1180:1180 -> a
    10:10:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeMessageSetExtension(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):352 -> a
    10:10:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):293 -> a
    11:11:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeTag(int,int):1180:1180 -> a
    11:11:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt32(int,int):303 -> a
    11:11:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeMessageSetExtension(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):353 -> a
    11:11:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):293 -> a
    12:12:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt32NoTag(int):489:489 -> a
    12:12:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt32(int,int):304 -> a
    12:12:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeMessageSetExtension(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):353 -> a
    12:12:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):293 -> a
    13:13:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeMessageSetExtension(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):354:354 -> a
    13:13:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):293 -> a
    14:14:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeTag(int,int):1180:1180 -> a
    14:14:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeMessageSetExtension(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):355 -> a
    14:14:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):293 -> a
    15:20:void writeUntil(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):296:301 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor -> com.android.tools.r8.w.b.a.x0.b.t:
    boolean isPacked -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap enumTypeMap -> a
    int number -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType type -> c
    boolean isRepeated -> d
    1:6:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean,boolean):679:684 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType getLiteType():698:698 -> a
    1:1:int compareTo(java.lang.Object):671:671 -> compareTo
    2:2:int compareTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor):725:725 -> compareTo
    2:2:int compareTo(java.lang.Object):671 -> compareTo
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension -> com.android.tools.r8.w.b.a.x0.b.u:
    java.lang.Object defaultValue -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor descriptor -> d
    java.lang.reflect.Method enumValueOf -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite messageDefaultInstance -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite containingTypeDefaultInstance -> a
    1:25:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor,java.lang.Class):786:810 -> <init>
    26:26:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor,java.lang.Class):790:790 -> <init>
    1:1:java.lang.Object singularFromFieldSetType(java.lang.Object):860:860 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteJavaType():702:702 -> a
    2:2:java.lang.Object singularFromFieldSetType(java.lang.Object):860 -> a
    3:4:java.lang.Object singularFromFieldSetType(java.lang.Object):860:861 -> a
    5:17:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.invokeOrDie(java.lang.reflect.Method,java.lang.Object,java.lang.Object[]):746:758 -> a
    5:17:java.lang.Object singularFromFieldSetType(java.lang.Object):861 -> a
    18:18:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.invokeOrDie(java.lang.reflect.Method,java.lang.Object,java.lang.Object[]):754:754 -> a
    18:18:java.lang.Object singularFromFieldSetType(java.lang.Object):861 -> a
    19:19:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.invokeOrDie(java.lang.reflect.Method,java.lang.Object,java.lang.Object[]):748:748 -> a
    19:19:java.lang.Object singularFromFieldSetType(java.lang.Object):861 -> a
    1:1:java.lang.Object singularToFieldSetType(java.lang.Object):885:885 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteJavaType():702:702 -> b
    2:2:java.lang.Object singularToFieldSetType(java.lang.Object):885 -> b
    3:4:java.lang.Object singularToFieldSetType(java.lang.Object):885:886 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal -> com.android.tools.r8.w.b.a.x0.b.y:
    byte[] EMPTY_BYTE_ARRAY -> a
    1:6:void <clinit>():383:388 -> <clinit>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite -> com.android.tools.r8.w.b.a.x0.b.w:
    int getNumber() -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap -> com.android.tools.r8.w.b.a.x0.b.x:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite findValueByNumber(int) -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException -> com.android.tools.r8.w.b.a.x0.b.z:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite unfinishedMessage -> a
    1:1:void <init>(java.lang.String):46:46 -> <init>
    2:2:void <init>(java.lang.String):43:43 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException setUnfinishedMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):57:57 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getUnfinishedMessage():66:66 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException negativeSize():78:78 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException recursionLimitExceeded():104:104 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException truncatedMessage():70:70 -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LazyField$LazyIterator -> com.android.tools.r8.w.b.a.x0.b.A:
    java.util.Iterator iterator -> a
    1:2:void <init>(java.util.Iterator):130:131 -> <init>
    1:1:boolean hasNext():136:136 -> hasNext
    1:2:java.util.Map$Entry next():142:143 -> next
    1:2:java.lang.Object next():127 -> next
    1:1:void remove():151:151 -> remove
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString -> com.android.tools.r8.w.b.a.x0.b.D:
    int hash -> d
    byte[] bytes -> c
    1:180:void <init>(byte[]):62:241 -> <init>
    181:181:void <init>(byte[]):63:63 -> <init>
    int getTreeDepth() -> a
    1:1:void writeToInternal(java.io.OutputStream,int,int):148:148 -> a
    2:18:boolean equalsRange(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString,int,int):213:229 -> a
    19:19:boolean equalsRange(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString,int,int):218:218 -> a
    20:20:boolean equalsRange(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString,int,int):214:214 -> a
    21:21:int partialHash(int,int,int):271:271 -> a
    22:22:int hashCode(int,byte[],int,int):276:276 -> a
    22:22:int partialHash(int,int,int):271 -> a
    boolean isBalanced() -> b
    1:1:void copyToInternal(byte[],int,int,int):117:117 -> b
    2:2:java.lang.String toString(java.lang.String):155:155 -> b
    3:4:int partialIsValidUtf8(int,int,int):169:170 -> b
    1:2:boolean isValidUtf8():163:164 -> d
    3:3:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Utf8.isValidUtf8(byte[],int,int):122:122 -> d
    3:3:boolean isValidUtf8():164 -> d
    1:17:boolean equals(java.lang.Object):181:197 -> equals
    1:1:int peekCachedHashCode():266:266 -> f
    int getOffsetIntoBytes() -> g
    1:9:int hashCode():251:259 -> hashCode
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator iterator():307:307 -> i
    1:1:java.util.Iterator iterator():52:52 -> iterator
    1:1:int size():76:76 -> size
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString$1 -> com.android.tools.r8.w.b.a.x0.b.B:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString$LiteralByteIterator -> com.android.tools.r8.w.b.a.x0.b.C:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString this$0 -> c
    int limit -> b
    int position -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString$1):310:310 -> <init>
    2:4:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString):314:316 -> <init>
    1:1:boolean hasNext():320:320 -> hasNext
    1:1:java.lang.Byte next():325:325 -> next
    1:1:java.lang.Object next():310 -> next
    1:3:byte nextByte():330:332 -> nextByte
    1:1:void remove():337:337 -> remove
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLiteOrBuilder -> com.android.tools.r8.w.b.a.x0.b.E:
    boolean isInitialized() -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType() -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser -> com.android.tools.r8.w.b.a.x0.b.F:
    java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite) -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString -> com.android.tools.r8.w.b.a.x0.b.K:
    int[] minLengthByDepth -> i
    int hash -> h
    int leftLength -> f
    int treeDepth -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString left -> d
    int totalLength -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString right -> e
    1:22:void <clinit>():89:110 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1):70:70 -> <init>
    2:416:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):129:543 -> <init>
    417:421:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):130:134 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString):70:70 -> a
    2:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concatenate(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):153:179 -> a
    29:29:int getTreeDepth():277:277 -> a
    29:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concatenate(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):179 -> a
    30:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concatenate(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):179:197 -> a
    49:49:int getTreeDepth():277:277 -> a
    50:57:void writeToInternal(java.io.OutputStream,int,int):407:414 -> a
    58:65:int partialHash(int,int,int):568:575 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString):70:70 -> b
    2:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString concatenateBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):214:219 -> b
    8:8:boolean isBalanced():290:290 -> b
    9:17:void copyToInternal(byte[],int,int,int):360:368 -> b
    18:18:java.lang.String toString(java.lang.String):421:421 -> b
    19:19:int size():269:269 -> b
    19:19:byte[] com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.toByteArray():528 -> b
    19:19:java.lang.String toString(java.lang.String):421 -> b
    20:23:byte[] com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.toByteArray():530:533 -> b
    20:23:java.lang.String toString(java.lang.String):421 -> b
    24:24:java.lang.String toString(java.lang.String):421:421 -> b
    25:32:int partialIsValidUtf8(int,int,int):437:444 -> b
    1:2:boolean isValidUtf8():429:430 -> d
    1:20:boolean equals(java.lang.Object):456:475 -> equals
    21:58:boolean equalsFragments(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):494:531 -> equals
    21:58:boolean equals(java.lang.Object):480 -> equals
    1:1:int peekCachedHashCode():562:562 -> f
    1:1:int[] access$600():70:70 -> g
    1:9:int hashCode():547:555 -> hashCode
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator iterator():779:779 -> iterator
    1:1:java.util.Iterator iterator():70 -> iterator
    1:1:int size():269:269 -> size
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1 -> com.android.tools.r8.w.b.a.x0.b.G:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$Balancer -> com.android.tools.r8.w.b.a.x0.b.H:
    java.util.Stack prefixesStack -> a
    1:5:void <init>():602:606 -> <init>
    6:6:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1):602:602 -> <init>
    1:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString balance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):609:616 -> a
    1:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$Balancer,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):602 -> a
    9:9:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):628:628 -> a
    10:10:void insert(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):656:656 -> a
    10:10:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):629 -> a
    11:11:int getDepthBinForLength(int):695:695 -> a
    11:11:void insert(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):656 -> a
    11:11:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):629 -> a
    12:36:void insert(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):657:681 -> a
    12:36:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):629 -> a
    37:37:int getDepthBinForLength(int):695:695 -> a
    37:37:void insert(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):681 -> a
    37:37:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):629 -> a
    38:46:void insert(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):682:690 -> a
    38:46:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):629 -> a
    47:47:void insert(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):664:664 -> a
    47:47:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):629 -> a
    48:53:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):630:635 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$PieceIterator -> com.android.tools.r8.w.b.a.x0.b.I:
    java.util.Stack breadCrumbs -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next -> b
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1):716:716 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):722:722 -> <init>
    3:8:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):718:723 -> <init>
    1:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getLeafByLeft(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):728:733 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():761:761 -> c
    2:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getNextNonEmptyLeaf():740:743 -> c
    2:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():765 -> c
    6:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getLeafByLeft(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):728:733 -> c
    6:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getNextNonEmptyLeaf():743 -> c
    6:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():765 -> c
    12:12:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.isEmpty():135:135 -> c
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getNextNonEmptyLeaf():744 -> c
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():765 -> c
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():765:765 -> c
    14:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():762:762 -> c
    1:1:boolean hasNext():752:752 -> hasNext
    1:1:java.lang.Object next():716:716 -> next
    1:1:void remove():770:770 -> remove
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$RopeByteIterator -> com.android.tools.r8.w.b.a.x0.b.J:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator bytes -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$PieceIterator pieces -> a
    int bytesRemaining -> c
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1):782:782 -> <init>
    2:5:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString):788:791 -> <init>
    1:1:boolean hasNext():795:795 -> hasNext
    1:1:java.lang.Byte next():799:799 -> next
    1:1:java.lang.Object next():782 -> next
    1:5:byte nextByte():803:807 -> nextByte
    1:1:void remove():811:811 -> remove
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap -> com.android.tools.r8.w.b.a.x0.b.P:
    java.util.List entryList -> b
    java.util.Map overflowEntries -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EntrySet lazyEntrySet -> e
    int maxArraySize -> a
    boolean isImmutable -> d
    1:1:void <init>(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$1):87:87 -> <init>
    2:5:void <init>(int):153:156 -> <init>
    1:1:void access$200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap):87:87 -> a
    2:2:java.lang.Object access$500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap,int):87:87 -> a
    3:3:java.util.Map$Entry getArrayEntryAt(int):185:185 -> a
    4:8:java.lang.Object put(java.lang.Comparable,java.lang.Object):237:241 -> a
    9:11:void ensureEntryArrayMutable():389:391 -> a
    9:11:java.lang.Object put(java.lang.Comparable,java.lang.Object):243 -> a
    12:23:java.lang.Object put(java.lang.Comparable,java.lang.Object):245:256 -> a
    24:40:int binarySearchInArray(java.lang.Comparable):316:332 -> a
    1:1:java.util.List access$400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap):87:87 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap newFieldMap(int):100:100 -> b
    1:1:java.util.Map access$600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap):87:87 -> c
    2:3:void checkMutable():364:365 -> c
    1:6:void clear():262:267 -> clear
    1:2:boolean containsKey(java.lang.Object):214:215 -> containsKey
    1:8:java.lang.Object removeArrayEntryAt(int):296:303 -> e
    9:9:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$Entry.<init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap,java.util.Map$Entry):406:406 -> e
    9:9:java.lang.Object removeArrayEntryAt(int):303 -> e
    10:11:java.lang.Object removeArrayEntryAt(int):303:304 -> e
    1:4:java.util.Set entrySet():353:356 -> entrySet
    1:6:java.lang.Object get(java.lang.Object):227:232 -> get
    1:1:int getNumArrayEntries():180:180 -> h
    1:1:java.lang.Iterable getOverflowEntries():195:195 -> j
    1:5:java.util.SortedMap getOverflowEntriesMutable():377:381 -> k
    1:1:boolean isImmutable():175:175 -> l
    1:9:void makeImmutable():161:169 -> m
    1:13:java.lang.Object remove(java.lang.Object):279:291 -> remove
    1:1:int size():202:202 -> size
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$1 -> com.android.tools.r8.w.b.a.x0.b.L:
    1:1:void <init>(int):100:100 -> <init>
    1:5:void makeImmutable():104:108 -> m
    6:6:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> m
    6:6:void makeImmutable():108 -> m
    7:13:void makeImmutable():109:115 -> m
    14:14:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> m
    14:14:void makeImmutable():115 -> m
    15:20:void makeImmutable():116:121 -> m
    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):100:100 -> put
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EmptySet -> com.android.tools.r8.w.b.a.x0.b.O:
    java.util.Iterator ITERATOR -> a
    java.lang.Iterable ITERABLE -> b
    1:16:void <clinit>():591:606 -> <clinit>
    1:1:java.util.Iterator access$700():589:589 -> a
    1:1:java.lang.Iterable iterable():615:615 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EmptySet$1 -> com.android.tools.r8.w.b.a.x0.b.M:
    1:1:void <init>():591:591 -> <init>
    1:1:java.lang.Object next():598:598 -> next
    1:1:void remove():602:602 -> remove
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EmptySet$2 -> com.android.tools.r8.w.b.a.x0.b.N:
    1:1:void <init>():606:606 -> <init>
    1:1:java.util.Iterator iterator():609:609 -> iterator
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$Entry -> com.android.tools.r8.w.b.a.x0.b.P$a:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap this$0 -> c
    java.lang.Object value -> b
    java.lang.Comparable key -> a
    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap,java.lang.Comparable,java.lang.Object):409:411 -> <init>
    1:1:int compareTo(java.lang.Object):400:400 -> compareTo
    2:2:java.lang.Comparable getKey():416:416 -> compareTo
    2:2:int compareTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$Entry):426 -> compareTo
    2:2:int compareTo(java.lang.Object):400 -> compareTo
    3:3:int compareTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$Entry):426:426 -> compareTo
    3:3:int compareTo(java.lang.Object):400 -> compareTo
    1:1:java.lang.Comparable getKey():416:416 -> d
    1:6:boolean equals(java.lang.Object):442:447 -> equals
    7:7:boolean equals(java.lang.Object,java.lang.Object):463:463 -> equals
    7:7:boolean equals(java.lang.Object):447 -> equals
    8:8:boolean equals(java.lang.Object):447:447 -> equals
    9:9:boolean equals(java.lang.Object,java.lang.Object):463:463 -> equals
    9:9:boolean equals(java.lang.Object):447 -> equals
    1:1:java.lang.Comparable getKey():416:416 -> getKey
    1:1:java.lang.Object getKey():400 -> getKey
    1:1:java.lang.Object getValue():421:421 -> getValue
    1:1:int hashCode():452:452 -> hashCode
    1:3:java.lang.Object setValue(java.lang.Object):431:433 -> setValue
    1:1:java.lang.String toString():458:458 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EntryIterator -> com.android.tools.r8.w.b.a.x0.b.P$b:
    java.util.Iterator lazyOverflowIterator -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap this$0 -> d
    boolean nextCalledBeforeRemove -> b
    int pos -> a
    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap):532:534 -> <init>
    4:4:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$1):532:532 -> <init>
    1:4:java.util.Iterator getOverflowIterator():577:580 -> c
    1:1:boolean hasNext():540:540 -> hasNext
    1:7:java.util.Map$Entry next():546:552 -> next
    1:7:java.lang.Object next():532 -> next
    1:10:void remove():557:566 -> remove
    11:11:void remove():558:558 -> remove
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EntrySet -> com.android.tools.r8.w.b.a.x0.b.P$c:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap):470:470 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$1):470:470 -> <init>
    1:1:boolean add(java.lang.Object):470:470 -> add
    2:3:boolean add(java.util.Map$Entry):499:500 -> add
    2:3:boolean add(java.lang.Object):470 -> add
    1:1:void clear():524:524 -> clear
    1:4:boolean contains(java.lang.Object):490:493 -> contains
    1:1:java.util.Iterator iterator():474:474 -> iterator
    1:3:boolean remove(java.lang.Object):514:516 -> remove
    1:1:int size():479:479 -> size
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException -> com.android.tools.r8.w.b.a.x0.b.Q:
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):53:53 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Utf8 -> com.android.tools.r8.w.b.a.x0.b.S:
    int incompleteStateFor(int,int) -> a
    int incompleteStateFor(int,int,int) -> a
    1:66:int partialIsValidUtf8(int,byte[],int,int):163:228 -> a
    67:72:int incompleteStateFor(byte[],int,int):341:346 -> a
    73:73:int incompleteStateFor(byte[],int,int):344:344 -> a
    1:1:int partialIsValidUtf8(byte[],int,int):252:252 -> b
    2:38:int partialIsValidUtf8NonAscii(byte[],int,int):270:306 -> b
    2:38:int partialIsValidUtf8(byte[],int,int):256 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat -> com.android.tools.r8.w.b.a.x0.b.a0:
    int makeTag(int,int) -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$1 -> com.android.tools.r8.w.b.a.x0.b.T:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType -> com.android.tools.r8.w.b.a.x0.b.Y:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType DOUBLE -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType[] $VALUES -> u
    int wireType -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType INT64 -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType FLOAT -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType javaType -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType INT32 -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType UINT64 -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType FIXED32 -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType FIXED64 -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType STRING -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType BOOL -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType MESSAGE -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType GROUP -> l
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType UINT32 -> o
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType BYTES -> n
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType SFIXED32 -> q
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType ENUM -> p
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType SINT32 -> s
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType SFIXED64 -> r
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType SINT64 -> t
    1:26:void <clinit>():108:133 -> <clinit>
    27:27:void <clinit>():107:107 -> <clinit>
    1:1:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$1):107:107 -> <init>
    2:4:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int):135:137 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType getJavaType():143:143 -> a
    1:1:int getWireType():144:144 -> b
    boolean isPackable() -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType$1 -> com.android.tools.r8.w.b.a.x0.b.U:
    1:1:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int):116:116 -> <init>
    boolean isPackable() -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType$2 -> com.android.tools.r8.w.b.a.x0.b.V:
    1:1:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int):119:119 -> <init>
    boolean isPackable() -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType$3 -> com.android.tools.r8.w.b.a.x0.b.W:
    1:1:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int):122:122 -> <init>
    boolean isPackable() -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType$4 -> com.android.tools.r8.w.b.a.x0.b.X:
    1:1:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int):125:125 -> <init>
    boolean isPackable() -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType -> com.android.tools.r8.w.b.a.x0.b.Z:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType BOOLEAN -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType STRING -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType FLOAT -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType[] $VALUES -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType DOUBLE -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType MESSAGE -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType BYTE_STRING -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType ENUM -> i
    java.lang.Object defaultDefault -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType INT -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType LONG -> c
    1:9:void <clinit>():78:86 -> <clinit>
    10:10:void <clinit>():77:77 -> <clinit>
    1:2:void <init>(java.lang.String,int,java.lang.Object):88:89 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmClassExtensionVisitor -> com.android.tools.r8.w.b.a.y0.a:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> b
    1:1:void <clinit>():78:78 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmClassExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):48:48 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmClassExtensionVisitor):49:49 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType getType():54:54 -> a
    void visitAnonymousObjectOriginName(java.lang.String) -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmClassExtensionVisitor getDelegate():51:51 -> c
    1:1:void visitEnd():68 -> c
    2:2:void visitEnd():68:68 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmConstructorExtensionVisitor -> com.android.tools.r8.w.b.a.y0.b:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> a
    1:1:void <clinit>():260:260 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmConstructorExtensionVisitor):236:236 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmConstructorExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):237:237 -> <init>
    void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType getType():240:240 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmDeclarationContainerExtensionVisitor -> com.android.tools.r8.w.b.a.y0.c:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmDeclarationContainerExtensionVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmDeclarationContainerExtensionVisitor):14:14 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitLocalDelegatedProperty(int,java.lang.String,int,int) -> a
    void visitModuleName(java.lang.String) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmDeclarationContainerExtensionVisitor getDelegate():15:15 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature -> com.android.tools.r8.w.b.a.y0.d:
    java.lang.String name -> a
    java.lang.String desc -> b
    1:1:void <init>(java.lang.String,java.lang.String):51:51 -> <init>
    1:1:java.lang.String asString():52:52 -> a
    2:2:java.lang.String getName():51:51 -> a
    2:2:java.lang.String asString():52 -> a
    3:3:java.lang.String asString():52:52 -> a
    4:4:java.lang.String getDesc():51:51 -> a
    4:4:java.lang.String asString():52 -> a
    5:5:java.lang.String asString():52:52 -> a
    1:1:java.lang.String getDesc():51:51 -> b
    1:1:java.lang.String getName():51:51 -> c
    1:1:java.lang.String getName():51:51 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:java.lang.String getName():51:51 -> equals
    2:2:boolean equals(java.lang.Object):0 -> equals
    3:3:boolean equals(java.lang.Object):0:0 -> equals
    4:4:java.lang.String getDesc():51:51 -> equals
    4:4:boolean equals(java.lang.Object):0 -> equals
    5:5:java.lang.String getDesc():51:51 -> equals
    5:5:boolean equals(java.lang.Object):0 -> equals
    6:6:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.String getName():51:51 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    3:3:java.lang.String getDesc():51:51 -> hashCode
    3:3:int hashCode():0 -> hashCode
    4:4:int hashCode():0:0 -> hashCode
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFunctionExtensionVisitor -> com.android.tools.r8.w.b.a.y0.e:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFunctionExtensionVisitor delegate -> a
    1:1:void <clinit>():154:154 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFunctionExtensionVisitor):115:115 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFunctionExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):116:116 -> <init>
    void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType getType():119:119 -> a
    2:2:void visitLambdaClassOriginName(java.lang.String):137:137 -> a
    1:1:void visitEnd():144:144 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature -> com.android.tools.r8.w.b.a.y0.f:
    1:1:void <init>():16:16 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):16:16 -> <init>
    java.lang.String asString() -> a
    java.lang.String getDesc() -> b
    java.lang.String getName() -> c
    1:1:java.lang.String toString():30:30 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature -> com.android.tools.r8.w.b.a.y0.g:
    java.lang.String name -> a
    java.lang.String desc -> b
    1:1:void <init>(java.lang.String,java.lang.String):40:40 -> <init>
    1:1:java.lang.String asString():41:41 -> a
    2:2:java.lang.String getName():40:40 -> a
    2:2:java.lang.String asString():41 -> a
    3:3:java.lang.String asString():41:41 -> a
    4:4:java.lang.String getDesc():40:40 -> a
    4:4:java.lang.String asString():41 -> a
    5:5:java.lang.String asString():41:41 -> a
    1:1:java.lang.String getDesc():40:40 -> b
    1:1:java.lang.String getName():40:40 -> c
    1:1:java.lang.String getName():40:40 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:java.lang.String getName():40:40 -> equals
    2:2:boolean equals(java.lang.Object):0 -> equals
    3:3:boolean equals(java.lang.Object):0:0 -> equals
    4:4:java.lang.String getDesc():40:40 -> equals
    4:4:boolean equals(java.lang.Object):0 -> equals
    5:5:java.lang.String getDesc():40:40 -> equals
    5:5:boolean equals(java.lang.Object):0 -> equals
    6:6:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.String getName():40:40 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    3:3:java.lang.String getDesc():40:40 -> hashCode
    3:3:int hashCode():0 -> hashCode
    4:4:int hashCode():0:0 -> hashCode
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPackageExtensionVisitor -> com.android.tools.r8.w.b.a.y0.h:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> b
    1:1:void <clinit>():108:108 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPackageExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):86:86 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPackageExtensionVisitor):87:87 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType getType():92:92 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPackageExtensionVisitor getDelegate():89:89 -> c
    1:1:void visitEnd():98 -> c
    2:2:void visitEnd():98:98 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPropertyExtensionVisitor -> com.android.tools.r8.w.b.a.y0.i:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPropertyExtensionVisitor delegate -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> b
    1:1:void <clinit>():229:229 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPropertyExtensionVisitor):161:161 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPropertyExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):162:162 -> <init>
    void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType getType():165:165 -> a
    2:2:void visitSyntheticMethodForAnnotations(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):212:212 -> a
    1:1:void visitEnd():219:219 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeExtensionVisitor -> com.android.tools.r8.w.b.a.y0.j:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeExtensionVisitor delegate -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> b
    1:1:void <clinit>():341:341 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeExtensionVisitor):303:303 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):304:304 -> <init>
    void visit(boolean) -> a
    void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType getType():307:307 -> a
    1:1:void visitEnd():331:331 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeParameterExtensionVisitor -> com.android.tools.r8.w.b.a.y0.k:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeParameterExtensionVisitor delegate -> a
    1:1:void <clinit>():296:296 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeParameterExtensionVisitor):267:267 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmTypeParameterExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):268:268 -> <init>
    void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType getType():271:271 -> a
    1:1:void visitEnd():286:286 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader -> com.android.tools.r8.w.b.a.y0.l:
    java.lang.String packageName -> g
    java.lang.String extraString -> f
    int[] COMPATIBLE_METADATA_VERSION -> i
    int[] metadataVersion -> b
    int[] bytecodeVersion -> c
    int extraInt -> h
    java.lang.String[] data2 -> e
    java.lang.String[] data1 -> d
    int[] COMPATIBLE_BYTECODE_VERSION -> j
    int kind -> a
    1:9:void <clinit>():143:151 -> <clinit>
    1:72:void <init>(java.lang.Integer,int[],int[],java.lang.String[],java.lang.String[],java.lang.String,java.lang.String,java.lang.Integer):24:95 -> <init>
    1:1:int[] getBytecodeVersion():60:60 -> a
    1:1:java.lang.String[] getData1():67:67 -> b
    1:1:java.lang.String[] getData2():74:74 -> c
    1:1:int getExtraInt():95:95 -> d
    1:1:java.lang.String getExtraString():81:81 -> e
    1:1:int getKind():44:44 -> f
    1:1:int[] getMetadataVersion():52:52 -> g
    1:1:java.lang.String getPackageName():88:88 -> h
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata -> com.android.tools.r8.w.b.a.y0.A:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader header -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion Companion -> b
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):25:25 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):25:25 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader getHeader():25:25 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class -> com.android.tools.r8.w.b.a.y0.o:
    com.android.tools.r8.jetbrains.kotlin.reflect.KProperty[] $$delegatedProperties -> d
    com.android.tools.r8.jetbrains.kotlin.Lazy classData$delegate -> c
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):29:30 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClass toKmClass():40:40 -> b
    2:2:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):0:0 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClass toKmClass():40 -> b
    3:3:com.android.tools.r8.jetbrains.kotlin.Pair getClassData():0:0 -> b
    3:3:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):48 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClass toKmClass():40 -> b
    4:5:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):48:49 -> b
    4:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClass toKmClass():40 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$Writer -> com.android.tools.r8.w.b.a.y0.m:
    1:1:void <init>():55:55 -> <init>
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$Writer,int[],int[],int,int,java.lang.Object):68:69 -> h
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write():0 -> h
    3:75:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write(int[],int[],int):0:72 -> h
    3:75:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$Writer,int[],int[],int,int,java.lang.Object):70 -> h
    3:75:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write():0 -> h
    76:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder.build():9746:9747 -> h
    76:77:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write(int[],int[],int):72 -> h
    76:77:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$Writer,int[],int[],int,int,java.lang.Object):70 -> h
    76:77:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write():0 -> h
    78:80:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write(int[],int[],int):72:74 -> h
    78:80:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$Writer,int[],int[],int,int,java.lang.Object):70 -> h
    78:80:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write():0 -> h
    81:84:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write(int[],int[],int):73:76 -> h
    81:84:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$Writer,int[],int[],int,int,java.lang.Object):70 -> h
    81:84:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write():0 -> h
    85:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> h
    85:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder.build():9748 -> h
    85:85:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write(int[],int[],int):72 -> h
    85:85:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$Writer,int[],int[],int,int,java.lang.Object):70 -> h
    85:85:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write():0 -> h
    86:86:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder.build():9748:9748 -> h
    86:86:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write(int[],int[],int):72 -> h
    86:86:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$Writer,int[],int[],int,int,java.lang.Object):70 -> h
    86:86:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class write():0 -> h
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$classData$2 -> com.android.tools.r8.w.b.a.y0.n:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader $header -> a
    1:3:com.android.tools.r8.jetbrains.kotlin.Pair invoke():31:33 -> a
    1:3:java.lang.Object invoke():29 -> a
    4:4:com.android.tools.r8.jetbrains.kotlin.Pair invoke():32:32 -> a
    4:4:java.lang.Object invoke():29 -> a
    5:5:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
    5:5:com.android.tools.r8.jetbrains.kotlin.Pair invoke():32 -> a
    5:5:java.lang.Object invoke():29 -> a
    6:6:com.android.tools.r8.jetbrains.kotlin.Pair invoke():32:32 -> a
    6:6:java.lang.Object invoke():29 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion -> com.android.tools.r8.w.b.a.y0.p:
    1:1:void <init>():326:326 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):326:326 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade -> com.android.tools.r8.w.b.a.y0.s:
    com.android.tools.r8.jetbrains.kotlin.reflect.KProperty[] $$delegatedProperties -> d
    com.android.tools.r8.jetbrains.kotlin.Lazy packageData$delegate -> c
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):84:85 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage toKmPackage():95:95 -> b
    2:2:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):0:0 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage toKmPackage():95 -> b
    3:3:com.android.tools.r8.jetbrains.kotlin.Pair getPackageData():0:0 -> b
    3:3:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):103 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage toKmPackage():95 -> b
    4:5:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):103:104 -> b
    4:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage toKmPackage():95 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade$Writer -> com.android.tools.r8.w.b.a.y0.q:
    1:1:void <init>():110:110 -> <init>
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade$Writer,int[],int[],int,int,java.lang.Object):123:124 -> g
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade write():0 -> g
    3:132:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade write(int[],int[],int):0:129 -> g
    3:132:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade$Writer,int[],int[],int,int,java.lang.Object):125 -> g
    3:132:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade write():0 -> g
    133:136:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade write(int[],int[],int):128:131 -> g
    133:136:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade$Writer,int[],int[],int,int,java.lang.Object):125 -> g
    133:136:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade write():0 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade$packageData$2 -> com.android.tools.r8.w.b.a.y0.r:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader $header -> a
    1:3:com.android.tools.r8.jetbrains.kotlin.Pair invoke():86:88 -> a
    1:3:java.lang.Object invoke():84 -> a
    4:4:com.android.tools.r8.jetbrains.kotlin.Pair invoke():87:87 -> a
    4:4:java.lang.Object invoke():84 -> a
    5:5:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
    5:5:com.android.tools.r8.jetbrains.kotlin.Pair invoke():87 -> a
    5:5:java.lang.Object invoke():84 -> a
    6:6:com.android.tools.r8.jetbrains.kotlin.Pair invoke():87:87 -> a
    6:6:java.lang.Object invoke():84 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade -> com.android.tools.r8.w.b.a.y0.t:
    1:5:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):217:221 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart -> com.android.tools.r8.w.b.a.y0.w:
    com.android.tools.r8.jetbrains.kotlin.reflect.KProperty[] $$delegatedProperties -> d
    com.android.tools.r8.jetbrains.kotlin.Lazy packageData$delegate -> c
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):260:261 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage toKmPackage():277:277 -> b
    2:2:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):0:0 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage toKmPackage():277 -> b
    3:3:com.android.tools.r8.jetbrains.kotlin.Pair getPackageData():0:0 -> b
    3:3:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):285 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage toKmPackage():277 -> b
    4:5:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):285:286 -> b
    4:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage toKmPackage():277 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart$Writer -> com.android.tools.r8.w.b.a.y0.u:
    1:1:void <init>():292:292 -> <init>
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart$Writer,java.lang.String,int[],int[],int,int,java.lang.Object):307:308 -> a
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart write(java.lang.String):0 -> a
    3:316:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart write(java.lang.String,int[],int[],int):0:313 -> a
    3:316:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart$Writer,java.lang.String,int[],int[],int,int,java.lang.Object):309 -> a
    3:316:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart write(java.lang.String):0 -> a
    317:320:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart write(java.lang.String,int[],int[],int):312:315 -> a
    317:320:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart write$default(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart$Writer,java.lang.String,int[],int[],int,int,java.lang.Object):309 -> a
    317:320:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart write(java.lang.String):0 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart$packageData$2 -> com.android.tools.r8.w.b.a.y0.v:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader $header -> a
    1:3:com.android.tools.r8.jetbrains.kotlin.Pair invoke():262:264 -> a
    1:3:java.lang.Object invoke():260 -> a
    4:4:com.android.tools.r8.jetbrains.kotlin.Pair invoke():263:263 -> a
    4:4:java.lang.Object invoke():260 -> a
    5:5:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
    5:5:com.android.tools.r8.jetbrains.kotlin.Pair invoke():263 -> a
    5:5:java.lang.Object invoke():260 -> a
    6:6:com.android.tools.r8.jetbrains.kotlin.Pair invoke():263:263 -> a
    6:6:java.lang.Object invoke():260 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass -> com.android.tools.r8.w.b.a.y0.y:
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):140:141 -> <init>
    1:1:boolean isLambda():159:159 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass$functionData$2 -> com.android.tools.r8.w.b.a.y0.x:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader $header -> a
    1:2:com.android.tools.r8.jetbrains.kotlin.Pair invoke():142:143 -> a
    1:2:java.lang.Object invoke():140 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Unknown -> com.android.tools.r8.w.b.a.y0.z:
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):324:324 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmClassExtension -> com.android.tools.r8.w.b.a.y0.B.a:
    java.util.List localDelegatedProperties -> c
    java.lang.String anonymousObjectOriginName -> e
    java.lang.String moduleName -> d
    1:2:void <init>():34:35 -> <init>
    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):34:34 -> a
    2:182:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor):0:180 -> a
    2:182:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):34 -> a
    183:187:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor):53:57 -> a
    183:187:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):34 -> a
    188:188:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor):51:51 -> a
    188:188:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):34 -> a
    189:189:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitLocalDelegatedProperty(int,java.lang.String,int,int):40:40 -> a
    190:190:void visitModuleName(java.lang.String):43:43 -> a
    1:1:void visitAnonymousObjectOriginName(java.lang.String):47:47 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmConstructorExtension -> com.android.tools.r8.w.b.a.y0.B.b:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature signature -> b
    1:1:void <init>():133:133 -> <init>
    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):133:133 -> a
    2:144:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor):0:142 -> a
    2:144:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):133 -> a
    145:145:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor):141:141 -> a
    145:145:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):133 -> a
    146:146:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):137:137 -> a
    1:1:void setSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):134:134 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmFunctionExtension -> com.android.tools.r8.w.b.a.y0.B.c:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature signature -> c
    java.lang.String lambdaClassOriginName -> d
    1:1:void <init>():82:82 -> <init>
    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):82:82 -> a
    2:100:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor):0:98 -> a
    2:100:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):82 -> a
    101:101:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor):95:95 -> a
    101:101:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):82 -> a
    102:102:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):87:87 -> a
    103:103:void visitLambdaClassOriginName(java.lang.String):91:91 -> a
    1:1:void setSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):83:83 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions -> com.android.tools.r8.w.b.a.y0.B.m:
    1:1:void <init>():17:17 -> <init>
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor writeClassExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):108:109 -> a
    3:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor writePackageExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):131:132 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor writeFunctionExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):150:151 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor writePropertyExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):167:168 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor writeConstructorExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):225:226 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor writeTypeParameterExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):238:239 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor writeTypeExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):247:248 -> a
    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmClassExtension createClassExtension():261:261 -> a
    16:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):276:278 -> a
    16:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):17 -> a
    19:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder.build():2411:2412 -> a
    19:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):279 -> a
    19:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):17 -> a
    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):279:279 -> a
    21:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):17 -> a
    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder.build():2413 -> a
    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):279 -> a
    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):17 -> a
    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder.build():2413:2413 -> a
    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):279 -> a
    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):17 -> a
    24:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):276:276 -> a
    24:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$toJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):17 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmConstructorExtension createConstructorExtension():269:269 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmFunctionExtension createFunctionExtension():265:265 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmPackageExtension createPackageExtension():263:263 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmPropertyExtension createPropertyExtension():267:267 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmTypeExtension createTypeExtension():273:273 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.KmTypeParameterExtension createTypeParameterExtension():271:271 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writeClassExtensions$1 -> com.android.tools.r8.w.b.a.y0.B.e:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder $proto -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> d
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):109:109 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitLocalDelegatedProperty(int,java.lang.String,int,int):116:116 -> a
    2:3:void visitModuleName(java.lang.String):121:122 -> a
    1:1:void visitAnonymousObjectOriginName(java.lang.String):111:111 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writeClassExtensions$1$visitLocalDelegatedProperty$1 -> com.android.tools.r8.w.b.a.y0.B.d:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writeClassExtensions$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):109:109 -> a
    2:119:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder):0:117 -> a
    2:119:java.lang.Object invoke(java.lang.Object):109 -> a
    120:120:java.lang.Object invoke(java.lang.Object):109:109 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writeConstructorExtensions$1 -> com.android.tools.r8.w.b.a.y0.B.f:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder $proto -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions this$0 -> b
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):226:226 -> <init>
    1:1:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):229:229 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writeFunctionExtensions$1 -> com.android.tools.r8.w.b.a.y0.B.g:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions this$0 -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder $proto -> d
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):151:151 -> <init>
    1:1:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):154:154 -> a
    2:2:void visitLambdaClassOriginName(java.lang.String):159:159 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writePackageExtensions$1 -> com.android.tools.r8.w.b.a.y0.B.i:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder $proto -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> c
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder):132:132 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitLocalDelegatedProperty(int,java.lang.String,int,int):135:135 -> a
    2:3:void visitModuleName(java.lang.String):140:141 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writePackageExtensions$1$visitLocalDelegatedProperty$1 -> com.android.tools.r8.w.b.a.y0.B.h:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writePackageExtensions$1 this$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object):132:132 -> a
    2:138:void invoke(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder):0:136 -> a
    2:138:java.lang.Object invoke(java.lang.Object):132 -> a
    139:139:java.lang.Object invoke(java.lang.Object):132:132 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writePropertyExtensions$1 -> com.android.tools.r8.w.b.a.y0.B.j:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions this$0 -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder signature -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder $proto -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> f
    int jvmFlags -> c
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder):168:169 -> <init>
    1:12:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):178:189 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder.build():2873:2874 -> a
    13:14:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):190 -> a
    15:15:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):190:190 -> a
    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder.build():2875 -> a
    16:16:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):190 -> a
    17:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder.build():2875:2875 -> a
    17:17:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):190 -> a
    18:21:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):193:196 -> a
    22:22:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):185:185 -> a
    23:27:void visitSyntheticMethodForAnnotations(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):204:208 -> a
    1:5:void visitEnd():212:216 -> b
    6:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder.build():3445:3446 -> b
    6:7:void visitEnd():216 -> b
    8:8:void visitEnd():216:216 -> b
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder.newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> b
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder.build():3447 -> b
    9:9:void visitEnd():216 -> b
    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder.build():3447:3447 -> b
    10:10:void visitEnd():216 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writeTypeExtensions$1 -> com.android.tools.r8.w.b.a.y0.B.k:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder $proto -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> d
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):248:248 -> <init>
    1:1:void visit(boolean):251:251 -> a
    2:2:void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation):256:256 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions$writeTypeParameterExtensions$1 -> com.android.tools.r8.w.b.a.y0.B.l:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder $proto -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext $c -> d
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.WriteContext):239:239 -> <init>
    1:1:void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation):241:241 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmPackageExtension -> com.android.tools.r8.w.b.a.y0.B.n:
    java.util.List localDelegatedProperties -> c
    java.lang.String moduleName -> d
    1:2:void <init>():61:62 -> <init>
    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):61:61 -> a
    2:182:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor):0:180 -> a
    2:182:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):61 -> a
    183:186:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor):75:78 -> a
    183:186:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):61 -> a
    187:187:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor):73:73 -> a
    187:187:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):61 -> a
    188:188:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitLocalDelegatedProperty(int,java.lang.String,int,int):66:66 -> a
    189:189:void visitModuleName(java.lang.String):69:69 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmPropertyExtension -> com.android.tools.r8.w.b.a.y0.B.o:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature syntheticMethodForAnnotations -> g
    int jvmFlags -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature fieldSignature -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature setterSignature -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature getterSignature -> e
    1:1:void <init>():102:102 -> <init>
    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):102:102 -> a
    2:131:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor):0:129 -> a
    2:131:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):102 -> a
    132:132:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor):126:126 -> a
    132:132:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):102 -> a
    133:136:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):115:118 -> a
    137:137:void visitSyntheticMethodForAnnotations(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):122:122 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmTypeExtension -> com.android.tools.r8.w.b.a.y0.B.p:
    java.util.List annotations -> d
    boolean isRaw -> c
    1:3:void <init>():160:162 -> <init>
    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):160:160 -> a
    2:182:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor):0:180 -> a
    2:182:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):160 -> a
    183:184:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor):175:176 -> a
    183:184:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):160 -> a
    185:185:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeExtensionVisitor):173:173 -> a
    185:185:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):160 -> a
    186:186:void visit(boolean):165:165 -> a
    187:187:void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation):169:169 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmTypeParameterExtension -> com.android.tools.r8.w.b.a.y0.B.q:
    java.util.List annotations -> c
    1:2:void <init>():146:147 -> <init>
    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):146:146 -> a
    2:182:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor):0:180 -> a
    2:182:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):146 -> a
    183:184:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor):155:156 -> a
    183:184:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):146 -> a
    185:185:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterExtensionVisitor):154:154 -> a
    185:185:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor):146 -> a
    186:186:void visitAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.KmAnnotation):150:150 -> a
com.android.tools.r8.joptsimple.AbstractOptionSpec -> com.android.tools.r8.joptsimple.a:
    java.util.List options -> a
    java.lang.String description -> b
    boolean forHelp -> c
    1:1:void <init>(java.util.Collection,java.lang.String):52:52 -> <init>
    2:13:void <init>(java.util.Collection,java.lang.String):44:55 -> <init>
    java.lang.Object convert(java.lang.String) -> a
    void handleOption(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet,java.lang.String) -> a
    1:1:java.util.Collection options():59:59 -> a
    2:21:void arrangeOptions(java.util.Collection):113:132 -> a
    22:22:java.lang.Object com.android.tools.r8.joptsimple.internal.Reflection.convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):128:128 -> a
    22:22:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):91 -> a
    23:23:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):97:97 -> a
    24:24:java.util.Collection options():59:59 -> a
    24:24:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):97 -> a
    25:25:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):97:97 -> a
    26:26:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):94:94 -> a
    27:27:java.util.Collection options():59:59 -> a
    27:27:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):94 -> a
    28:28:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):94:94 -> a
    1:1:java.lang.String description():71:71 -> b
    1:5:boolean equals(java.lang.Object):137:141 -> equals
    1:1:int hashCode():146:146 -> hashCode
    1:1:com.android.tools.r8.joptsimple.AbstractOptionSpec forHelp():75:75 -> i
    1:1:boolean isForHelp():80:80 -> j
    1:1:java.lang.String toString():151:151 -> toString
com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec -> com.android.tools.r8.joptsimple.b:
    java.lang.String valueSeparator -> g
    java.lang.String argumentDescription -> f
    java.util.List defaultValues -> h
    com.android.tools.r8.joptsimple.ValueConverter converter -> e
    boolean argumentRequired -> d
    1:1:void <init>(java.util.Collection,boolean,java.lang.String):75:75 -> <init>
    2:15:void <init>(java.util.Collection,boolean,java.lang.String):64:77 -> <init>
    void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet) -> a
    1:1:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class):106:106 -> a
    2:2:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withValuesConvertedBy(com.android.tools.r8.joptsimple.ValueConverter):126:126 -> a
    2:2:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class):106 -> a
    3:3:void addDefaultValue(java.lang.Object):248:248 -> a
    3:3:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[]):210 -> a
    4:4:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object[]):224:224 -> a
    4:4:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[]):211 -> a
    5:5:void addDefaultValue(java.lang.Object):248:248 -> a
    5:5:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object[]):225 -> a
    5:5:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[]):211 -> a
    6:6:void com.android.tools.r8.joptsimple.internal.Objects.ensureNotNull(java.lang.Object):44:44 -> a
    6:6:void addDefaultValue(java.lang.Object):247 -> a
    6:6:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object[]):225 -> a
    6:6:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[]):211 -> a
    7:7:void com.android.tools.r8.joptsimple.internal.Objects.ensureNotNull(java.lang.Object):44:44 -> a
    7:7:void addDefaultValue(java.lang.Object):247 -> a
    7:7:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[]):210 -> a
    8:11:void handleOption(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet,java.lang.String):255:258 -> a
    12:17:void addArguments(com.android.tools.r8.joptsimple.OptionSet,java.lang.String):262:267 -> a
    18:18:java.lang.Object convert(java.lang.String):276:276 -> a
    1:1:java.lang.String argumentDescription():305:305 -> argumentDescription
    1:1:java.lang.String description():58:58 -> b
    2:6:boolean canConvertArgument(java.lang.String):280:284 -> b
    7:7:java.lang.Object convert(java.lang.String):276:276 -> b
    7:7:boolean canConvertArgument(java.lang.String):284 -> b
    1:1:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String):138:138 -> c
    2:2:boolean requiresArgument():301:301 -> c
    boolean acceptsArguments() -> d
    1:1:java.util.List defaultValues():313:313 -> e
    1:4:boolean equals(java.lang.Object):318:321 -> equals
    5:5:boolean requiresArgument():301:301 -> equals
    5:5:boolean equals(java.lang.Object):322 -> equals
    6:6:boolean requiresArgument():301:301 -> equals
    6:6:boolean equals(java.lang.Object):322 -> equals
    boolean isRequired() -> f
    1:1:java.lang.String argumentTypeIndicator():309:309 -> g
    2:3:java.lang.String com.android.tools.r8.joptsimple.AbstractOptionSpec.argumentTypeIndicatorFrom(com.android.tools.r8.joptsimple.ValueConverter):105:106 -> g
    2:3:java.lang.String argumentTypeIndicator():309 -> g
    boolean representsNonOptions() -> h
    1:1:int hashCode():327:327 -> hashCode
    1:1:boolean isArgumentOfNumberType():293:293 -> k
    1:1:java.lang.String toString():58:58 -> toString
com.android.tools.r8.joptsimple.ArgumentList -> com.android.tools.r8.joptsimple.c:
    java.lang.String[] arguments -> a
    int currentIndex -> b
    1:2:void <init>(java.lang.String[]):39:40 -> <init>
    1:1:boolean hasMore():44:44 -> a
    1:1:java.lang.String next():48:48 -> b
    1:1:java.lang.String peek():52:52 -> c
com.android.tools.r8.joptsimple.BuiltinHelpFormatter -> com.android.tools.r8.joptsimple.e:
    com.android.tools.r8.joptsimple.internal.Rows nonOptionRows -> a
    com.android.tools.r8.joptsimple.internal.Rows optionRows -> b
    1:1:void <init>():60:60 -> <init>
    2:4:void <init>(int,int):70:72 -> <init>
    1:9:java.lang.String format(java.util.Map):76:84 -> a
    10:13:com.android.tools.r8.joptsimple.OptionDescriptor findAndRemoveNonOptionsSpec(java.util.Collection):142:145 -> a
    10:13:void addNonOptionsDescription(java.util.Collection):115 -> a
    10:13:void addRows(java.util.Collection):102 -> a
    10:13:java.lang.String format(java.util.Map):86 -> a
    14:14:boolean shouldShowNonOptionArgumentDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):123:123 -> a
    14:14:void addNonOptionsDescription(java.util.Collection):116 -> a
    14:14:void addRows(java.util.Collection):102 -> a
    14:14:java.lang.String format(java.util.Map):86 -> a
    15:16:void addNonOptionsDescription(java.util.Collection):117:118 -> a
    15:16:void addRows(java.util.Collection):102 -> a
    15:16:java.lang.String format(java.util.Map):86 -> a
    17:18:java.lang.String createNonOptionArgumentsDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):129:130 -> a
    17:18:void addNonOptionsDescription(java.util.Collection):118 -> a
    17:18:void addRows(java.util.Collection):102 -> a
    17:18:java.lang.String format(java.util.Map):86 -> a
    19:19:void maybeAppendNonOptionsDescription(java.lang.StringBuilder,com.android.tools.r8.joptsimple.OptionDescriptor):137:137 -> a
    19:19:java.lang.String createNonOptionArgumentsDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):131 -> a
    19:19:void addNonOptionsDescription(java.util.Collection):118 -> a
    19:19:void addRows(java.util.Collection):102 -> a
    19:19:java.lang.String format(java.util.Map):86 -> a
    20:20:java.lang.String createNonOptionArgumentsDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):133:133 -> a
    20:20:void addNonOptionsDescription(java.util.Collection):118 -> a
    20:20:void addRows(java.util.Collection):102 -> a
    20:20:java.lang.String format(java.util.Map):86 -> a
    21:21:void addNonOptionsDescription(java.util.Collection):118:118 -> a
    21:21:void addRows(java.util.Collection):102 -> a
    21:21:java.lang.String format(java.util.Map):86 -> a
    22:23:void addRows(java.util.Collection):104:105 -> a
    22:23:java.lang.String format(java.util.Map):86 -> a
    24:25:boolean hasRequiredOption(java.util.Collection):164:165 -> a
    24:25:void addHeaders(java.util.Collection):154 -> a
    24:25:void addRows(java.util.Collection):107 -> a
    24:25:java.lang.String format(java.util.Map):86 -> a
    26:30:void addHeaders(java.util.Collection):155:159 -> a
    26:30:void addRows(java.util.Collection):107 -> a
    26:30:java.lang.String format(java.util.Map):86 -> a
    31:33:void addOptions(java.util.Collection):173:175 -> a
    31:33:void addRows(java.util.Collection):108 -> a
    31:33:java.lang.String format(java.util.Map):86 -> a
    34:47:java.lang.String createOptionDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):180:193 -> a
    34:47:void addOptions(java.util.Collection):175 -> a
    34:47:void addRows(java.util.Collection):108 -> a
    34:47:java.lang.String format(java.util.Map):86 -> a
    48:50:java.lang.String createDescriptionDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):236:238 -> a
    48:50:void addOptions(java.util.Collection):175 -> a
    48:50:void addRows(java.util.Collection):108 -> a
    48:50:java.lang.String format(java.util.Map):86 -> a
    51:51:java.lang.String createDefaultValuesDisplay(java.util.List):245:245 -> a
    51:51:java.lang.String createDescriptionDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):240 -> a
    51:51:void addOptions(java.util.Collection):175 -> a
    51:51:void addRows(java.util.Collection):108 -> a
    51:51:java.lang.String format(java.util.Map):86 -> a
    52:52:java.lang.String createDescriptionDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):241:241 -> a
    52:52:void addOptions(java.util.Collection):175 -> a
    52:52:void addRows(java.util.Collection):108 -> a
    52:52:java.lang.String format(java.util.Map):86 -> a
    53:53:void addOptions(java.util.Collection):175:175 -> a
    53:53:void addRows(java.util.Collection):108 -> a
    53:53:java.lang.String format(java.util.Map):86 -> a
    54:55:void fitRowsToWidth():249:250 -> a
    54:55:void addRows(java.util.Collection):111 -> a
    54:55:java.lang.String format(java.util.Map):86 -> a
    56:62:java.lang.String formattedHelpOutput():92:98 -> a
    56:62:java.lang.String format(java.util.Map):88 -> a
    63:63:com.android.tools.r8.joptsimple.OptionDescriptor findAndRemoveNonOptionsSpec(java.util.Collection):150:150 -> a
    63:63:void addNonOptionsDescription(java.util.Collection):115 -> a
    63:63:void addRows(java.util.Collection):102 -> a
    63:63:java.lang.String format(java.util.Map):86 -> a
    64:67:java.lang.String extractTypeIndicator(com.android.tools.r8.joptsimple.OptionDescriptor):204:207 -> a
    64:67:void maybeAppendOptionInfo(java.lang.StringBuilder,com.android.tools.r8.joptsimple.OptionDescriptor):197 -> a
    68:70:void maybeAppendOptionInfo(java.lang.StringBuilder,com.android.tools.r8.joptsimple.OptionDescriptor):198:200 -> a
    71:73:void appendOptionHelp(java.lang.StringBuilder,java.lang.String,java.lang.String,boolean):214:216 -> a
    71:73:void maybeAppendOptionInfo(java.lang.StringBuilder,com.android.tools.r8.joptsimple.OptionDescriptor):200 -> a
    74:85:void appendTypeIndicator(java.lang.StringBuilder,java.lang.String,java.lang.String,char,char):221:232 -> a
com.android.tools.r8.joptsimple.BuiltinHelpFormatter$1 -> com.android.tools.r8.joptsimple.d:
    1:1:void <init>(com.android.tools.r8.joptsimple.BuiltinHelpFormatter):77:77 -> <init>
    1:1:int compare(java.lang.Object,java.lang.Object):77:77 -> compare
    2:2:int compare(com.android.tools.r8.joptsimple.OptionDescriptor,com.android.tools.r8.joptsimple.OptionDescriptor):79:79 -> compare
    2:2:int compare(java.lang.Object,java.lang.Object):77 -> compare
com.android.tools.r8.joptsimple.IllegalOptionSpecificationException -> com.android.tools.r8.joptsimple.f:
    1:1:void <init>(java.lang.String):39:39 -> <init>
    1:1:java.lang.String getMessage():44:44 -> getMessage
com.android.tools.r8.joptsimple.MissingRequiredOptionException -> com.android.tools.r8.joptsimple.g:
    1:1:void <init>(java.util.Collection):39:39 -> <init>
    1:1:java.lang.String getMessage():44:44 -> getMessage
com.android.tools.r8.joptsimple.MultipleArgumentsForOptionException -> com.android.tools.r8.joptsimple.h:
    1:1:void <init>(java.util.Collection):39:39 -> <init>
    1:1:java.lang.String getMessage():44:44 -> getMessage
com.android.tools.r8.joptsimple.NonOptionArgumentSpec -> com.android.tools.r8.joptsimple.i:
    java.lang.String argumentDescription -> d
    1:1:void <init>():60:60 -> <init>
    2:2:void <init>(java.lang.String):64:64 -> <init>
    3:3:void <init>(java.lang.String):57:57 -> <init>
    1:1:java.lang.Object convert(java.lang.String):133:133 -> a
    2:2:void handleOption(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet,java.lang.String):140:140 -> a
    1:1:java.lang.String argumentDescription():160:160 -> argumentDescription
    1:1:java.lang.String description():53:53 -> b
    boolean requiresArgument() -> c
    boolean acceptsArguments() -> d
    1:1:java.util.List defaultValues():144:144 -> e
    1:1:boolean equals(java.lang.Object):53:53 -> equals
    boolean isRequired() -> f
    java.lang.String argumentTypeIndicator() -> g
    boolean representsNonOptions() -> h
    1:1:int hashCode():53:53 -> hashCode
    1:1:java.lang.String toString():53:53 -> toString
com.android.tools.r8.joptsimple.OptionArgumentConversionException -> com.android.tools.r8.joptsimple.j:
    java.lang.String argument -> b
    1:3:void <init>(java.util.Collection,java.lang.String,java.lang.Throwable):41:43 -> <init>
    1:1:java.lang.String getMessage():48:48 -> getMessage
com.android.tools.r8.joptsimple.OptionDescriptor -> com.android.tools.r8.joptsimple.OptionDescriptor:
    java.util.Collection options() -> a
    java.lang.String description() -> b
    boolean requiresArgument() -> c
    boolean acceptsArguments() -> d
    java.util.List defaultValues() -> e
    boolean isRequired() -> f
    java.lang.String argumentTypeIndicator() -> g
    boolean representsNonOptions() -> h
com.android.tools.r8.joptsimple.OptionException -> com.android.tools.r8.joptsimple.k:
    java.util.List options -> a
    1:1:void <init>(java.util.Collection):47:47 -> <init>
    2:5:void <init>(java.util.Collection):45:48 -> <init>
    6:6:void <init>(java.util.Collection,java.lang.Throwable):52:52 -> <init>
    7:16:void <init>(java.util.Collection,java.lang.Throwable):45:54 -> <init>
    1:4:java.lang.String multipleOptionMessage():75:78 -> a
    5:5:java.lang.String singleOptionMessage(java.lang.String):71:71 -> a
    5:5:java.lang.String multipleOptionMessage():78 -> a
    6:13:java.lang.String multipleOptionMessage():78:85 -> a
    14:14:com.android.tools.r8.joptsimple.OptionException unrecognizedOption(java.lang.String):89:89 -> a
    1:1:java.lang.String singleOptionMessage():67:67 -> b
    2:2:java.lang.String singleOptionMessage(java.lang.String):71:71 -> b
    2:2:java.lang.String singleOptionMessage():67 -> b
com.android.tools.r8.joptsimple.OptionMissingRequiredArgumentException -> com.android.tools.r8.joptsimple.l:
    1:1:void <init>(java.util.Collection):39:39 -> <init>
    1:1:java.lang.String getMessage():44:44 -> getMessage
com.android.tools.r8.joptsimple.OptionParser -> com.android.tools.r8.joptsimple.m:
    java.util.Map requiredIf -> b
    java.util.Map requiredUnless -> c
    com.android.tools.r8.joptsimple.OptionParserState state -> d
    com.android.tools.r8.joptsimple.internal.AbbreviationMap recognizedOptions -> a
    com.android.tools.r8.joptsimple.HelpFormatter helpFormatter -> e
    1:1:void <init>():206:206 -> <init>
    2:14:void <init>():200:212 -> <init>
    1:1:com.android.tools.r8.joptsimple.OptionParserState com.android.tools.r8.joptsimple.OptionParserState.noMoreOptions():38:38 -> a
    1:1:void noMoreOptions():467 -> a
    2:2:void noMoreOptions():467:467 -> a
    3:3:com.android.tools.r8.joptsimple.OptionSpecBuilder accepts(java.lang.String):232:232 -> a
    4:9:com.android.tools.r8.joptsimple.OptionSpecBuilder acceptsAll(java.util.Collection,java.lang.String):244:249 -> a
    4:9:com.android.tools.r8.joptsimple.OptionSpecBuilder acceptsAll(java.util.Collection):240 -> a
    4:9:com.android.tools.r8.joptsimple.OptionSpecBuilder accepts(java.lang.String):232 -> a
    10:10:com.android.tools.r8.joptsimple.OptionSpecBuilder acceptsAll(java.util.Collection,java.lang.String):245:245 -> a
    10:10:com.android.tools.r8.joptsimple.OptionSpecBuilder acceptsAll(java.util.Collection):240 -> a
    10:10:com.android.tools.r8.joptsimple.OptionSpecBuilder accepts(java.lang.String):232 -> a
    11:11:com.android.tools.r8.joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String):236:236 -> a
    12:17:com.android.tools.r8.joptsimple.OptionSpecBuilder acceptsAll(java.util.Collection,java.lang.String):244:249 -> a
    12:17:com.android.tools.r8.joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String):236 -> a
    18:18:com.android.tools.r8.joptsimple.OptionSpecBuilder acceptsAll(java.util.Collection,java.lang.String):245:245 -> a
    18:18:com.android.tools.r8.joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String):236 -> a
    19:19:void recognize(com.android.tools.r8.joptsimple.AbstractOptionSpec):293:293 -> a
    20:20:void printHelpOn(java.io.OutputStream):307:307 -> a
    21:22:void printHelpOn(java.io.Writer):321:322 -> a
    21:22:void printHelpOn(java.io.OutputStream):307 -> a
    23:25:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):356:358 -> a
    26:26:void com.android.tools.r8.joptsimple.OptionSet.add(com.android.tools.r8.joptsimple.AbstractOptionSpec):259:259 -> a
    26:26:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):358 -> a
    27:28:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):360:361 -> a
    29:29:com.android.tools.r8.joptsimple.OptionParserState com.android.tools.r8.joptsimple.OptionParserState.moreOptions(boolean):47:47 -> a
    29:29:void reset():521 -> a
    29:29:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):363 -> a
    30:30:void reset():521:521 -> a
    30:30:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):363 -> a
    31:50:java.util.Collection missingRequiredOptions(com.android.tools.r8.joptsimple.OptionSet):379:398 -> a
    31:50:void ensureRequiredOptions(com.android.tools.r8.joptsimple.OptionSet):371 -> a
    31:50:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):365 -> a
    51:54:void ensureRequiredOptions(com.android.tools.r8.joptsimple.OptionSet):372:375 -> a
    51:54:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):365 -> a
    55:56:boolean optionsHasAnyOf(com.android.tools.r8.joptsimple.OptionSet,java.util.Collection):406:407 -> a
    57:58:boolean isHelpOptionPresent(com.android.tools.r8.joptsimple.OptionSet):416:417 -> a
    59:59:void requiredIf(java.util.Collection,com.android.tools.r8.joptsimple.OptionSpec):483:483 -> a
    60:72:void putRequiredOption(java.util.Collection,com.android.tools.r8.joptsimple.OptionSpec,java.util.Map):497:509 -> a
    60:72:void requiredIf(java.util.Collection,com.android.tools.r8.joptsimple.OptionSpec):483 -> a
    73:73:com.android.tools.r8.joptsimple.util.KeyValuePair parseLongOptionWithArgument(java.lang.String):544:544 -> a
    73:73:void handleLongOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):426 -> a
    74:78:void handleLongOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):428:432 -> a
    79:79:void handleLongOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):429:429 -> a
    1:1:boolean isRecognized(java.lang.String):475:475 -> b
    2:2:boolean com.android.tools.r8.joptsimple.internal.AbbreviationMap.contains(java.lang.String):74:74 -> b
    2:2:boolean isRecognized(java.lang.String):475 -> b
    3:3:com.android.tools.r8.joptsimple.AbstractOptionSpec specFor(java.lang.String):517:517 -> b
    3:3:void handleNonOptionArgument(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):463 -> b
    4:4:void handleNonOptionArgument(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):463:463 -> b
    1:1:com.android.tools.r8.joptsimple.NonOptionArgumentSpec nonOptions(java.lang.String):261:261 -> c
    2:2:void recognize(com.android.tools.r8.joptsimple.AbstractOptionSpec):293:293 -> c
    2:2:com.android.tools.r8.joptsimple.NonOptionArgumentSpec nonOptions(java.lang.String):263 -> c
    3:3:com.android.tools.r8.joptsimple.util.KeyValuePair parseShortOptionWithArgument(java.lang.String):548:548 -> c
    3:3:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):436 -> c
    4:5:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):438:439 -> c
    6:7:char[] extractShortOptionsFrom(java.lang.String):525:526 -> c
    6:7:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):446 -> c
    6:7:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
    8:14:void validateOptionCharacters(char[]):532:538 -> c
    8:14:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):447 -> c
    8:14:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
    15:15:void validateOptionCharacters(char[]):536:536 -> c
    15:15:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):447 -> c
    15:15:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
    16:16:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):450:450 -> c
    16:16:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
    17:17:com.android.tools.r8.joptsimple.AbstractOptionSpec specFor(char):513:513 -> c
    17:17:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):450 -> c
    17:17:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
    18:24:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):452:458 -> c
    18:24:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
    1:1:com.android.tools.r8.joptsimple.AbstractOptionSpec specFor(java.lang.String):517:517 -> d
com.android.tools.r8.joptsimple.OptionParserState -> com.android.tools.r8.joptsimple.p:
    1:1:void <init>():36:36 -> <init>
    void handleArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet) -> a
    1:1:com.android.tools.r8.joptsimple.OptionParserState moreOptions(boolean):47:47 -> a
com.android.tools.r8.joptsimple.OptionParserState$1 -> com.android.tools.r8.joptsimple.n:
    1:1:void <init>():38:38 -> <init>
    1:1:void handleArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):41:41 -> a
com.android.tools.r8.joptsimple.OptionParserState$2 -> com.android.tools.r8.joptsimple.o:
    boolean val$posixlyCorrect -> a
    1:1:void <init>(boolean):47:47 -> <init>
    1:21:void handleArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):50:70 -> a
    22:22:void handleArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):64:64 -> a
com.android.tools.r8.joptsimple.OptionSet -> com.android.tools.r8.joptsimple.q:
    java.util.List detectedSpecs -> a
    java.util.Map detectedOptions -> b
    java.util.Map optionsToArguments -> c
    java.util.Map defaultValues -> d
    1:5:void <init>(java.util.Map):49:53 -> <init>
    1:1:boolean has(com.android.tools.r8.joptsimple.OptionSpec):91:91 -> a
    2:15:void addWithArgument(com.android.tools.r8.joptsimple.AbstractOptionSpec,java.lang.String):263:276 -> a
    16:18:java.util.Map defaultValues(java.util.Map):316:318 -> a
    1:8:java.lang.Object valueOf(com.android.tools.r8.joptsimple.OptionSpec):169:176 -> b
    9:9:void com.android.tools.r8.joptsimple.internal.Objects.ensureNotNull(java.lang.Object):44:44 -> b
    9:9:java.lang.Object valueOf(com.android.tools.r8.joptsimple.OptionSpec):167 -> b
    1:10:java.util.List valuesOf(com.android.tools.r8.joptsimple.OptionSpec):213:222 -> c
    11:11:java.util.List defaultValueFor(com.android.tools.r8.joptsimple.OptionSpec):312:312 -> c
    11:11:java.util.List valuesOf(com.android.tools.r8.joptsimple.OptionSpec):215 -> c
    12:15:java.util.List defaultValuesFor(java.lang.String):305:308 -> c
    12:15:java.util.List defaultValueFor(com.android.tools.r8.joptsimple.OptionSpec):312 -> c
    12:15:java.util.List valuesOf(com.android.tools.r8.joptsimple.OptionSpec):215 -> c
    16:16:void com.android.tools.r8.joptsimple.internal.Objects.ensureNotNull(java.lang.Object):44:44 -> c
    16:16:java.util.List valuesOf(com.android.tools.r8.joptsimple.OptionSpec):211 -> c
    1:9:boolean equals(java.lang.Object):284:292 -> equals
    1:3:int hashCode():298:300 -> hashCode
com.android.tools.r8.joptsimple.OptionSpec -> com.android.tools.r8.joptsimple.r:
com.android.tools.r8.joptsimple.OptionSpecBuilder -> com.android.tools.r8.joptsimple.s:
    com.android.tools.r8.joptsimple.OptionParser parser -> d
    1:1:void com.android.tools.r8.joptsimple.NoArgumentOptionSpec.<init>(java.util.Collection,java.lang.String):44:44 -> <init>
    1:1:void <init>(com.android.tools.r8.joptsimple.OptionParser,java.util.Collection,java.lang.String):64 -> <init>
    2:3:void <init>(com.android.tools.r8.joptsimple.OptionParser,java.util.Collection,java.lang.String):66:67 -> <init>
    java.lang.Object com.android.tools.r8.joptsimple.NoArgumentOptionSpec.convert(java.lang.String) -> a
    1:3:com.android.tools.r8.joptsimple.OptionSpecBuilder requiredIf(com.android.tools.r8.joptsimple.OptionSpec,com.android.tools.r8.joptsimple.OptionSpec[]):135:137 -> a
    4:4:void com.android.tools.r8.joptsimple.OptionSet.add(com.android.tools.r8.joptsimple.AbstractOptionSpec):259:259 -> a
    4:4:void com.android.tools.r8.joptsimple.NoArgumentOptionSpec.handleOption(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet,java.lang.String):51 -> a
    4:4:void com.android.tools.r8.joptsimple.NoArgumentOptionSpec.handleOption(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet,java.lang.String):0 -> a
    1:1:java.lang.String description():60:60 -> b
    boolean requiresArgument() -> c
    boolean acceptsArguments() -> d
    1:1:java.util.List com.android.tools.r8.joptsimple.NoArgumentOptionSpec.defaultValues():80:80 -> e
    1:1:java.util.List defaultValues():60 -> e
    1:1:boolean equals(java.lang.Object):60:60 -> equals
    boolean isRequired() -> f
    java.lang.String argumentTypeIndicator() -> g
    boolean representsNonOptions() -> h
    1:1:int hashCode():60:60 -> hashCode
    com.android.tools.r8.joptsimple.AbstractOptionSpec forHelp() -> i
    1:1:void attachToParser():71:71 -> k
    1:1:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withOptionalArg():93:93 -> l
    2:2:java.lang.String description():60:60 -> l
    2:2:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withOptionalArg():93 -> l
    3:5:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withOptionalArg():93:95 -> l
    1:1:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withRequiredArg():80:80 -> m
    2:2:java.lang.String description():60:60 -> m
    2:2:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withRequiredArg():80 -> m
    3:5:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withRequiredArg():80:82 -> m
    1:1:java.lang.String toString():60:60 -> toString
com.android.tools.r8.joptsimple.OptionalArgumentOptionSpec -> com.android.tools.r8.joptsimple.t:
    1:1:void <init>(java.util.Collection,java.lang.String):42:42 -> <init>
    1:2:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):47:48 -> a
    3:3:boolean com.android.tools.r8.joptsimple.OptionParser.looksLikeAnOption(java.lang.String):471:471 -> a
    3:3:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):50 -> a
    4:4:void handleOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.joptsimple.ArgumentList):67:67 -> a
    4:4:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):51 -> a
    5:6:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):52:53 -> a
    7:7:void com.android.tools.r8.joptsimple.OptionSet.add(com.android.tools.r8.joptsimple.AbstractOptionSpec):259:259 -> a
    7:7:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):55 -> a
    8:8:boolean com.android.tools.r8.joptsimple.OptionParser.looksLikeAnOption(java.lang.String):471:471 -> a
    8:8:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):50 -> a
    9:9:void com.android.tools.r8.joptsimple.OptionSet.add(com.android.tools.r8.joptsimple.AbstractOptionSpec):259:259 -> a
    9:9:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):58 -> a
com.android.tools.r8.joptsimple.ParserRules -> com.android.tools.r8.joptsimple.u:
    java.lang.String HYPHEN -> a
    1:1:void <clinit>():39:39 -> <clinit>
    1:1:boolean isLongOptionToken(java.lang.String):55:55 -> a
    2:2:boolean isOptionTerminator(java.lang.String):59:59 -> a
    2:2:boolean isLongOptionToken(java.lang.String):55 -> a
    3:3:void ensureLegalOptions(java.util.Collection):71:71 -> a
    4:8:void ensureLegalOption(java.lang.String):63:67 -> a
    4:8:void ensureLegalOptions(java.util.Collection):72 -> a
    9:9:void ensureLegalOptionCharacter(char):76:76 -> a
    9:9:void ensureLegalOption(java.lang.String):67 -> a
    9:9:void ensureLegalOptions(java.util.Collection):72 -> a
    10:10:boolean isAllowedPunctuation(char):82:82 -> a
    10:10:void ensureLegalOptionCharacter(char):76 -> a
    10:10:void ensureLegalOption(java.lang.String):67 -> a
    10:10:void ensureLegalOptions(java.util.Collection):72 -> a
    11:11:void ensureLegalOptionCharacter(char):77:77 -> a
    11:11:void ensureLegalOption(java.lang.String):67 -> a
    11:11:void ensureLegalOptions(java.util.Collection):72 -> a
    12:12:void ensureLegalOption(java.lang.String):64:64 -> a
    12:12:void ensureLegalOptions(java.util.Collection):72 -> a
    1:1:boolean isOptionTerminator(java.lang.String):59:59 -> b
    1:1:boolean isShortOptionToken(java.lang.String):49:49 -> c
com.android.tools.r8.joptsimple.RequiredArgumentOptionSpec -> com.android.tools.r8.joptsimple.v:
    1:1:void <init>(java.util.Collection,java.lang.String):42:42 -> <init>
    1:4:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):47:50 -> a
    5:5:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):48:48 -> a
com.android.tools.r8.joptsimple.UnconfiguredOptionException -> com.android.tools.r8.joptsimple.w:
    1:1:void <init>(java.util.Collection):45:45 -> <init>
    1:1:java.lang.String getMessage():50:50 -> getMessage
com.android.tools.r8.joptsimple.UnrecognizedOptionException -> com.android.tools.r8.joptsimple.x:
    1:1:void <init>(java.lang.String):39:39 -> <init>
    1:1:java.lang.String getMessage():44:44 -> getMessage
com.android.tools.r8.joptsimple.ValueConversionException -> com.android.tools.r8.joptsimple.y:
com.android.tools.r8.joptsimple.ValueConverter -> com.android.tools.r8.joptsimple.z:
    java.lang.Object convert(java.lang.String) -> a
    java.lang.Class valueType() -> a
    java.lang.String valuePattern() -> b
com.android.tools.r8.joptsimple.internal.AbbreviationMap -> com.android.tools.r8.joptsimple.A.a:
    java.util.Map children -> c
    java.lang.Object value -> b
    java.lang.String key -> a
    int keysBeyond -> d
    1:4:void <init>():59:62 -> <init>
    1:1:void putAll(java.lang.Iterable,java.lang.Object):128:128 -> a
    2:2:void put(java.lang.String,java.lang.Object):111:111 -> a
    2:2:void putAll(java.lang.Iterable,java.lang.Object):129 -> a
    3:4:char[] charsOf(java.lang.String):230:231 -> a
    3:4:void put(java.lang.String,java.lang.Object):114 -> a
    3:4:void putAll(java.lang.Iterable,java.lang.Object):129 -> a
    5:5:void put(java.lang.String,java.lang.Object):115:115 -> a
    5:5:void putAll(java.lang.Iterable,java.lang.Object):129 -> a
    6:6:void put(java.lang.String,java.lang.Object):112:112 -> a
    6:6:void putAll(java.lang.Iterable,java.lang.Object):129 -> a
    7:26:boolean add(char[],java.lang.Object,int,int):134:153 -> a
    27:28:java.util.Map toJavaUtilMap():216:217 -> a
    29:33:void addToMappings(java.util.Map):222:226 -> a
    34:35:char[] charsOf(java.lang.String):230:231 -> a
    34:35:java.lang.Object get(java.lang.String):87 -> a
    36:42:java.lang.Object get(java.lang.String):90:96 -> a
com.android.tools.r8.joptsimple.internal.Classes -> com.android.tools.r8.joptsimple.A.b:
    java.util.Map WRAPPERS -> a
    1:12:void <clinit>():35:46 -> <clinit>
    1:1:java.lang.String shortNameOf(java.lang.String):60:60 -> a
    2:2:java.lang.Class wrapperOf(java.lang.Class):73:73 -> a
com.android.tools.r8.joptsimple.internal.Columns -> com.android.tools.r8.joptsimple.A.c:
    int descriptionWidth -> b
    int optionWidth -> a
    1:3:void <init>(int,int):46:48 -> <init>
    1:6:java.util.List fit(com.android.tools.r8.joptsimple.internal.Row):52:57 -> a
    7:7:java.lang.String itemOrEmpty(java.util.List,int):63:63 -> a
    7:7:java.util.List fit(com.android.tools.r8.joptsimple.internal.Row):57 -> a
    8:8:java.util.List fit(com.android.tools.r8.joptsimple.internal.Row):57:57 -> a
    9:11:java.util.List piecesOf(java.lang.String,int):67:69 -> a
    12:20:java.util.List piecesOfEmbeddedLine(java.lang.String,int):76:84 -> a
    12:20:java.util.List piecesOf(java.lang.String,int):70 -> a
    21:27:java.lang.StringBuilder processNextWord(java.lang.String,java.lang.StringBuilder,int,int,int,java.util.List):97:103 -> a
    21:27:java.util.List piecesOfEmbeddedLine(java.lang.String,int):85 -> a
    21:27:java.util.List piecesOf(java.lang.String,int):70 -> a
    28:32:java.util.List piecesOfEmbeddedLine(java.lang.String,int):84:88 -> a
    28:32:java.util.List piecesOf(java.lang.String,int):70 -> a
    33:33:java.util.List piecesOf(java.lang.String,int):70:70 -> a
com.android.tools.r8.joptsimple.internal.ConstructorInvokingValueConverter -> com.android.tools.r8.joptsimple.A.d:
    java.lang.reflect.Constructor ctor -> a
    1:2:void <init>(java.lang.reflect.Constructor):41:42 -> <init>
    1:1:java.lang.Object convert(java.lang.String):46:46 -> a
    2:2:java.lang.Class valueType():50:50 -> a
    java.lang.String valuePattern() -> b
com.android.tools.r8.joptsimple.internal.MethodInvokingValueConverter -> com.android.tools.r8.joptsimple.A.e:
    java.lang.Class clazz -> b
    java.lang.reflect.Method method -> a
    1:3:void <init>(java.lang.reflect.Method,java.lang.Class):42:44 -> <init>
    1:1:java.lang.Object convert(java.lang.String):48:48 -> a
    2:2:java.lang.Class valueType():52:52 -> a
    java.lang.String valuePattern() -> b
com.android.tools.r8.joptsimple.internal.Reflection -> com.android.tools.r8.joptsimple.A.f:
    1:1:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):56:56 -> a
    2:2:com.android.tools.r8.joptsimple.ValueConverter valueOfConverter(java.lang.Class):71:71 -> a
    2:2:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):58 -> a
    3:4:boolean meetsConverterRequirements(java.lang.reflect.Method,java.lang.Class):132:133 -> a
    3:4:com.android.tools.r8.joptsimple.ValueConverter valueOfConverter(java.lang.Class):72 -> a
    3:4:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):58 -> a
    5:5:com.android.tools.r8.joptsimple.ValueConverter valueOfConverter(java.lang.Class):73:73 -> a
    5:5:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):58 -> a
    6:6:com.android.tools.r8.joptsimple.ValueConverter constructorConverter(java.lang.Class):84:84 -> a
    6:6:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):62 -> a
    7:7:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):66:66 -> a
    8:11:java.lang.Object instantiate(java.lang.reflect.Constructor,java.lang.Object[]):102:105 -> a
    12:15:java.lang.Object invoke(java.lang.reflect.Method,java.lang.Object[]):119:122 -> a
    16:23:java.lang.RuntimeException reflectionException(java.lang.Exception):137:144 -> a
com.android.tools.r8.joptsimple.internal.ReflectionException -> com.android.tools.r8.joptsimple.A.g:
    1:1:void <init>(java.lang.Throwable):37:37 -> <init>
com.android.tools.r8.joptsimple.internal.Row -> com.android.tools.r8.joptsimple.A.h:
    java.lang.String option -> a
    java.lang.String description -> b
    1:3:void <init>(java.lang.String,java.lang.String):35:37 -> <init>
    1:5:boolean equals(java.lang.Object):44:48 -> equals
    1:1:int hashCode():53:53 -> hashCode
com.android.tools.r8.joptsimple.internal.Rows -> com.android.tools.r8.joptsimple.A.i:
    java.util.Set rows -> c
    int widthOfWidestOption -> d
    int widthOfWidestDescription -> e
    int columnSeparatorWidth -> b
    int overallWidth -> a
    1:1:void <init>(int,int):45:45 -> <init>
    2:8:void <init>(int,int):41:47 -> <init>
    1:1:void add(java.lang.String,java.lang.String):51:51 -> a
    2:4:void add(com.android.tools.r8.joptsimple.internal.Row):55:57 -> a
    5:5:void fitToWidth():67:67 -> a
    6:6:int optionWidth():91:91 -> a
    6:6:void fitToWidth():67 -> a
    7:7:int descriptionWidth():95:95 -> a
    7:7:void fitToWidth():67 -> a
    8:12:void fitToWidth():67:71 -> a
    13:15:void reset():61:63 -> a
    13:15:void fitToWidth():73 -> a
    16:17:void fitToWidth():75:76 -> a
    1:4:java.lang.String render():80:83 -> b
    5:5:int optionWidth():91:91 -> b
    5:5:java.lang.String render():83 -> b
    6:6:java.lang.StringBuilder pad(java.lang.StringBuilder,java.lang.String,int):99:99 -> b
    6:6:java.lang.String render():83 -> b
    7:8:java.lang.String render():83:84 -> b
    9:9:int descriptionWidth():95:95 -> b
    9:9:java.lang.String render():84 -> b
    10:10:java.lang.StringBuilder pad(java.lang.StringBuilder,java.lang.String,int):99:99 -> b
    10:10:java.lang.String render():84 -> b
    11:14:java.lang.String render():84:87 -> b
com.android.tools.r8.joptsimple.internal.Strings -> com.android.tools.r8.joptsimple.A.j:
    java.lang.String LINE_SEPARATOR -> a
    1:1:void <clinit>():40:40 -> <clinit>
    1:6:java.lang.String repeat(char,int):54:59 -> a
    7:7:boolean isNullOrEmpty(java.lang.String):69:69 -> a
    8:8:java.lang.String surround(java.lang.String,char,char):82:82 -> a
com.android.tools.r8.joptsimple.util.KeyValuePair -> com.android.tools.r8.joptsimple.B.a:
    java.lang.String key -> a
    java.lang.String value -> b
    1:3:void <init>(java.lang.String,java.lang.String):42:44 -> <init>
    1:8:com.android.tools.r8.joptsimple.util.KeyValuePair valueOf(java.lang.String):55:62 -> a
    1:5:boolean equals(java.lang.Object):67:71 -> equals
    1:1:int hashCode():76:76 -> hashCode
    1:1:java.lang.String toString():81:81 -> toString
com.android.tools.r8.kotlin.Kotlin -> com.android.tools.r8.x.a:
    java.lang.String KOTLIN -> g
    java.lang.String NAME -> f
    com.android.tools.r8.kotlin.Kotlin$Functional functional -> b
    com.android.tools.r8.kotlin.Kotlin$Metadata metadata -> d
    com.android.tools.r8.kotlin.Kotlin$Intrinsics intrinsics -> c
    java.util.Map knownTypeConversion -> e
    com.android.tools.r8.graph.DexItemFactory factory -> a
    1:5:void <clinit>():26:30 -> <clinit>
    1:22:void <init>(com.android.tools.r8.graph.DexItemFactory):44:65 -> <init>
    1:1:java.lang.String addKotlinPrefix(java.lang.String):33:33 -> a
    2:2:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):137:137 -> a
com.android.tools.r8.kotlin.Kotlin$1 -> com.android.tools.r8.x.a$a:
com.android.tools.r8.kotlin.Kotlin$Functional -> com.android.tools.r8.x.a$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap functions -> a
    com.android.tools.r8.graph.DexString kotlinStyleLambdaInstanceName -> b
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.DexType lambdaType -> c
    com.android.tools.r8.graph.DexMethod lambdaInitializerMethod -> d
    com.android.tools.r8.kotlin.Kotlin this$0 -> e
    1:1:void <clinit>():68:68 -> <clinit>
    1:1:void <init>(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.kotlin.Kotlin$1):68:68 -> <init>
    2:2:void <init>(com.android.tools.r8.kotlin.Kotlin):86:86 -> <init>
    3:7:void <init>(com.android.tools.r8.kotlin.Kotlin):79:83 -> <init>
    8:8:void <init>(com.android.tools.r8.kotlin.Kotlin):81:81 -> <init>
    9:26:void <init>(com.android.tools.r8.kotlin.Kotlin):80:97 -> <init>
    27:27:void <init>(com.android.tools.r8.kotlin.Kotlin):95:95 -> <init>
    1:1:com.android.tools.r8.graph.DexType lambda$new$0(java.lang.Integer):82:82 -> a
    2:2:int getArity(com.android.tools.r8.graph.DexType):105:105 -> a
    3:3:boolean isFunctionInterface(com.android.tools.r8.graph.DexType):101:101 -> a
    3:3:int getArity(com.android.tools.r8.graph.DexType):105 -> a
    4:6:int getArity(com.android.tools.r8.graph.DexType):105:107 -> a
    1:1:boolean isFunctionInterface(com.android.tools.r8.graph.DexType):101:101 -> b
com.android.tools.r8.kotlin.Kotlin$Intrinsics -> com.android.tools.r8.x.a$c:
    com.android.tools.r8.graph.DexType type -> a
    com.android.tools.r8.graph.DexMethod throwNpe -> d
    com.android.tools.r8.graph.DexMethod checkParameterIsNotNull -> c
    com.android.tools.r8.graph.DexMethod throwParameterIsNullException -> b
    com.android.tools.r8.kotlin.Kotlin this$0 -> e
    1:4:void <init>(com.android.tools.r8.kotlin.Kotlin):124:127 -> <init>
    5:8:void <init>(com.android.tools.r8.kotlin.Kotlin):126:129 -> <init>
    9:13:void <init>(com.android.tools.r8.kotlin.Kotlin):128:132 -> <init>
    14:14:void <init>(com.android.tools.r8.kotlin.Kotlin):131:131 -> <init>
com.android.tools.r8.kotlin.Kotlin$Metadata -> com.android.tools.r8.x.a$d:
    com.android.tools.r8.graph.DexString kind -> b
    com.android.tools.r8.graph.DexString metadataVersion -> c
    com.android.tools.r8.graph.DexString bytecodeVersion -> d
    com.android.tools.r8.kotlin.Kotlin this$0 -> j
    com.android.tools.r8.graph.DexString data1 -> e
    com.android.tools.r8.graph.DexString data2 -> f
    com.android.tools.r8.graph.DexString extraString -> g
    com.android.tools.r8.graph.DexString packageName -> h
    com.android.tools.r8.graph.DexString extraInt -> i
    com.android.tools.r8.graph.DexType kotlinMetadataType -> a
    1:10:void <init>(com.android.tools.r8.kotlin.Kotlin):111:120 -> <init>
com.android.tools.r8.kotlin.KotlinClass -> com.android.tools.r8.x.b:
    boolean $assertionsDisabled -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmClass kmClass -> e
    1:1:void <clinit>():25:25 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class,com.android.tools.r8.graph.DexClass):37:37 -> <init>
    com.android.tools.r8.kotlin.KotlinClass asClass() -> a
    1:3:com.android.tools.r8.kotlin.KotlinClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.graph.DexClass):31:33 -> a
    4:37:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):49:82 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():87:89 -> e
    boolean isClass() -> f
    1:3:void processMetadata():42:44 -> j
com.android.tools.r8.kotlin.KotlinClassFacade -> com.android.tools.r8.x.c:
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade,com.android.tools.r8.graph.DexClass):25:25 -> <init>
    1:4:com.android.tools.r8.kotlin.KotlinClassFacade fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.graph.DexClass):18:21 -> a
    5:6:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):38:39 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():45:45 -> e
    1:2:void processMetadata():30:31 -> j
com.android.tools.r8.kotlin.KotlinClassMetadataReader -> com.android.tools.r8.x.e:
    1:15:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):28:42 -> a
    16:16:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):40:40 -> a
    17:19:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):36:38 -> a
    20:20:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):36:36 -> a
    21:46:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):50:75 -> a
    21:46:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):81 -> a
    47:388:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0:341 -> a
    47:388:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
    47:388:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):76 -> a
    47:388:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):81 -> a
    389:402:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):339:352 -> a
    389:402:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
    389:402:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):76 -> a
    389:402:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):81 -> a
    403:403:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):351:351 -> a
    403:403:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
    403:403:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):76 -> a
    403:403:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):81 -> a
    404:404:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):350:350 -> a
    404:404:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
    404:404:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):76 -> a
    404:404:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):81 -> a
    405:405:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):349:349 -> a
    405:405:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
    405:405:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):76 -> a
    405:405:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):81 -> a
    406:406:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):348:348 -> a
    406:406:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
    406:406:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):76 -> a
    406:406:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):81 -> a
    407:412:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):347:352 -> a
    407:412:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
    407:412:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):76 -> a
    407:412:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):81 -> a
    413:427:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):83:97 -> a
    428:428:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):357:357 -> a
    428:428:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
    428:428:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):76 -> a
    428:428:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):81 -> a
    429:429:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):355:355 -> a
    429:429:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0 -> a
    429:429:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):76 -> a
    429:429:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):81 -> a
    430:430:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata toKotlinClassMetadata(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexEncodedAnnotation):57:57 -> a
    430:430:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedAnnotation):81 -> a
    431:438:int[] getUnboxedIntArray(com.android.tools.r8.graph.DexValue,java.lang.String):102:109 -> a
    439:439:int[] getUnboxedIntArray(com.android.tools.r8.graph.DexValue,java.lang.String):103:103 -> a
    1:4:java.lang.String getUnboxedString(com.android.tools.r8.graph.DexValue,java.lang.String):128:131 -> b
    5:5:java.lang.String getUnboxedString(com.android.tools.r8.graph.DexValue,java.lang.String):129:129 -> b
    1:8:java.lang.String[] getUnboxedStringArray(com.android.tools.r8.graph.DexValue,java.lang.String):115:122 -> c
    9:9:java.lang.String[] getUnboxedStringArray(com.android.tools.r8.graph.DexValue,java.lang.String):116:116 -> c
com.android.tools.r8.kotlin.KotlinClassMetadataReader$MetadataError -> com.android.tools.r8.x.d:
    1:1:void <init>(java.lang.String):136:136 -> <init>
com.android.tools.r8.kotlin.KotlinClassPart -> com.android.tools.r8.x.f:
    boolean $assertionsDisabled -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage kmPackage -> e
    1:1:void <clinit>():15:15 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart,com.android.tools.r8.graph.DexClass):28:28 -> <init>
    1:4:com.android.tools.r8.kotlin.KotlinClassPart fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.graph.DexClass):21:24 -> a
    5:8:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):40:43 -> a
    com.android.tools.r8.kotlin.KotlinClassPart asClassPart() -> b
    1:4:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():48:51 -> e
    5:5:java.lang.String com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart.getFacadeClassName():271:271 -> e
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():51 -> e
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():51:51 -> e
    boolean isClassPart() -> g
    1:3:void processMetadata():33:35 -> j
com.android.tools.r8.kotlin.KotlinFile -> com.android.tools.r8.x.g:
    boolean $assertionsDisabled -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackage kmPackage -> e
    1:1:void <clinit>():15:15 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade,com.android.tools.r8.graph.DexClass):28:28 -> <init>
    1:4:com.android.tools.r8.kotlin.KotlinFile fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.graph.DexClass):21:24 -> a
    5:8:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):40:43 -> a
    com.android.tools.r8.kotlin.KotlinFile asFile() -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():48:50 -> e
    boolean isFile() -> h
    1:3:void processMetadata():33:35 -> j
com.android.tools.r8.kotlin.KotlinInfo -> com.android.tools.r8.x.h:
    com.android.tools.r8.graph.DexClass clazz -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata metadata -> a
    boolean isProcessed -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():22:22 -> <clinit>
    1:5:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.graph.DexClass):27:31 -> <init>
    com.android.tools.r8.kotlin.KotlinClass asClass() -> a
    void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens) -> a
    1:29:void rewriteDeclarationContainer(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):106:134 -> a
    com.android.tools.r8.kotlin.KotlinClassPart asClassPart() -> b
    com.android.tools.r8.kotlin.KotlinFile asFile() -> c
    com.android.tools.r8.kotlin.KotlinSyntheticClass asSyntheticClass() -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader() -> e
    boolean isClass() -> f
    boolean isClassPart() -> g
    boolean isFile() -> h
    boolean isSyntheticClass() -> i
    void processMetadata() -> j
    1:2:java.lang.String toString():96:97 -> toString
com.android.tools.r8.kotlin.KotlinMemberInfo -> com.android.tools.r8.x.i:
    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind memberKind -> a
    com.android.tools.r8.kotlin.KotlinMemberInfo NO_KOTLIN_MEMBER_INFO -> b
    1:1:void <clinit>():24:24 -> <clinit>
    1:2:void <init>(com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind,int):35:36 -> <init>
    1:1:com.android.tools.r8.kotlin.KotlinMemberInfo getNoKotlinMemberInfo():27:27 -> a
    2:2:boolean com.android.tools.r8.kotlin.KotlinInfo.hasDeclarations():91:91 -> a
    2:2:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.kotlin.KotlinInfo):86 -> a
    3:10:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.kotlin.KotlinInfo):89:96 -> a
    11:37:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer):102:128 -> a
    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils.toJvmFieldSignature(com.android.tools.r8.graph.DexField):28:28 -> a
    38:38:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer):128 -> a
    39:43:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer):128:132 -> a
    44:58:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer):131:145 -> a
    59:63:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer):144:148 -> a
    64:71:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer):147:154 -> a
    72:76:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer):153:157 -> a
    77:84:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer):156:163 -> a
    85:89:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer):162:166 -> a
    90:90:void markKotlinMemberInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainer):165:165 -> a
    91:93:void lambda$markKotlinMemberInfo$0(java.util.Map,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction):108:110 -> a
    94:102:void lambda$markKotlinMemberInfo$1(java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty):114:122 -> a
com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind -> com.android.tools.r8.x.i$a:
    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind EXTENSION_PROPERTY_SETTER -> i
    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind EXTENSION_PROPERTY_GETTER -> h
    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind PROPERTY_ANNOTATIONS -> g
    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind PROPERTY_SETTER -> f
    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind EXTENSION_PROPERTY_ANNOTATIONS -> j
    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind NONE -> a
    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind PROPERTY_GETTER -> e
    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind PROPERTY_BACKING_FIELD -> d
    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind EXTENSION_FUNCTION -> c
    com.android.tools.r8.kotlin.KotlinMemberInfo$MemberKind FUNCTION -> b
    1:14:void <clinit>():41:54 -> <clinit>
    1:1:void <init>(java.lang.String,int):40:40 -> <init>
    1:1:boolean isExtensionProperty():79:79 -> a
com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils -> com.android.tools.r8.x.p:
    1:8:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature toJvmMethodSignature(com.android.tools.r8.graph.DexMethod):32:39 -> a
com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor -> com.android.tools.r8.x.l:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature signature -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction):72:72 -> <init>
    2:5:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction):70:73 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature access$100(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor):68:68 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature access$102(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):68:68 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature signature():91:91 -> a
com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor$1 -> com.android.tools.r8.x.k:
    com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor this$0 -> b
    1:1:void <init>(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor):73:73 -> <init>
    1:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):76:79 -> a
com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor$1$1 -> com.android.tools.r8.x.j:
    com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor$1 this$1 -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():79:79 -> <clinit>
    1:1:void <init>(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmFunctionProcessor$1):79:79 -> <init>
    1:2:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):82:83 -> a
com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor -> com.android.tools.r8.x.o:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature fieldSignature -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature getterSignature -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature setterSignature -> c
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty):102:102 -> <init>
    2:9:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty):96:103 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature access$200(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor):95:95 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature access$202(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature):95:95 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature access$302(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):95:95 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature fieldSignature():129:129 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature access$300(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor):95:95 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature access$402(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):95:95 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature getterSignature():133:133 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature access$400(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor):95:95 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature setterSignature():137:137 -> c
com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor$1 -> com.android.tools.r8.x.n:
    com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor this$0 -> b
    1:1:void <init>(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor):103:103 -> <init>
    1:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):106:109 -> a
com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor$1$1 -> com.android.tools.r8.x.m:
    com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor$1 this$1 -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():109:109 -> <clinit>
    1:1:void <init>(com.android.tools.r8.kotlin.KotlinMetadataJvmExtensionUtils$KmPropertyProcessor$1):109:109 -> <init>
    1:6:void visit(int,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):116:121 -> a
com.android.tools.r8.kotlin.KotlinMetadataRewriter -> com.android.tools.r8.x.q:
    com.android.tools.r8.graph.DexItemFactory factory -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.naming.NamingLens lens -> b
    boolean $assertionsDisabled -> e
    com.android.tools.r8.kotlin.Kotlin kotlin -> d
    1:1:void <clinit>():26:26 -> <clinit>
    1:5:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):33:37 -> <init>
    com.android.tools.r8.graph.DexAnnotation lambda$run$1(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexAnnotation) -> a
    1:5:void removeKotlinMetadataFromRenamedClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):50:54 -> a
    6:7:boolean isNotKotlinMetadata(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexAnnotation):59:60 -> a
    6:7:boolean lambda$removeKotlinMetadataFromRenamedClass$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexAnnotation):50 -> a
    8:9:void run(java.util.concurrent.ExecutorService):64:65 -> a
    10:10:void run(java.util.concurrent.ExecutorService):64:64 -> a
    11:29:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):67:85 -> a
    30:32:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):94:96 -> a
    30:32:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):85 -> a
    33:37:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):95:99 -> a
    33:37:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):85 -> a
    38:43:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):97:102 -> a
    38:43:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):85 -> a
    44:48:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):100:104 -> a
    44:48:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):85 -> a
    49:52:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):103:106 -> a
    49:52:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):85 -> a
    53:58:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):105:110 -> a
    53:58:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):85 -> a
    59:66:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):107:114 -> a
    59:66:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):85 -> a
    67:73:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):111:117 -> a
    67:73:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):85 -> a
    74:80:com.android.tools.r8.graph.DexAnnotation createKotlinMetadataAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):115:121 -> a
    74:80:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):85 -> a
    81:81:void lambda$run$2(com.android.tools.r8.graph.DexProgramClass):86:86 -> a
    82:86:com.android.tools.r8.graph.DexValue$DexValueArray createIntArray(int[]):125:129 -> a
    87:91:com.android.tools.r8.graph.DexValue$DexValueArray createStringArray(java.lang.String[]):133:137 -> a
    92:92:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    92:92:void removeKotlinMetadataFromRenamedClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):41 -> a
    93:93:void removeKotlinMetadataFromRenamedClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):45:45 -> a
com.android.tools.r8.kotlin.KotlinMetadataSynthesizer -> com.android.tools.r8.x.r:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():27:27 -> <clinit>
    1:1:boolean isExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction):30:30 -> a
    2:2:boolean isExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.KmProperty):34:34 -> a
    3:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmType toKmType(java.lang.String):38:39 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmType toRenamedKmType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):46:47 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmType toKmType(java.lang.String):38:39 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.KmType toRenamedKmType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):47 -> a
    9:21:com.android.tools.r8.jetbrains.kotlinx.metadata.KmType toRenamedKmType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):50:62 -> a
    22:22:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    22:22:com.android.tools.r8.jetbrains.kotlinx.metadata.KmType toRenamedKmType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):64 -> a
    23:28:com.android.tools.r8.jetbrains.kotlinx.metadata.KmType toRenamedKmType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):65:70 -> a
    29:34:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor toRenamedKmConstructor(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):79:84 -> a
    35:35:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmExtensionsKt.setSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):0:0 -> a
    35:35:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor toRenamedKmConstructor(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):84 -> a
    36:61:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmConstructorExtension com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmExtensionNodesKt.getJvm(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor):0:25 -> a
    36:61:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmExtensionsKt.setSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):145 -> a
    36:61:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor toRenamedKmConstructor(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):84 -> a
    62:62:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmExtensionsKt.setSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):145:145 -> a
    62:62:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor toRenamedKmConstructor(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):84 -> a
    63:64:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructor toRenamedKmConstructor(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):85:86 -> a
    65:75:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction toRenamedKmFunctionHelper(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens,boolean):113:123 -> a
    76:76:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmExtensionsKt.setSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):0:0 -> a
    76:76:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction toRenamedKmFunctionHelper(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens,boolean):123 -> a
    77:96:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmFunctionExtension com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmExtensionNodesKt.getJvm(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction):0:19 -> a
    77:96:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmExtensionsKt.setSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):71 -> a
    77:96:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction toRenamedKmFunctionHelper(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens,boolean):123 -> a
    97:97:void com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmExtensionsKt.setSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):71:71 -> a
    97:97:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction toRenamedKmFunctionHelper(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens,boolean):123 -> a
    98:98:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction toRenamedKmFunctionHelper(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens,boolean):124:124 -> a
    99:411:void com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction.setReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.KmType):0:312 -> a
    99:411:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction toRenamedKmFunctionHelper(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens,boolean):128 -> a
    412:422:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction toRenamedKmFunctionHelper(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens,boolean):130:140 -> a
    423:434:boolean populateKmValueParameters(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens,boolean):152:163 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction toRenamedKmFunction(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):96:96 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunction toRenamedKmFunctionAsExtension(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):103:103 -> c
com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser -> com.android.tools.r8.x.s:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():22:22 -> <clinit>
    1:21:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):113:133 -> a
    22:22:boolean com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$BufferedStringReader.readExpectedLine(java.lang.String):53:53 -> a
    22:22:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):135 -> a
    23:23:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):169:169 -> a
    24:55:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):138:169 -> a
    56:76:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):143:163 -> a
    77:77:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder.build():273:273 -> a
    77:77:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):168 -> a
    78:78:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):169:169 -> a
    79:79:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):164:164 -> a
    80:80:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):152:152 -> a
    81:118:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parse(java.lang.String):132:169 -> a
    119:119:void lambda$parse$0(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):148:148 -> a
    120:134:void addFileToBuilder(java.lang.String,java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):178:192 -> a
    120:134:void lambda$parse$0(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):148 -> a
    135:135:int asInteger(java.lang.String):205:205 -> a
    135:135:void addFileToBuilder(java.lang.String,java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):192 -> a
    135:135:void lambda$parse$0(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):148 -> a
    136:139:void addFileToBuilder(java.lang.String,java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):193:196 -> a
    136:139:void lambda$parse$0(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):148 -> a
    140:140:int asInteger(java.lang.String):207:207 -> a
    140:140:void addFileToBuilder(java.lang.String,java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):192 -> a
    140:140:void lambda$parse$0(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):148 -> a
    141:141:void addFileToBuilder(java.lang.String,java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):189:189 -> a
    141:141:void lambda$parse$0(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):148 -> a
    142:142:void addFileToBuilder(java.lang.String,java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):185:185 -> a
    142:142:void lambda$parse$0(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):148 -> a
    143:143:void addFileToBuilder(java.lang.String,java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):180:180 -> a
    143:143:void lambda$parse$0(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):148 -> a
    1:1:void lambda$parse$1(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):160:160 -> b
    2:26:void addDebugEntryToBuilder(java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):220:244 -> b
    2:26:void lambda$parse$1(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):160 -> b
    27:34:void addDebugEntryToBuilder(java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder):239:246 -> b
    27:34:void lambda$parse$1(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder,java.util.List):160 -> b
com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$1 -> com.android.tools.r8.x.s$a:
com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$BufferedStringReader -> com.android.tools.r8.x.s$b:
    java.io.BufferedReader reader -> a
    java.lang.String readLine -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():38:38 -> <clinit>
    1:2:void <init>(java.lang.String):44:45 -> <init>
    1:1:boolean readExpectedLine(java.lang.String):53:53 -> a
    1:1:void readExpectedLineOrThrow(java.lang.String):58 -> a
    2:2:void readExpectedLineOrThrow(java.lang.String):59:59 -> a
    3:3:boolean isEOF():65:65 -> a
    4:22:void readUntil(java.lang.String,int,com.android.tools.r8.utils.ThrowingConsumer):83:101 -> a
    1:1:java.lang.String readNextLine():49:49 -> b
    2:5:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$BufferedStringReader readUntil(java.lang.String):69:72 -> b
    1:1:void close():108:108 -> close
com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$KotlinSourceDebugExtensionParserException -> com.android.tools.r8.x.s$c:
    1:1:void <init>(java.lang.String):34:34 -> <init>
com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Position -> com.android.tools.r8.x.s$d:
    com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Source source -> a
    com.android.tools.r8.naming.Range range -> b
    1:3:void <init>(com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Source,com.android.tools.r8.naming.Range):304:306 -> <init>
    1:1:com.android.tools.r8.naming.Range getRange():314:314 -> a
    1:1:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Source getSource():310:310 -> b
    1:10:java.lang.String toString():319:328 -> toString
com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result -> com.android.tools.r8.x.s$e:
    com.android.tools.r8.utils.SegmentTree segmentTree -> a
    1:2:void <init>(com.android.tools.r8.utils.SegmentTree):254:255 -> <init>
    1:1:java.util.Map$Entry lookup(int):259:259 -> a
    2:2:int size():263:263 -> a
com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$ResultBuilder -> com.android.tools.r8.x.s$f:
    java.util.Map files -> b
    com.android.tools.r8.utils.SegmentTree segmentTree -> a
    1:4:void <init>():267:270 -> <init>
com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Source -> com.android.tools.r8.x.s$g:
    java.lang.String fileName -> a
    java.lang.String path -> b
    1:1:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$1):277:277 -> <init>
    2:4:void <init>(java.lang.String,java.lang.String):281:283 -> <init>
    1:1:java.lang.String getFileName():287:287 -> a
    1:1:java.lang.String getPath():291:291 -> b
    1:1:java.lang.String toString():296:296 -> toString
com.android.tools.r8.kotlin.KotlinSyntheticClass -> com.android.tools.r8.x.u:
    com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour flavour -> e
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():14:14 -> <clinit>
    1:2:void <init>(com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass,com.android.tools.r8.graph.DexClass):39:40 -> <init>
    1:2:com.android.tools.r8.kotlin.KotlinSyntheticClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):25:26 -> a
    3:3:boolean isKotlinStyleLambda(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):100:100 -> a
    3:3:com.android.tools.r8.kotlin.KotlinSyntheticClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):28 -> a
    4:4:com.android.tools.r8.kotlin.KotlinSyntheticClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):29:29 -> a
    5:7:boolean isJavaStyleLambda(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):113:115 -> a
    5:7:com.android.tools.r8.kotlin.KotlinSyntheticClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):30 -> a
    8:10:com.android.tools.r8.kotlin.KotlinSyntheticClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):31:33 -> a
    11:12:void rewrite(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):55:56 -> a
    com.android.tools.r8.kotlin.KotlinSyntheticClass asSyntheticClass() -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader createHeader():62:62 -> e
    boolean isSyntheticClass() -> i
    1:3:void processMetadata():45:47 -> j
    1:1:boolean isJavaStyleLambda():74:74 -> k
    1:1:boolean isKotlinStyleLambda():70:70 -> l
com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour -> com.android.tools.r8.x.t:
    com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour Unclassified -> c
    com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour JavaStyleLambda -> b
    com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour KotlinStyleLambda -> a
    1:3:void <clinit>():16:18 -> <clinit>
    1:1:void <init>(java.lang.String,int):15:15 -> <init>
com.android.tools.r8.logging.Log -> com.android.tools.r8.y.a:
    java.util.Set CLASS_FILTER -> b
    boolean ENABLED -> a
    1:1:void <clinit>():12:12 -> <clinit>
    2:11:java.util.Set getClassFilter():57:66 -> <clinit>
    2:11:void <clinit>():19 -> <clinit>
    12:12:void <clinit>():19:19 -> <clinit>
    1:2:void debug(java.lang.Class,java.lang.String,java.lang.Object[]):34:35 -> a
    3:3:boolean isLoggingEnabledFor(java.lang.Class):46:46 -> a
    4:7:void log(java.lang.String,java.lang.Class,java.lang.String,java.lang.Object[]):50:53 -> a
    1:2:void info(java.lang.Class,java.lang.String,java.lang.Object[]):28:29 -> b
    1:2:void warn(java.lang.Class,java.lang.String,java.lang.Object[]):40:41 -> c
com.android.tools.r8.naming.ApplyMappingError -> com.android.tools.r8.naming.a:
    1:1:void <init>(java.lang.String,com.android.tools.r8.position.Position):26:26 -> <init>
    1:2:com.android.tools.r8.naming.ApplyMappingError mapToExistingClass(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):31:32 -> a
    1:2:com.android.tools.r8.naming.ApplyMappingError mapToExistingMember(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):38:39 -> b
com.android.tools.r8.naming.ClassNameMapper -> com.android.tools.r8.naming.b:
    java.util.Map signatureMap -> c
    com.android.tools.r8.utils.BiMapContainer nameMapping -> b
    com.android.tools.r8.com.google.common.collect.ImmutableMap classNameMappings -> a
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():37:37 -> <clinit>
    1:1:void <init>(java.util.Map,com.android.tools.r8.naming.ClassNameMapper$1):37:37 -> <init>
    2:2:void <init>(java.util.Map):108:108 -> <init>
    3:10:void <init>(java.util.Map):106:113 -> <init>
    1:1:com.android.tools.r8.naming.ClassNameMapper$Builder builder():67:67 -> a
    2:2:com.android.tools.r8.naming.ClassNameMapper mapperFromFile(java.nio.file.Path):76:76 -> a
    3:9:com.android.tools.r8.naming.ClassNameMapper mapperFromFile(java.nio.file.Path,com.android.tools.r8.naming.ClassNameMapper$MissingFileAction):81:87 -> a
    10:10:com.android.tools.r8.naming.ClassNameMapper mapperFromInputStream(java.io.InputStream):71:71 -> a
    10:10:com.android.tools.r8.naming.ClassNameMapper mapperFromFile(java.nio.file.Path,com.android.tools.r8.naming.ClassNameMapper$MissingFileAction):87 -> a
    11:15:com.android.tools.r8.naming.ClassNameMapper mapperFromBufferedReader(java.io.BufferedReader):96:100 -> a
    16:20:com.android.tools.r8.naming.ClassNameMapper mapperFromBufferedReader(java.io.BufferedReader):96:100 -> a
    21:24:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):126:129 -> a
    25:25:java.lang.String deobfuscateType(java.lang.String):158:158 -> a
    25:25:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):129 -> a
    26:28:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):129:131 -> a
    29:29:java.lang.String deobfuscateType(java.lang.String):158:158 -> a
    29:29:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):131 -> a
    30:30:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):133:133 -> a
    31:35:com.android.tools.r8.naming.MemberNaming$Signature canonicalizeSignature(com.android.tools.r8.naming.MemberNaming$Signature):117:121 -> a
    31:35:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):135 -> a
    36:36:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):135:135 -> a
    37:37:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):139:139 -> a
    38:38:java.lang.String deobfuscateType(java.lang.String):158:158 -> a
    38:38:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):139 -> a
    39:39:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):140:140 -> a
    40:44:com.android.tools.r8.naming.MemberNaming$Signature canonicalizeSignature(com.android.tools.r8.naming.MemberNaming$Signature):117:121 -> a
    40:44:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):140 -> a
    45:45:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):140:140 -> a
    46:50:java.lang.String deobfuscateClassName(java.lang.String):150:154 -> a
    51:55:void write(java.io.Writer):180:184 -> a
    56:56:java.lang.String lambda$write$0(com.android.tools.r8.naming.ClassNamingForNameMapper):182:182 -> a
    57:64:java.lang.String originalNameOf(com.android.tools.r8.graph.IndexedDexItem):223:230 -> a
    65:74:java.lang.String lookupName(com.android.tools.r8.naming.MemberNaming$Signature,com.android.tools.r8.graph.DexType):235:244 -> a
    75:75:java.lang.String originalNameOf(com.android.tools.r8.graph.DexType):276:276 -> a
    76:76:java.lang.String deobfuscateType(java.lang.String):158:158 -> a
    76:76:java.lang.String originalNameOf(com.android.tools.r8.graph.DexType):276 -> a
    1:1:com.android.tools.r8.naming.ClassNamingForNameMapper getClassNaming(java.lang.String):174:174 -> b
    2:2:com.android.tools.r8.utils.BiMapContainer getObfuscatedToOriginalMapping():200:200 -> b
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder com.android.tools.r8.com.google.common.collect.ImmutableBiMap.builder():122:122 -> b
    3:3:com.android.tools.r8.utils.BiMapContainer getObfuscatedToOriginalMapping():201 -> b
    4:10:com.android.tools.r8.utils.BiMapContainer getObfuscatedToOriginalMapping():202:208 -> b
    11:21:com.android.tools.r8.naming.MemberNaming$MethodSignature originalSignatureOf(com.android.tools.r8.graph.DexMethod):248:258 -> b
    22:32:com.android.tools.r8.naming.MemberNaming$FieldSignature originalSignatureOf(com.android.tools.r8.graph.DexField):262:272 -> b
    1:1:com.android.tools.r8.naming.ClassNameMapper mapperFromString(java.lang.String):91:91 -> c
    2:3:java.io.BufferedReader com.android.tools.r8.com.google.common.io.CharSource.openBufferedStream():113:114 -> c
    2:3:com.android.tools.r8.naming.ClassNameMapper mapperFromString(java.lang.String):91 -> c
    4:4:com.android.tools.r8.naming.ClassNameMapper mapperFromString(java.lang.String):91:91 -> c
    1:2:boolean equals(java.lang.Object):213:214 -> equals
    1:1:int hashCode():219:219 -> hashCode
    1:5:java.lang.String toString():191:195 -> toString
com.android.tools.r8.naming.ClassNameMapper$1 -> com.android.tools.r8.naming.b$a:
com.android.tools.r8.naming.ClassNameMapper$Builder -> com.android.tools.r8.naming.b$b:
    com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder mapBuilder -> a
    1:1:void <init>(com.android.tools.r8.naming.ClassNameMapper$1):44:44 -> <init>
    2:3:void <init>():47:48 -> <init>
    1:1:com.android.tools.r8.naming.ClassNaming$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):44:44 -> a
    2:2:com.android.tools.r8.naming.ClassNameMapper build():62:62 -> a
    1:2:com.android.tools.r8.naming.ClassNamingForNameMapper$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):55:56 -> b
com.android.tools.r8.naming.ClassNameMapper$MissingFileAction -> com.android.tools.r8.naming.b$c:
    com.android.tools.r8.naming.ClassNameMapper$MissingFileAction MISSING_FILE_IS_ERROR -> b
    com.android.tools.r8.naming.ClassNameMapper$MissingFileAction MISSING_FILE_IS_EMPTY_MAP -> a
    1:2:void <clinit>():40:41 -> <clinit>
    1:1:void <init>(java.lang.String,int):39:39 -> <init>
com.android.tools.r8.naming.ClassNameMinifier -> com.android.tools.r8.naming.c:
    boolean $assertionsDisabled -> n
    com.android.tools.r8.naming.ClassNameMinifier$Namespace topLevelState -> m
    com.android.tools.r8.graph.AppView appView -> a
    boolean keepInnerClassStructure -> l
    java.lang.Iterable classes -> d
    java.util.Set noObfuscationPrefixes -> g
    com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy classNamingStrategy -> b
    java.util.Set usedPackagePrefixes -> h
    java.util.Set usedTypeNames -> i
    com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode packageObfuscationMode -> e
    com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy packageNamingStrategy -> c
    boolean isAccessModificationAllowed -> f
    java.util.Map renaming -> j
    java.util.Map states -> k
    1:1:void <clinit>():41:41 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy,com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy,java.lang.Iterable):63:63 -> <init>
    2:33:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy,com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy,java.lang.Iterable):49:80 -> <init>
    1:1:java.lang.Iterable access$000(com.android.tools.r8.naming.ClassNameMinifier):41:41 -> a
    2:27:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming computeRenaming(com.android.tools.r8.utils.Timing,java.util.Map):100:125 -> a
    28:60:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming computeRenaming(com.android.tools.r8.utils.Timing,java.util.Map):121:153 -> a
    61:69:java.util.Map getPackageRenaming():157:165 -> a
    61:69:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming computeRenaming(com.android.tools.r8.utils.Timing,java.util.Map):153 -> a
    70:70:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming computeRenaming(com.android.tools.r8.utils.Timing,java.util.Map):153:153 -> a
    71:72:void renameDanglingTypes(com.android.tools.r8.graph.DexClass):169:170 -> a
    73:73:void renameDanglingTypesInField(com.android.tools.r8.graph.DexEncodedField):174:174 -> a
    74:77:void renameDanglingTypesInMethod(com.android.tools.r8.graph.DexEncodedMethod):178:181 -> a
    78:80:void registerClassAsUsed(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):197:199 -> a
    81:87:void registerPackagePrefixesAsUsed(java.lang.String):220:226 -> a
    81:87:void registerClassAsUsed(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):198 -> a
    88:96:void registerClassAsUsed(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):200:208 -> a
    97:103:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):249:255 -> a
    104:104:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    104:104:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):255 -> a
    105:113:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):256:264 -> a
    114:131:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForOuterClass(com.android.tools.r8.graph.DexType,java.lang.String):329:346 -> a
    114:131:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):266 -> a
    132:134:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):270:272 -> a
    135:139:java.lang.String getParentPackagePrefix(java.lang.String):452:456 -> a
    1:1:java.util.Set access$200(com.android.tools.r8.naming.ClassNameMinifier):41:41 -> b
    2:2:com.android.tools.r8.graph.DexType getOutClassForType(com.android.tools.r8.graph.DexType):231:231 -> b
    3:3:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    3:3:com.android.tools.r8.graph.DexType getOutClassForType(com.android.tools.r8.graph.DexType):231 -> b
    4:8:com.android.tools.r8.graph.DexType getOutClassForType(com.android.tools.r8.graph.DexType):240:244 -> b
    9:26:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForPackagePrefix(java.lang.String):306:323 -> b
    1:1:com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy access$300(com.android.tools.r8.naming.ClassNameMinifier):41:41 -> c
    2:22:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForClass(com.android.tools.r8.graph.DexType):276:296 -> c
    23:23:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForClass(com.android.tools.r8.graph.DexType):292:292 -> c
    24:24:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForClass(com.android.tools.r8.graph.DexType):288:288 -> c
    25:25:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForClass(com.android.tools.r8.graph.DexType):282:282 -> c
    26:26:com.android.tools.r8.naming.ClassNameMinifier$Namespace lambda$getStateForClass$0(java.lang.String):282:282 -> c
    1:1:java.util.Set access$400(com.android.tools.r8.naming.ClassNameMinifier):41:41 -> d
    2:3:com.android.tools.r8.naming.ClassNameMinifier$Namespace lambda$getStateForClass$1(java.lang.String):297:298 -> d
    4:8:void renameArrayTypeIfNeeded(com.android.tools.r8.graph.DexType):352:356 -> d
    9:9:int com.android.tools.r8.graph.DexString.numberOfLeadingSquareBrackets():108:108 -> d
    9:9:void renameArrayTypeIfNeeded(com.android.tools.r8.graph.DexType):356 -> d
    10:16:void renameArrayTypeIfNeeded(com.android.tools.r8.graph.DexType):357:363 -> d
    1:1:com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy access$500(com.android.tools.r8.naming.ClassNameMinifier):41:41 -> e
    2:6:void renameDanglingType(com.android.tools.r8.graph.DexType):186:190 -> e
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> e
    7:7:void renameDanglingType(com.android.tools.r8.graph.DexType):190 -> e
    8:10:void renameDanglingType(com.android.tools.r8.graph.DexType):190:192 -> e
    11:11:com.android.tools.r8.naming.ClassNameMinifier$Namespace lambda$getStateForPackagePrefix$2(java.lang.String):313:313 -> e
com.android.tools.r8.naming.ClassNameMinifier$1 -> com.android.tools.r8.naming.c$a:
    com.android.tools.r8.naming.ClassNameMinifier this$0 -> a
    1:1:void <init>(com.android.tools.r8.naming.ClassNameMinifier):140:140 -> <init>
    1:2:java.util.Iterator iterator():143:144 -> iterator
    3:3:java.util.Iterator iterator():143:143 -> iterator
com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy -> com.android.tools.r8.naming.c$b:
    boolean isRenamedByApplyMapping(com.android.tools.r8.graph.DexType) -> a
    com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexType,char[],com.android.tools.r8.naming.InternalNamingState,java.util.function.Predicate) -> a
    com.android.tools.r8.graph.DexString reservedDescriptor(com.android.tools.r8.graph.DexType) -> b
com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming -> com.android.tools.r8.naming.c$c:
    java.util.Map packageRenaming -> a
    java.util.Map classRenaming -> b
    1:1:void <init>(java.util.Map,java.util.Map,com.android.tools.r8.naming.ClassNameMinifier$1):83:83 -> <init>
    2:4:void <init>(java.util.Map,java.util.Map):88:90 -> <init>
com.android.tools.r8.naming.ClassNameMinifier$Namespace -> com.android.tools.r8.naming.c$d:
    char[] packagePrefix -> b
    com.android.tools.r8.naming.ClassNameMinifier this$0 -> e
    boolean $assertionsDisabled -> f
    java.lang.String packageName -> a
    int nameIndex -> d
    int dictionaryIndex -> c
    1:1:void <clinit>():368:368 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.ClassNameMinifier,java.lang.String):376:376 -> <init>
    2:2:void <init>(com.android.tools.r8.naming.ClassNameMinifier,java.lang.String,java.lang.String):379:379 -> <init>
    3:15:void <init>(com.android.tools.r8.naming.ClassNameMinifier,java.lang.String,java.lang.String):372:384 -> <init>
    1:4:com.android.tools.r8.graph.DexString nextTypeName(com.android.tools.r8.graph.DexType):392:395 -> a
    5:5:int incrementDictionaryIndex():413:413 -> a
    6:7:int incrementNameIndex(boolean):418:419 -> a
    1:1:int getDictionaryIndex():408:408 -> b
    1:1:java.lang.String getPackageName():388:388 -> c
    1:1:java.lang.String nextPackagePrefix():400:400 -> d
    2:3:java.lang.String com.android.tools.r8.naming.Minifier$MinificationPackageNamingStrategy.next(char[],com.android.tools.r8.naming.InternalNamingState,java.util.function.Predicate):209:210 -> d
    2:3:java.lang.String nextPackagePrefix():400 -> d
    4:5:java.lang.String nextPackagePrefix():401:402 -> d
com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy -> com.android.tools.r8.naming.c$e:
com.android.tools.r8.naming.ClassNaming -> com.android.tools.r8.naming.d:
    com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature) -> a
com.android.tools.r8.naming.ClassNaming$Builder -> com.android.tools.r8.naming.d$a:
    1:1:void <init>():16:16 -> <init>
    void addMappedRange(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String) -> a
    com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming) -> a
com.android.tools.r8.naming.ClassNamingForMapApplier -> com.android.tools.r8.naming.f:
    com.android.tools.r8.com.google.common.collect.ImmutableMap qualifiedMethodMembers -> d
    com.android.tools.r8.position.Position position -> c
    com.android.tools.r8.com.google.common.collect.ImmutableMap fieldMembers -> f
    com.android.tools.r8.com.google.common.collect.ImmutableMap methodMembers -> e
    boolean $assertionsDisabled -> g
    java.lang.String originalName -> a
    java.lang.String renamedName -> b
    1:1:void <clinit>():35:35 -> <clinit>
    1:1:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.naming.ClassNamingForMapApplier$1):35:35 -> <init>
    2:8:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,java.util.Map,java.util.Map,java.util.Map):122:128 -> <init>
    1:1:com.android.tools.r8.naming.ClassNamingForMapApplier$Builder builder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.utils.Reporter):94:94 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMap getQualifiedMethodMembers():132:132 -> a
    3:4:void forAllFieldNaming(com.android.tools.r8.utils.ThrowingConsumer):145:146 -> a
    3:4:void forAllMemberNaming(com.android.tools.r8.utils.ThrowingConsumer):138 -> a
    5:6:void forAllMethodNaming(com.android.tools.r8.utils.ThrowingConsumer):153:154 -> a
    5:6:void forAllMemberNaming(com.android.tools.r8.utils.ThrowingConsumer):139 -> a
    7:8:com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature):162:163 -> a
    9:9:com.android.tools.r8.naming.MemberNaming$Signature com.android.tools.r8.naming.MemberNaming.getRenamedSignature():79:79 -> a
    9:9:com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature):164 -> a
    10:17:com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature):164:171 -> a
    18:18:com.android.tools.r8.naming.MemberNaming$Signature com.android.tools.r8.naming.MemberNaming.getRenamedSignature():79:79 -> a
    18:18:com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature):172 -> a
    19:19:com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature):172:172 -> a
    1:11:boolean equals(java.lang.Object):221:231 -> equals
    1:1:int hashCode():236:236 -> hashCode
    2:2:int com.android.tools.r8.com.google.common.base.Objects.hashCode(java.lang.Object[]):76:76 -> hashCode
    2:2:int hashCode():236 -> hashCode
com.android.tools.r8.naming.ClassNamingForMapApplier$1 -> com.android.tools.r8.naming.e:
com.android.tools.r8.naming.ClassNamingForMapApplier$Builder -> com.android.tools.r8.naming.f$a:
    com.android.tools.r8.position.Position position -> c
    com.android.tools.r8.utils.Reporter reporter -> d
    java.lang.String originalName -> a
    java.util.Map qualifiedMethodMembers -> e
    java.lang.String renamedName -> b
    java.util.Map methodMembers -> f
    java.util.Map fieldMembers -> g
    1:1:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.utils.Reporter,com.android.tools.r8.naming.ClassNamingForMapApplier$1):37:37 -> <init>
    2:2:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.utils.Reporter):46:46 -> <init>
    3:11:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.utils.Reporter):42:50 -> <init>
    void addMappedRange(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String) -> a
    1:8:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):57:64 -> a
    9:9:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):63:63 -> a
    10:19:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):62:71 -> a
    20:20:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):70:70 -> a
    21:21:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):69:69 -> a
    22:22:java.util.List lambda$addMemberEntry$0(com.android.tools.r8.naming.MemberNaming$MethodSignature):60:60 -> a
    23:23:com.android.tools.r8.naming.ClassNamingForMapApplier build():79:79 -> a
com.android.tools.r8.naming.ClassNamingForNameMapper -> com.android.tools.r8.naming.g:
    com.android.tools.r8.com.google.common.collect.ImmutableMap fieldMembers -> d
    com.android.tools.r8.com.google.common.collect.ImmutableMap methodMembers -> c
    boolean $assertionsDisabled -> g
    java.lang.String originalName -> a
    java.util.Map mappedRangesByRenamedName -> e
    java.lang.String renamedName -> b
    java.util.Map mappedNamingsByName -> f
    1:1:void <clinit>():29:29 -> <clinit>
    1:1:void <init>(java.lang.String,java.lang.String,java.util.Map,java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.naming.ClassNamingForNameMapper$1):29:29 -> <init>
    2:8:void <init>(java.lang.String,java.lang.String,java.util.Map,java.util.Map,java.util.Map,java.util.Map):208:214 -> <init>
    1:1:com.android.tools.r8.naming.ClassNamingForNameMapper$Builder builder(java.lang.String,java.lang.String):182:182 -> a
    2:8:com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature):219:225 -> a
    9:17:java.util.List lookupByOriginalName(java.lang.String):250:258 -> a
    18:24:void write(java.io.Writer):288:294 -> a
    25:26:void forAllFieldNaming(com.android.tools.r8.utils.ThrowingConsumer):274:275 -> a
    25:26:void forAllMemberNaming(com.android.tools.r8.utils.ThrowingConsumer):267 -> a
    25:26:void write(java.io.Writer):294 -> a
    27:28:void forAllMethodNaming(com.android.tools.r8.utils.ThrowingConsumer):282:283 -> a
    27:28:void forAllMemberNaming(com.android.tools.r8.utils.ThrowingConsumer):268 -> a
    27:28:void write(java.io.Writer):294 -> a
    29:35:void write(java.io.Writer):303:309 -> a
    36:37:void lambda$write$0(java.io.Writer,com.android.tools.r8.naming.MemberNaming):296:297 -> a
    38:38:int lambda$write$1(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):307:307 -> a
    1:11:com.android.tools.r8.naming.MemberNaming lookupByOriginalSignature(com.android.tools.r8.naming.MemberNaming$Signature):231:241 -> b
    1:11:boolean equals(java.lang.Object):329:339 -> equals
    1:5:int hashCode():344:348 -> hashCode
    1:5:java.lang.String toString():316:320 -> toString
com.android.tools.r8.naming.ClassNamingForNameMapper$1 -> com.android.tools.r8.naming.g$a:
com.android.tools.r8.naming.ClassNamingForNameMapper$Builder -> com.android.tools.r8.naming.g$b:
    java.util.Map methodMembers -> c
    java.util.Map fieldMembers -> d
    java.lang.String originalName -> a
    java.util.Map mappedRangesByName -> e
    java.lang.String renamedName -> b
    java.util.Map mappedNamingsByName -> f
    1:1:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.naming.ClassNamingForNameMapper$1):31:31 -> <init>
    2:2:void <init>(java.lang.String,java.lang.String):39:39 -> <init>
    3:10:void <init>(java.lang.String,java.lang.String):34:41 -> <init>
    1:2:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):46:47 -> a
    3:3:com.android.tools.r8.naming.MemberNaming$Signature com.android.tools.r8.naming.MemberNaming.getRenamedSignature():79:79 -> a
    3:3:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):47 -> a
    4:6:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):47:49 -> a
    7:7:com.android.tools.r8.naming.MemberNaming$Signature com.android.tools.r8.naming.MemberNaming.getRenamedSignature():79:79 -> a
    7:7:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):49 -> a
    8:12:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):49:53 -> a
    13:22:com.android.tools.r8.naming.ClassNamingForNameMapper build():61:70 -> a
    23:25:void addMappedRange(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String):81:83 -> a
    26:26:java.util.List lambda$addMappedRange$1(java.lang.String):82:82 -> a
    1:1:java.util.List lambda$addMemberEntry$0(java.lang.String):52:52 -> b
com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange -> com.android.tools.r8.naming.g$c:
    com.android.tools.r8.naming.Range minifiedRange -> a
    int nextSequenceNumber -> f
    java.lang.Object originalRange -> c
    boolean $assertionsDisabled -> g
    int sequenceNumber -> e
    com.android.tools.r8.naming.MemberNaming$MethodSignature signature -> b
    java.lang.String renamedName -> d
    1:3:void <clinit>():370:372 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String,com.android.tools.r8.naming.ClassNamingForNameMapper$1):370:370 -> <init>
    2:2:void <init>(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String):390:390 -> <init>
    3:16:void <init>(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String):387:400 -> <init>
    1:1:int access$400(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):370:370 -> a
    2:2:int getNextSequenceNumber():375:375 -> a
    3:17:int getOriginalLineNumber(int):404:418 -> a
    1:10:boolean equals(java.lang.Object):453:462 -> equals
    1:4:int hashCode():468:471 -> hashCode
    1:10:java.lang.String toString():434:443 -> toString
com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName -> com.android.tools.r8.naming.g$d:
    java.util.List mappedRanges -> a
    1:2:void <init>(java.util.List):91:92 -> <init>
    1:1:java.util.List access$300(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName):88:88 -> a
    2:2:java.util.List allRangesForLine(int):122:122 -> a
    3:22:java.util.List allRangesForLine(int,boolean):135:154 -> a
    23:23:java.util.List getMappedRanges():158:158 -> a
    1:8:com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange firstRangeForLine(int):101:108 -> b
    1:7:boolean equals(java.lang.Object):166:172 -> equals
    1:1:int hashCode():177:177 -> hashCode
com.android.tools.r8.naming.DictionaryReader -> com.android.tools.r8.naming.h:
    java.nio.file.Path path -> b
    java.io.BufferedReader reader -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():22:22 -> <clinit>
    1:3:void <init>(java.nio.file.Path):27:29 -> <init>
    1:40:java.lang.String readName(com.android.tools.r8.utils.Reporter):33:72 -> a
    41:54:com.android.tools.r8.com.google.common.collect.ImmutableList readAllNames(java.nio.file.Path,com.android.tools.r8.utils.Reporter):84:97 -> a
    55:71:com.android.tools.r8.com.google.common.collect.ImmutableList readAllNames(java.nio.file.Path,com.android.tools.r8.utils.Reporter):86:102 -> a
    1:2:void close():77:78 -> close
com.android.tools.r8.naming.FieldNameMinifier -> com.android.tools.r8.naming.j:
    java.util.Map renaming -> b
    java.util.Map reservedNamingStates -> c
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> e
    com.android.tools.r8.naming.MemberNamingStrategy strategy -> d
    1:1:void <clinit>():30:30 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy):37:37 -> <init>
    2:8:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy):33:39 -> <init>
    1:1:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):47:47 -> a
    2:10:void reserveFieldNames():87:95 -> a
    2:10:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):48 -> a
    11:11:void com.android.tools.r8.naming.ReservedFieldNamingState.markReservedDirectly(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):30:30 -> a
    11:11:void reserveFieldNames():95 -> a
    11:11:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):48 -> a
    12:22:void reserveFieldNames():96:106 -> a
    12:22:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):48 -> a
    23:23:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    23:23:void reserveFieldNames():106 -> a
    23:23:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):48 -> a
    24:32:void reserveFieldNames():108:116 -> a
    24:32:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):48 -> a
    33:35:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):49:51 -> a
    36:37:void renameFieldsInInterfaces(java.util.Collection):168:169 -> a
    36:37:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    38:40:void renameFieldsInInterfacePartition(java.util.Set):175:177 -> a
    38:40:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    38:40:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    41:41:com.android.tools.r8.naming.ReservedFieldNamingState getReservedFieldNamingState(com.android.tools.r8.graph.DexType):77:77 -> a
    41:41:void renameFieldsInInterfacePartition(java.util.Set):177 -> a
    41:41:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    41:41:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    42:54:void renameFieldsInInterfacePartition(java.util.Set):179:191 -> a
    42:54:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    42:54:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    55:58:com.android.tools.r8.graph.DexString renameField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.naming.FieldNamingState):217:220 -> a
    55:58:void renameFieldsInInterfacePartition(java.util.Set):192 -> a
    55:58:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    55:58:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    59:59:void renameFieldsInInterfacePartition(java.util.Set):193:193 -> a
    59:59:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    59:59:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    60:60:void com.android.tools.r8.naming.ReservedFieldNamingState.markReservedDirectly(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):30:30 -> a
    60:60:void renameFieldsInInterfacePartition(java.util.Set):193 -> a
    60:60:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    60:60:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    61:69:void renameFieldsInInterfacePartition(java.util.Set):199:207 -> a
    61:69:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    61:69:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    70:70:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    70:70:void renameFieldsInInterfacePartition(java.util.Set):207 -> a
    70:70:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    70:70:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    71:72:void renameFieldsInInterfacePartition(java.util.Set):209:210 -> a
    71:72:void renameFieldsInInterfaces(java.util.Collection):170 -> a
    71:72:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):52 -> a
    73:80:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(java.util.Collection,com.android.tools.r8.utils.Timing):53:60 -> a
    81:81:com.android.tools.r8.naming.ReservedFieldNamingState getOrCreateReservedFieldNamingState(com.android.tools.r8.graph.DexType) -> a
    82:84:void propagateReservedFieldNamesUpwards():120:122 -> a
    85:85:void propagateReservedFieldNamesUpwards():121:121 -> a
    86:86:void lambda$propagateReservedFieldNamesUpwards$1(com.android.tools.r8.graph.DexProgramClass):124:124 -> a
    87:87:com.android.tools.r8.naming.ReservedFieldNamingState getReservedFieldNamingState(com.android.tools.r8.graph.DexType):77:77 -> a
    87:87:void lambda$propagateReservedFieldNamesUpwards$1(com.android.tools.r8.graph.DexProgramClass):124 -> a
    88:89:void lambda$propagateReservedFieldNamesUpwards$1(com.android.tools.r8.graph.DexProgramClass):126:127 -> a
    90:90:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    90:90:boolean com.android.tools.r8.graph.DexType.isProgramType(com.android.tools.r8.graph.DexDefinitionSupplier):294 -> a
    90:90:void lambda$propagateReservedFieldNamesUpwards$1(com.android.tools.r8.graph.DexProgramClass):127 -> a
    91:91:boolean com.android.tools.r8.graph.DexType.isProgramType(com.android.tools.r8.graph.DexDefinitionSupplier):295:295 -> a
    91:91:void lambda$propagateReservedFieldNamesUpwards$1(com.android.tools.r8.graph.DexProgramClass):127 -> a
    92:93:void lambda$propagateReservedFieldNamesUpwards$1(com.android.tools.r8.graph.DexProgramClass):128:129 -> a
    94:94:boolean com.android.tools.r8.graph.DexType.isProgramType(com.android.tools.r8.graph.DexDefinitionSupplier):294:294 -> a
    94:94:void lambda$propagateReservedFieldNamesUpwards$1(com.android.tools.r8.graph.DexProgramClass):127 -> a
    95:99:void lambda$renameFieldsInClasses$3(java.util.Map,com.android.tools.r8.graph.DexClass):143:147 -> a
    100:100:void com.android.tools.r8.naming.FieldNamingState.<init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy):26:26 -> a
    100:100:void lambda$renameFieldsInClasses$3(java.util.Map,com.android.tools.r8.graph.DexClass):147 -> a
    101:101:void lambda$renameFieldsInClasses$3(java.util.Map,com.android.tools.r8.graph.DexClass):151:151 -> a
    102:110:void lambda$renameFieldsInClasses$3(java.util.Map,com.android.tools.r8.graph.DexClass):149:157 -> a
    111:114:com.android.tools.r8.graph.DexString renameField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.naming.FieldNamingState):217:220 -> a
    111:114:void lambda$renameFieldsInClasses$3(java.util.Map,com.android.tools.r8.graph.DexClass):158 -> a
    115:116:void lambda$renameFieldsInClasses$3(java.util.Map,com.android.tools.r8.graph.DexClass):162:163 -> a
    117:117:void renameNonReboundAccessesToField(com.android.tools.r8.graph.FieldAccessInfo):232:232 -> a
    118:121:void renameNonReboundAccessToField(com.android.tools.r8.graph.DexField):237:240 -> a
    122:122:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):180:180 -> a
    122:122:void renameNonReboundAccessToField(com.android.tools.r8.graph.DexField):240 -> a
    123:127:void renameNonReboundAccessToField(com.android.tools.r8.graph.DexField):242:246 -> a
    128:128:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    128:128:void renameNonReboundAccessToField(com.android.tools.r8.graph.DexField):246 -> a
    129:143:void renameNonReboundAccessToField(com.android.tools.r8.graph.DexField):248:262 -> a
    1:1:com.android.tools.r8.naming.ReservedFieldNamingState lambda$getOrCreateReservedFieldNamingState$0(com.android.tools.r8.graph.DexType):82:82 -> b
    2:6:void renameFieldsInClasses():137:141 -> b
    7:7:void renameFieldsInClasses():140:140 -> b
    1:1:com.android.tools.r8.naming.FieldNamingState lambda$renameFieldsInClasses$2(com.android.tools.r8.graph.DexType):150:150 -> c
    2:2:void com.android.tools.r8.naming.FieldNamingState.<init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy):26:26 -> c
    2:2:com.android.tools.r8.naming.FieldNamingState lambda$renameFieldsInClasses$2(com.android.tools.r8.graph.DexType):150 -> c
    3:5:void renameNonReboundReferences():226:228 -> c
com.android.tools.r8.naming.FieldNameMinifier$1 -> com.android.tools.r8.naming.i:
com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming -> com.android.tools.r8.naming.j$a:
    java.util.Map renaming -> a
    1:1:void <init>(java.util.Map,com.android.tools.r8.naming.FieldNameMinifier$1):63:63 -> <init>
    2:3:void <init>(java.util.Map):67:68 -> <init>
    1:1:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming empty():72:72 -> a
com.android.tools.r8.naming.FieldNameMinifier$InterfacePartitioning -> com.android.tools.r8.naming.k:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set visited -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():266:266 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):271:271 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView):269:272 -> <init>
    1:1:java.util.List access$100(com.android.tools.r8.naming.FieldNameMinifier$InterfacePartitioning,java.util.Collection):266:266 -> a
    2:9:java.util.List sortedPartitions(java.util.Collection):276:283 -> a
    10:18:java.util.Set buildSortedPartition(com.android.tools.r8.graph.DexClass):290:298 -> a
    19:19:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    19:19:java.util.Set buildSortedPartition(com.android.tools.r8.graph.DexClass):298 -> a
    20:40:java.util.Set buildSortedPartition(com.android.tools.r8.graph.DexClass):303:323 -> a
    41:41:int lambda$buildSortedPartition$0(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):290:290 -> a
com.android.tools.r8.naming.FieldNamingState -> com.android.tools.r8.naming.l:
    com.android.tools.r8.naming.ReservedFieldNamingState reservedNames -> c
    com.android.tools.r8.naming.MemberNamingStrategy strategy -> d
    java.util.function.BiPredicate isAvailable -> e
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy,com.android.tools.r8.naming.ReservedFieldNamingState):31:31 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy,com.android.tools.r8.naming.ReservedFieldNamingState,java.util.Map):39:42 -> <init>
    1:1:java.util.function.BiPredicate access$000(com.android.tools.r8.naming.FieldNamingState):19:19 -> a
    2:2:boolean lambda$new$0(com.android.tools.r8.naming.ReservedFieldNamingState,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexField):42:42 -> a
    3:5:com.android.tools.r8.naming.FieldNamingState createChildState(com.android.tools.r8.naming.ReservedFieldNamingState):46:48 -> a
    6:6:void includeReservations(com.android.tools.r8.naming.ReservedFieldNamingState):69:69 -> a
    6:6:com.android.tools.r8.naming.FieldNamingState createChildState(com.android.tools.r8.naming.ReservedFieldNamingState):48 -> a
    7:9:com.android.tools.r8.graph.DexString getOrCreateNameFor(com.android.tools.r8.graph.DexField):53:55 -> a
    10:10:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    10:10:com.android.tools.r8.graph.DexString getOrCreateNameFor(com.android.tools.r8.graph.DexField):55 -> a
    11:13:com.android.tools.r8.graph.DexString getOrCreateNameFor(com.android.tools.r8.graph.DexField):57:59 -> a
    14:14:java.lang.Object com.android.tools.r8.naming.FieldNamingStateBase.getOrCreateInternalState(com.android.tools.r8.graph.DexField):29:29 -> a
    14:14:com.android.tools.r8.graph.DexString getOrCreateNameFor(com.android.tools.r8.graph.DexField):65 -> a
    15:15:com.android.tools.r8.graph.DexString getOrCreateNameFor(com.android.tools.r8.graph.DexField):65:65 -> a
    16:17:com.android.tools.r8.graph.DexString com.android.tools.r8.naming.FieldNamingState$InternalState.createNewName(com.android.tools.r8.graph.DexField):101:102 -> a
    16:17:com.android.tools.r8.graph.DexString getOrCreateNameFor(com.android.tools.r8.graph.DexField):65 -> a
    18:18:com.android.tools.r8.naming.FieldNamingState$InternalState createInternalState():74:74 -> a
    18:18:java.lang.Object createInternalState():19 -> a
    19:19:void com.android.tools.r8.naming.FieldNamingState$InternalState.<init>(com.android.tools.r8.naming.FieldNamingState):92:92 -> a
    19:19:com.android.tools.r8.naming.FieldNamingState$InternalState createInternalState():74 -> a
    19:19:java.lang.Object createInternalState():19 -> a
    1:1:com.android.tools.r8.naming.MemberNamingStrategy access$100(com.android.tools.r8.naming.FieldNamingState):19:19 -> b
    2:6:com.android.tools.r8.naming.FieldNamingState clone():79:83 -> b
    1:1:com.android.tools.r8.naming.ReservedFieldNamingState access$200(com.android.tools.r8.naming.FieldNamingState):19:19 -> c
    1:1:java.lang.Object clone():19:19 -> clone
com.android.tools.r8.naming.FieldNamingState$InternalState -> com.android.tools.r8.naming.l$a:
    com.android.tools.r8.naming.FieldNamingState this$0 -> c
    int nextNameIndex -> b
    boolean $assertionsDisabled -> d
    int dictionaryIndex -> a
    1:1:void <clinit>():86:86 -> <clinit>
    1:3:void <init>(com.android.tools.r8.naming.FieldNamingState,int,int):95:97 -> <init>
    1:1:int incrementDictionaryIndex():118:118 -> a
    2:3:int incrementNameIndex(boolean):123:124 -> a
    1:1:int getDictionaryIndex():113:113 -> b
    1:1:com.android.tools.r8.naming.FieldNamingState$InternalState clone():108:108 -> c
    1:1:com.android.tools.r8.naming.FieldNamingState$InternalState clone():108:108 -> clone
    1:1:java.lang.Object clone():86 -> clone
com.android.tools.r8.naming.FieldNamingStateBase -> com.android.tools.r8.naming.m:
    java.util.Map internalStates -> b
    com.android.tools.r8.graph.AppView appView -> a
    1:3:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):18:20 -> <init>
    java.lang.Object createInternalState() -> a
    1:4:com.android.tools.r8.graph.DexType getInternalStateKey(com.android.tools.r8.graph.DexType):38:41 -> a
    1:4:java.lang.Object getOrCreateInternalState(com.android.tools.r8.graph.DexType):33 -> a
    5:5:java.lang.Object getOrCreateInternalState(com.android.tools.r8.graph.DexType):34:34 -> a
    1:1:java.lang.Object lambda$getOrCreateInternalState$0(com.android.tools.r8.graph.DexType):34:34 -> b
com.android.tools.r8.naming.IdentifierMinifier -> com.android.tools.r8.naming.n:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.naming.NamingLens lens -> c
    com.android.tools.r8.shaking.ProguardClassFilter adaptClassStrings -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():36:36 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):42:45 -> <init>
    1:2:void adaptClassStrings(java.util.concurrent.ExecutorService):56:57 -> a
    3:3:void adaptClassStrings(java.util.concurrent.ExecutorService):56:56 -> a
    4:5:void lambda$adaptClassStrings$0(com.android.tools.r8.graph.DexProgramClass):59:60 -> a
    6:10:void adaptClassStringsInStaticField(com.android.tools.r8.graph.DexEncodedField):71:75 -> a
    6:10:void lambda$adaptClassStrings$0(com.android.tools.r8.graph.DexProgramClass):61 -> a
    11:11:void lambda$adaptClassStrings$0(com.android.tools.r8.graph.DexProgramClass):63:63 -> a
    12:31:void adaptClassStringsInMethod(com.android.tools.r8.graph.DexEncodedMethod):81:100 -> a
    32:43:com.android.tools.r8.graph.DexString getRenamedStringLiteral(com.android.tools.r8.graph.DexString):107:118 -> a
    44:44:boolean lambda$getRenamedStringLiteral$1(java.lang.String,com.android.tools.r8.graph.DexType):111:111 -> a
    1:2:void replaceDexItemBasedConstString(java.util.concurrent.ExecutorService):126:127 -> b
    3:3:void replaceDexItemBasedConstString(java.util.concurrent.ExecutorService):126:126 -> b
    4:4:void lambda$replaceDexItemBasedConstString$2(com.android.tools.r8.graph.DexProgramClass):130:130 -> b
    5:11:void replaceDexItemBasedConstStringInStaticField(com.android.tools.r8.graph.DexEncodedField):142:148 -> b
    5:11:void lambda$replaceDexItemBasedConstString$2(com.android.tools.r8.graph.DexProgramClass):131 -> b
    12:14:void lambda$replaceDexItemBasedConstString$2(com.android.tools.r8.graph.DexProgramClass):133:135 -> b
    15:21:void replaceDexItemBasedConstStringInMethod(com.android.tools.r8.graph.DexEncodedMethod):153:159 -> b
    22:54:void replaceDexItemBasedConstStringInMethod(com.android.tools.r8.graph.DexEncodedMethod):154:186 -> b
    1:4:void run(java.util.concurrent.ExecutorService):49:52 -> c
com.android.tools.r8.naming.IdentifierNameStringMarker -> com.android.tools.r8.naming.o:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap identifierNameStrings -> b
    boolean $assertionsDisabled -> d
    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> c
    1:1:void <clinit>():54:54 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView):60:63 -> <init>
    boolean lambda$decoupleIdentifierNameStringForInvokeInstruction$1(com.android.tools.r8.ir.code.ConstString,com.android.tools.r8.ir.code.Instruction) -> a
    boolean lambda$decoupleIdentifierNameStringForInvokeInstruction$2(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Instruction) -> a
    1:2:void decoupleIdentifierNameStringsInFields(java.util.concurrent.ExecutorService):68:69 -> a
    3:3:void decoupleIdentifierNameStringsInFields(java.util.concurrent.ExecutorService):68:68 -> a
    4:4:void lambda$decoupleIdentifierNameStringsInFields$0(com.android.tools.r8.graph.DexProgramClass):71:71 -> a
    5:17:void decoupleIdentifierNameStringInStaticField(com.android.tools.r8.graph.DexEncodedField):80:92 -> a
    5:17:void lambda$decoupleIdentifierNameStringsInFields$0(com.android.tools.r8.graph.DexProgramClass):72 -> a
    18:18:void decoupleIdentifierNameStringInStaticField(com.android.tools.r8.graph.DexEncodedField):91:91 -> a
    18:18:void lambda$decoupleIdentifierNameStringsInFields$0(com.android.tools.r8.graph.DexProgramClass):72 -> a
    19:49:void decoupleIdentifierNameStringsInBlocks(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Set):102:132 -> a
    50:50:void decoupleIdentifierNameStringsInBlocks(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Set):131:131 -> a
    51:51:void decoupleIdentifierNameStringsInBlocks(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Set):128:128 -> a
    52:106:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForFieldPutInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.FieldInstruction):144:198 -> a
    52:106:void decoupleIdentifierNameStringsInBlocks(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Set):127 -> a
    107:107:com.android.tools.r8.ir.code.FieldInstruction com.android.tools.r8.ir.code.FieldInstruction.asFieldInstruction():0:0 -> a
    107:107:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForFieldPutInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.FieldInstruction):145 -> a
    107:107:void decoupleIdentifierNameStringsInBlocks(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Set):127 -> a
    108:225:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):208:325 -> a
    226:229:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):216:219 -> a
    230:231:int getIdentifierPositionInArguments(com.android.tools.r8.ir.code.InvokeMethod):344:345 -> a
    230:231:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):223 -> a
    232:233:boolean com.android.tools.r8.naming.IdentifierNameStringUtils.isClassNameComparison(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexItemFactory):169:170 -> a
    232:233:int getIdentifierPositionInArguments(com.android.tools.r8.ir.code.InvokeMethod):345 -> a
    232:233:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):223 -> a
    234:240:int getIdentifierPositionInArguments(com.android.tools.r8.ir.code.InvokeMethod):346:352 -> a
    234:240:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):223 -> a
    241:250:int getIdentifierPositionInArguments(com.android.tools.r8.ir.code.InvokeMethod):351:360 -> a
    241:250:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):223 -> a
    251:251:int getIdentifierPositionInArguments(com.android.tools.r8.ir.code.InvokeMethod):359:359 -> a
    251:251:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):223 -> a
    252:277:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):224:249 -> a
    278:278:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298:298 -> a
    278:278:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):249 -> a
    279:279:void com.android.tools.r8.ir.code.InstructionListIterator.replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):22:22 -> a
    279:279:void com.android.tools.r8.ir.code.Instruction.replace(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):298 -> a
    279:279:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):249 -> a
    280:360:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):252:332 -> a
    361:367:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):331:337 -> a
    368:368:com.android.tools.r8.ir.code.Invoke com.android.tools.r8.ir.code.Invoke.create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):66:66 -> a
    368:368:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):336 -> a
    369:372:com.android.tools.r8.ir.code.InstructionListIterator decoupleIdentifierNameStringForInvokeInstruction(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):335:338 -> a
    373:373:com.android.tools.r8.ir.code.Value lambda$decoupleIdentifierNameStringForInvokeInstruction$3(com.android.tools.r8.ir.code.Value[],com.android.tools.r8.ir.code.Value,long):333:333 -> a
    374:380:void warnUndeterminedIdentifierIfNecessary(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexString):369:375 -> a
    381:381:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    381:381:void warnUndeterminedIdentifierIfNecessary(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexString):375 -> a
    382:403:void warnUndeterminedIdentifierIfNecessary(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexString):377:398 -> a
com.android.tools.r8.naming.IdentifierNameStringUtils -> com.android.tools.r8.naming.p:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():35:35 -> <clinit>
    boolean lambda$evaluateTypeArrayContentFromConstructionToUse$0(com.android.tools.r8.ir.code.NewArrayEmpty,com.android.tools.r8.ir.code.Instruction) -> a
    1:89:boolean isReflectionMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):67:155 -> a
    90:96:boolean isReflectionMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):108:114 -> a
    97:98:boolean isClassNameComparison(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexItemFactory):169:170 -> a
    99:101:boolean isClassNameComparison(com.android.tools.r8.ir.code.InvokeVirtual,com.android.tools.r8.graph.DexItemFactory):174:176 -> a
    102:105:boolean isClassNameValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):180:183 -> a
    106:123:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):198:215 -> a
    124:133:com.android.tools.r8.graph.DexType inferTypeFromConstStringValue(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.code.Value):307:316 -> a
    124:133:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):214 -> a
    134:154:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):221:241 -> a
    155:155:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    155:155:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):241 -> a
    156:171:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):245:260 -> a
    172:210:com.android.tools.r8.graph.DexTypeList retrieveDexTypeListFromClassList(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):519:557 -> a
    172:210:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):260 -> a
    211:217:com.android.tools.r8.graph.DexTypeList retrieveDexTypeListFromClassList(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):556:562 -> a
    211:217:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):260 -> a
    218:218:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):264:264 -> a
    219:222:com.android.tools.r8.graph.DexReference inferMethodInHolder(com.android.tools.r8.graph.DexClass,java.lang.String,com.android.tools.r8.graph.DexTypeList):385:388 -> a
    219:222:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):264 -> a
    223:225:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexDefinitionSupplier):266:268 -> a
    226:229:int getPositionOfFirstConstString(com.android.tools.r8.ir.code.Instruction):274:277 -> a
    230:258:com.android.tools.r8.graph.DexReference inferMemberFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):324:352 -> a
    230:258:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):288 -> a
    259:259:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    259:259:com.android.tools.r8.graph.DexReference inferMemberFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):352 -> a
    259:259:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):288 -> a
    260:260:com.android.tools.r8.graph.DexReference inferMemberFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):356:356 -> a
    260:260:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):288 -> a
    261:263:com.android.tools.r8.graph.DexReference inferMethodNameInHolder(com.android.tools.r8.graph.DexClass,java.lang.String):374:376 -> a
    261:263:com.android.tools.r8.graph.DexReference inferMemberFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):358 -> a
    261:263:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):288 -> a
    264:264:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):291:291 -> a
    265:268:com.android.tools.r8.graph.DexReference inferFieldInHolder(com.android.tools.r8.graph.DexClass,java.lang.String,com.android.tools.r8.graph.DexType):364:367 -> a
    269:312:com.android.tools.r8.graph.DexType[] evaluateTypeArrayContentFromConstructionToUse(com.android.tools.r8.ir.code.NewArrayEmpty,java.util.List,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexItemFactory):417:460 -> a
    313:321:com.android.tools.r8.graph.DexType getTypeFromConstClassOrBoxedPrimitive(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):396:404 -> a
    313:321:com.android.tools.r8.graph.DexType[] evaluateTypeArrayContentFromConstructionToUse(com.android.tools.r8.ir.code.NewArrayEmpty,java.util.List,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexItemFactory):460 -> a
    322:322:com.android.tools.r8.graph.DexType getTypeFromConstClassOrBoxedPrimitive(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):403:403 -> a
    322:322:com.android.tools.r8.graph.DexType[] evaluateTypeArrayContentFromConstructionToUse(com.android.tools.r8.ir.code.NewArrayEmpty,java.util.List,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexItemFactory):460 -> a
    323:338:com.android.tools.r8.graph.DexType[] evaluateTypeArrayContentFromConstructionToUse(com.android.tools.r8.ir.code.NewArrayEmpty,java.util.List,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexItemFactory):465:480 -> a
    1:3:com.android.tools.r8.graph.DexType inferTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):298:300 -> b
com.android.tools.r8.naming.InterfaceMethodNameMinifier -> com.android.tools.r8.naming.s:
    com.android.tools.r8.naming.MethodNameMinifier$State minifierState -> d
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.com.google.common.base.Equivalence equivalence -> c
    boolean $assertionsDisabled -> h
    java.util.Set desugaredCallSites -> b
    java.util.Map callSiteRenamings -> e
    java.util.Map globalStateMap -> f
    java.util.Map interfaceStateMap -> g
    1:1:void <clinit>():97:97 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.naming.MethodNameMinifier$State):377:377 -> <init>
    2:20:void <init>(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.naming.MethodNameMinifier$State):366:384 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.naming.InterfaceMethodNameMinifier):97:97 -> a
    2:2:java.util.Map getCallSiteRenamings():392:392 -> a
    3:5:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):406:408 -> a
    6:8:void reserveNamesInInterfaces(java.util.Collection):396:398 -> a
    6:8:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):409 -> a
    9:10:void com.android.tools.r8.naming.MethodNameMinifier$State.allocateReservationStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):106:107 -> a
    9:10:void reserveNamesInInterfaces(java.util.Collection):398 -> a
    9:10:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):409 -> a
    11:11:void com.android.tools.r8.naming.MethodNameMinifier$State.allocateReservationStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):106:106 -> a
    11:11:void reserveNamesInInterfaces(java.util.Collection):398 -> a
    11:11:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):409 -> a
    12:14:void reserveNamesInInterfaces(java.util.Collection):399:401 -> a
    12:14:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):409 -> a
    15:19:void patchUpChildrenInReservationStates():572:576 -> a
    15:19:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):412 -> a
    20:25:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):413:418 -> a
    26:32:void computeReservationFrontiersForAllImplementingClasses():583:589 -> a
    26:32:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):419 -> a
    33:33:com.android.tools.r8.graph.DexType com.android.tools.r8.naming.MethodNameMinifier$State.getFrontier(com.android.tools.r8.graph.DexType):111:111 -> a
    33:33:void computeReservationFrontiersForAllImplementingClasses():589 -> a
    33:33:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):419 -> a
    34:35:void computeReservationFrontiersForAllImplementingClasses():590:591 -> a
    34:35:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):419 -> a
    36:120:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):420:504 -> a
    121:130:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):499:508 -> a
    131:145:boolean verifyAllMethodsAreRepresentedIn(java.util.List):618:632 -> a
    131:145:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):508 -> a
    146:146:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):509:509 -> a
    147:161:boolean verifyAllCallSitesAreRepresentedIn(java.util.List):599:613 -> a
    147:161:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):509 -> a
    162:196:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):511:545 -> a
    197:205:void print(com.android.tools.r8.graph.DexMethod,java.util.Set,java.io.PrintStream):637:645 -> a
    197:205:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):545 -> a
    206:213:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing,java.util.Collection):548:555 -> a
    214:214:com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState lambda$assignNamesToInterfaceMethods$0(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):426:426 -> a
    215:234:void lambda$assignNamesToInterfaceMethods$1(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):448:467 -> a
    235:236:java.lang.Object com.android.tools.r8.utils.DisjointSets.unionWithMakeSet(java.lang.Object,java.lang.Object):128:129 -> a
    235:236:void lambda$assignNamesToInterfaceMethods$1(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):468 -> a
    237:238:java.lang.Object com.android.tools.r8.utils.DisjointSets.findOrMakeSet(java.lang.Object):91:92 -> a
    237:238:java.lang.Object com.android.tools.r8.utils.DisjointSets.unionWithMakeSet(java.lang.Object,java.lang.Object):132 -> a
    237:238:void lambda$assignNamesToInterfaceMethods$1(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):468 -> a
    239:240:java.lang.Object com.android.tools.r8.utils.DisjointSets.findOrMakeSet(java.lang.Object):91:92 -> a
    239:240:java.lang.Object com.android.tools.r8.utils.DisjointSets.unionWithMakeSet(java.lang.Object,java.lang.Object):134 -> a
    239:240:void lambda$assignNamesToInterfaceMethods$1(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):468 -> a
    241:242:java.lang.Object com.android.tools.r8.utils.DisjointSets.findOrMakeSet(java.lang.Object):91:92 -> a
    241:242:java.lang.Object com.android.tools.r8.utils.DisjointSets.unionWithMakeSet(java.lang.Object,java.lang.Object):134 -> a
    241:242:void lambda$assignNamesToInterfaceMethods$1(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):468 -> a
    243:243:java.lang.Object com.android.tools.r8.utils.DisjointSets.unionWithMakeSet(java.lang.Object,java.lang.Object):134:134 -> a
    243:243:void lambda$assignNamesToInterfaceMethods$1(com.android.tools.r8.utils.DisjointSets,com.android.tools.r8.graph.DexCallSite):468 -> a
    244:247:com.android.tools.r8.graph.DexString assignNewName(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):559:562 -> a
    248:248:com.android.tools.r8.naming.MethodNamingState com.android.tools.r8.naming.MethodNameMinifier$State.getNamingState(com.android.tools.r8.graph.DexType):102:102 -> a
    248:248:com.android.tools.r8.graph.DexString assignNewName(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):562 -> a
    249:252:com.android.tools.r8.graph.DexString assignNewName(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):564:567 -> a
    253:253:boolean lambda$assignNewName$2(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):566:566 -> a
    1:1:com.android.tools.r8.naming.MethodNameMinifier$State access$100(com.android.tools.r8.naming.InterfaceMethodNameMinifier):97:97 -> b
    2:2:java.util.Comparator getDefaultInterfaceMethodOrdering():388:388 -> b
    1:1:java.util.Map access$200(com.android.tools.r8.naming.InterfaceMethodNameMinifier):97:97 -> c
com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState -> com.android.tools.r8.naming.q:
    java.util.Map methodStates -> b
    com.android.tools.r8.naming.InterfaceMethodNameMinifier this$0 -> c
    java.util.Set callSites -> a
    1:4:void <init>(com.android.tools.r8.naming.InterfaceMethodNameMinifier):240:243 -> <init>
    1:1:java.util.Set access$300(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):240:240 -> a
    2:2:void addState(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):246:246 -> a
    3:3:java.util.Set lambda$addState$0(com.android.tools.r8.graph.DexMethod):246:246 -> a
    4:4:void addCallSite(com.android.tools.r8.graph.DexCallSite):259:259 -> a
    5:17:com.android.tools.r8.graph.DexString getReservedName():263:275 -> a
    18:26:boolean isAvailable(com.android.tools.r8.graph.DexString):302:310 -> a
    27:28:java.lang.Boolean lambda$isAvailable$3(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):305:306 -> a
    29:29:void addRenaming(com.android.tools.r8.graph.DexString,com.android.tools.r8.naming.MethodNameMinifier$State):314:314 -> a
    30:30:void lambda$addRenaming$4(com.android.tools.r8.graph.DexString,com.android.tools.r8.naming.MethodNameMinifier$State,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):316:316 -> a
    31:31:void com.android.tools.r8.naming.MethodNameMinifier$State.putRenaming(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString):94:94 -> a
    31:31:void lambda$addRenaming$4(com.android.tools.r8.graph.DexString,com.android.tools.r8.naming.MethodNameMinifier$State,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):317 -> a
    32:32:void forEachState(java.util.function.BiConsumer):322:322 -> a
    33:33:java.lang.Object lambda$forEachState$5(java.util.function.BiConsumer,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):324:324 -> a
    34:36:java.lang.Object forAnyState(java.util.function.BiFunction):331:333 -> a
    37:39:boolean containsReservation(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):343:345 -> a
    40:40:boolean com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState.containsReservation(com.android.tools.r8.graph.DexType):236:236 -> a
    40:40:boolean containsReservation(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):346 -> a
    1:1:java.util.Map access$400(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):240:240 -> b
    2:2:java.util.Set lambda$appendMethodGroupState$1(com.android.tools.r8.graph.DexMethod):252:252 -> b
    3:3:void reserveName(com.android.tools.r8.graph.DexString):288:288 -> b
    4:7:void lambda$reserveName$2(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):290:293 -> b
    8:8:void com.android.tools.r8.naming.MethodNameMinifier$State.putRenaming(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString):94:94 -> b
    8:8:void lambda$reserveName$2(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):293 -> b
    9:10:void lambda$reserveName$2(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):295:296 -> b
    11:11:void com.android.tools.r8.naming.MethodNameMinifier$State.putRenaming(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString):94:94 -> b
    11:11:void lambda$reserveName$2(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):296 -> b
    1:3:void appendMethodGroupState(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):250:252 -> c
    1:1:int compareTo(java.lang.Object):240:240 -> compareTo
    2:2:int compareTo(com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceMethodGroupState):357:357 -> compareTo
    2:2:int compareTo(java.lang.Object):240 -> compareTo
com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState -> com.android.tools.r8.naming.r:
    com.android.tools.r8.graph.DexClass iface -> a
    java.util.Set reservationTypes -> c
    boolean $assertionsDisabled -> e
    java.util.Set children -> b
    com.android.tools.r8.naming.InterfaceMethodNameMinifier this$0 -> d
    1:1:void <clinit>():99:99 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.InterfaceMethodNameMinifier,com.android.tools.r8.graph.DexClass):108:108 -> <init>
    2:7:void <init>(com.android.tools.r8.naming.InterfaceMethodNameMinifier,com.android.tools.r8.graph.DexClass):104:109 -> <init>
    1:2:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexMethod):115:116 -> a
    3:3:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    3:3:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexMethod):116 -> a
    4:4:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexMethod):118:118 -> a
    5:5:com.android.tools.r8.graph.DexString com.android.tools.r8.naming.MethodNameMinifier$State.getReservedName(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):115:115 -> a
    5:5:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexMethod):118 -> a
    6:21:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexMethod):126:141 -> a
    22:29:java.lang.Boolean lambda$getReservedName$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):129:136 -> a
    30:30:void addRenaming(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):171:171 -> a
    31:31:void lambda$addRenaming$5(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):173:173 -> a
    32:32:void lambda$addRenaming$4(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):175:175 -> a
    33:33:com.android.tools.r8.naming.MethodNamingState com.android.tools.r8.naming.MethodNameMinifier$State.getNamingState(com.android.tools.r8.graph.DexType):102:102 -> a
    33:33:void lambda$addRenaming$4(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):175 -> a
    34:35:void com.android.tools.r8.naming.MethodNamingState.addRenaming(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):72:73 -> a
    34:35:void lambda$addRenaming$4(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):176 -> a
    36:36:void forAll(java.util.function.Consumer):182:182 -> a
    37:37:java.lang.Object lambda$forAll$6(java.util.function.Consumer,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):184:184 -> a
    38:46:java.lang.Object forAny(java.util.function.Function):190:198 -> a
    1:1:void lambda$reserveName$1(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):149:149 -> b
    2:2:com.android.tools.r8.naming.MethodReservationState com.android.tools.r8.naming.MethodNameMinifier$State.getReservationState(com.android.tools.r8.graph.DexType):98:98 -> b
    2:2:void lambda$reserveName$1(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):149 -> b
    3:3:void lambda$reserveName$1(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):150:150 -> b
    4:15:boolean isAvailable(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):156:167 -> b
    16:17:java.lang.Boolean lambda$isAvailable$3(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):159:160 -> b
    18:18:com.android.tools.r8.naming.MethodNamingState com.android.tools.r8.naming.MethodNameMinifier$State.getNamingState(com.android.tools.r8.graph.DexType):102:102 -> b
    18:18:java.lang.Boolean lambda$isAvailable$3(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):160 -> b
    19:20:java.lang.Boolean lambda$isAvailable$3(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):161:162 -> b
    21:28:java.lang.Object forChildren(java.util.function.Function):219:226 -> b
    1:1:void reserveName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):145:145 -> c
    2:2:void lambda$reserveName$2(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InterfaceMethodNameMinifier$InterfaceReservationState):147:147 -> c
    3:10:java.lang.Object forParents(java.util.function.Function):202:209 -> c
com.android.tools.r8.naming.InternalNamingState -> com.android.tools.r8.naming.t:
    int incrementDictionaryIndex() -> a
    int incrementNameIndex(boolean) -> a
    int getDictionaryIndex() -> b
com.android.tools.r8.naming.MemberNaming -> com.android.tools.r8.naming.u:
    com.android.tools.r8.naming.MemberNaming$Signature signature -> a
    com.android.tools.r8.naming.MemberNaming$Signature renamedSignature -> b
    com.android.tools.r8.position.Position position -> c
    1:4:void <init>(com.android.tools.r8.naming.MemberNaming$Signature,java.lang.String,com.android.tools.r8.position.Position):64:67 -> <init>
    1:1:com.android.tools.r8.naming.MemberNaming$Signature getOriginalSignature():71:71 -> a
    1:1:java.lang.String getRenamedName():83:83 -> b
    1:1:boolean isFieldNaming():91:91 -> c
    1:1:boolean isMethodNaming():87:87 -> d
    1:6:boolean equals(java.lang.Object):38:43 -> equals
    1:2:int hashCode():48:49 -> hashCode
    1:1:java.lang.String toString():100:100 -> toString
com.android.tools.r8.naming.MemberNaming$FieldSignature -> com.android.tools.r8.naming.u$a:
    java.lang.String type -> c
    1:2:void <init>(java.lang.String,java.lang.String):176:177 -> <init>
    com.android.tools.r8.naming.MemberNaming$FieldSignature asFieldSignature() -> a
    1:1:com.android.tools.r8.naming.MemberNaming$FieldSignature fromDexField(com.android.tools.r8.graph.DexField):181:181 -> a
    2:2:com.android.tools.r8.naming.MemberNaming$FieldSignature fromDexField(com.android.tools.r8.graph.DexField,boolean):185:185 -> a
    3:3:java.lang.String com.android.tools.r8.graph.DexField.qualifiedName():131:131 -> a
    3:3:com.android.tools.r8.naming.MemberNaming$FieldSignature fromDexField(com.android.tools.r8.graph.DexField,boolean):186 -> a
    4:5:com.android.tools.r8.naming.MemberNaming$FieldSignature fromDexField(com.android.tools.r8.graph.DexField,boolean):186:187 -> a
    6:9:com.android.tools.r8.graph.DexField toDexField(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):191:194 -> a
    10:10:com.android.tools.r8.graph.DexField toDexField(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):191:191 -> a
    11:11:com.android.tools.r8.naming.MemberNaming$Signature asRenamed(java.lang.String):199:199 -> a
    12:14:void write(java.io.Writer):231:233 -> a
    1:1:com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind kind():204:204 -> c
    1:5:boolean equals(java.lang.Object):212:216 -> equals
    1:1:int hashCode():221:221 -> hashCode
    1:1:java.lang.String toString():226:226 -> toString
com.android.tools.r8.naming.MemberNaming$MethodSignature -> com.android.tools.r8.naming.u$b:
    boolean $assertionsDisabled -> e
    java.lang.String[] parameters -> d
    java.lang.String type -> c
    1:1:void <clinit>():247:247 -> <clinit>
    1:3:void <init>(java.lang.String,java.lang.String,java.lang.String[]):253:255 -> <init>
    4:6:void <init>(java.lang.String,java.lang.String,java.util.Collection):259:261 -> <init>
    1:1:com.android.tools.r8.naming.MemberNaming$MethodSignature fromDexMethod(com.android.tools.r8.graph.DexMethod):265:265 -> a
    2:9:com.android.tools.r8.naming.MemberNaming$MethodSignature fromDexMethod(com.android.tools.r8.graph.DexMethod,boolean):269:276 -> a
    10:19:com.android.tools.r8.naming.MemberNaming$MethodSignature fromSignature(java.lang.String,java.lang.String):281:290 -> a
    20:28:com.android.tools.r8.graph.DexMethod toDexMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):300:308 -> a
    29:29:com.android.tools.r8.graph.DexMethod toDexMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):305:305 -> a
    30:30:com.android.tools.r8.naming.MemberNaming$MethodSignature initializer(java.lang.String[]):312:312 -> a
    31:31:com.android.tools.r8.naming.MemberNaming$Signature asRenamed(java.lang.String):317:317 -> a
    32:42:void write(java.io.Writer):354:364 -> a
    1:1:com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind kind():322:322 -> c
    1:8:boolean equals(java.lang.Object):330:337 -> equals
    1:8:java.lang.String toDescriptor():368:375 -> f
    1:2:com.android.tools.r8.naming.MemberNaming$MethodSignature toUnqualified():295:296 -> g
    1:3:int hashCode():342:344 -> hashCode
    1:1:java.lang.String toString():349:349 -> toString
com.android.tools.r8.naming.MemberNaming$Signature -> com.android.tools.r8.naming.u$c:
    java.lang.String name -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():103:103 -> <clinit>
    1:2:void <init>(java.lang.String):107:108 -> <init>
    com.android.tools.r8.naming.MemberNaming$FieldSignature asFieldSignature() -> a
    com.android.tools.r8.naming.MemberNaming$Signature asRenamed(java.lang.String) -> a
    void write(java.io.Writer) -> a
    1:1:boolean isQualified():124:124 -> b
    com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind kind() -> c
    1:2:java.lang.String toHolderFromQualified():133:134 -> d
    1:2:java.lang.String toUnqualifiedName():128:129 -> e
    1:6:java.lang.String toString():156:161 -> toString
com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind -> com.android.tools.r8.naming.u$c$a:
    com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind FIELD -> b
    com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind METHOD -> a
    1:2:void <clinit>():166:167 -> <clinit>
    1:1:void <init>(java.lang.String,int):165:165 -> <init>
com.android.tools.r8.naming.MemberNamingStrategy -> com.android.tools.r8.naming.v:
    boolean allowMemberRenaming(com.android.tools.r8.graph.DexClass) -> a
    com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexClass) -> a
    com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass) -> a
    com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate) -> a
    com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate) -> a
com.android.tools.r8.naming.MethodNameMinifier -> com.android.tools.r8.naming.x:
    com.android.tools.r8.naming.MethodNameMinifier$State minifierState -> d
    java.util.Map renaming -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.naming.MemberNamingStrategy strategy -> b
    com.android.tools.r8.naming.MethodReservationState rootReservationState -> i
    boolean $assertionsDisabled -> j
    com.android.tools.r8.naming.MethodNamingState rootNamingState -> h
    com.android.tools.r8.com.google.common.collect.BiMap reservationStates -> e
    java.util.Map namingStates -> f
    java.util.Map frontiers -> g
    1:1:void <clinit>():87:87 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy):135:135 -> <init>
    2:21:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.MemberNamingStrategy):122:141 -> <init>
    java.lang.Object lambda$getNamingKeyTransform$2(com.android.tools.r8.graph.DexMethod) -> a
    1:1:java.util.Map access$000(com.android.tools.r8.naming.MethodNameMinifier):87:87 -> a
    2:2:com.android.tools.r8.naming.MethodNamingState access$200(com.android.tools.r8.naming.MethodNameMinifier,com.android.tools.r8.graph.DexType):87:87 -> a
    3:3:com.android.tools.r8.naming.MethodReservationState access$400(com.android.tools.r8.naming.MethodNameMinifier,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):87:87 -> a
    4:4:java.util.function.Function getNamingKeyTransform():156:156 -> a
    5:5:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    5:5:java.util.function.Function getNamingKeyTransform():156 -> a
    6:7:java.util.function.Function getNamingKeyTransform():157:158 -> a
    8:8:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming computeRenaming(java.util.Collection,java.util.Set,com.android.tools.r8.utils.Timing):181:181 -> a
    9:11:void reserveNamesInClasses():239:241 -> a
    9:11:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming computeRenaming(java.util.Collection,java.util.Set,com.android.tools.r8.utils.Timing):182 -> a
    12:12:void reserveNamesInClasses():239:239 -> a
    12:12:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming computeRenaming(java.util.Collection,java.util.Set,com.android.tools.r8.utils.Timing):182 -> a
    13:29:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming computeRenaming(java.util.Collection,java.util.Set,com.android.tools.r8.utils.Timing):183:199 -> a
    30:36:void assignNamesToClassesMethods(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodNamingState):203:209 -> a
    37:37:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    37:37:void assignNamesToClassesMethods(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodNamingState):209 -> a
    38:39:void assignNamesToClassesMethods(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodNamingState):210:211 -> a
    40:53:void assignNameToMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.MethodNamingState):222:235 -> a
    40:53:void assignNamesToClassesMethods(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodNamingState):212 -> a
    54:55:void com.android.tools.r8.naming.MethodNamingState.addRenaming(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):72:73 -> a
    54:55:void assignNameToMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.MethodNamingState):235 -> a
    54:55:void assignNamesToClassesMethods(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodNamingState):212 -> a
    56:57:void assignNamesToClassesMethods(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodNamingState):215:216 -> a
    58:58:com.android.tools.r8.naming.MethodNamingState lambda$assignNamesToClassesMethods$3(com.android.tools.r8.naming.MethodNamingState,com.android.tools.r8.naming.MethodReservationState,com.android.tools.r8.graph.DexType):208:208 -> a
    59:68:com.android.tools.r8.naming.MethodReservationState allocateReservationStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):266:275 -> a
    69:69:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    69:69:com.android.tools.r8.naming.MethodReservationState allocateReservationStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):275 -> a
    70:70:com.android.tools.r8.naming.MethodReservationState allocateReservationStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):277:277 -> a
    71:71:java.lang.Iterable shuffleMethods(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):322:322 -> a
    71:71:com.android.tools.r8.naming.MethodReservationState allocateReservationStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):277 -> a
    72:81:com.android.tools.r8.naming.MethodReservationState allocateReservationStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):277:286 -> a
    82:82:com.android.tools.r8.naming.MethodReservationState allocateReservationStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):284:284 -> a
    83:83:com.android.tools.r8.naming.MethodReservationState lambda$allocateReservationStateAndReserve$4(com.android.tools.r8.naming.MethodReservationState,com.android.tools.r8.graph.DexType):273:273 -> a
    84:90:com.android.tools.r8.naming.MethodNamingState getOrAllocateMethodNamingStates(com.android.tools.r8.graph.DexType):297:303 -> a
    91:91:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    91:91:com.android.tools.r8.naming.MethodNamingState getOrAllocateMethodNamingStates(com.android.tools.r8.graph.DexType):303 -> a
    92:100:com.android.tools.r8.naming.MethodNamingState getOrAllocateMethodNamingStates(com.android.tools.r8.graph.DexType):305:313 -> a
    1:1:com.android.tools.r8.com.google.common.collect.BiMap access$100(com.android.tools.r8.naming.MethodNameMinifier):87:87 -> b
    2:3:java.util.function.Function getReservationKeyTransform():145:146 -> b
    4:4:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> b
    4:4:java.util.function.Function getReservationKeyTransform():146 -> b
    5:8:java.util.function.Function getReservationKeyTransform():148:151 -> b
    9:9:java.lang.Object lambda$getReservationKeyTransform$0(com.android.tools.r8.graph.DexMethod):148:148 -> b
    10:18:void reserveNamesInClasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):247:255 -> b
    19:19:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    19:19:void reserveNamesInClasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):255 -> b
    20:23:void reserveNamesInClasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):256:259 -> b
    24:24:void reserveNamesInClasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MethodReservationState):257:257 -> b
    1:1:com.android.tools.r8.naming.MethodReservationState access$300(com.android.tools.r8.naming.MethodNameMinifier):87:87 -> c
    2:2:java.lang.Object lambda$getReservationKeyTransform$1(com.android.tools.r8.graph.DexMethod):151:151 -> c
    1:1:java.util.Map access$500(com.android.tools.r8.naming.MethodNameMinifier):87:87 -> d
    1:1:com.android.tools.r8.naming.MemberNamingStrategy access$600(com.android.tools.r8.naming.MethodNameMinifier):87:87 -> e
com.android.tools.r8.naming.MethodNameMinifier$1 -> com.android.tools.r8.naming.w:
com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming -> com.android.tools.r8.naming.x$a:
    java.util.Map renaming -> a
    java.util.Map callSiteRenaming -> b
    1:1:void <init>(java.util.Map,java.util.Map,com.android.tools.r8.naming.MethodNameMinifier$1):161:161 -> <init>
    2:4:void <init>(java.util.Map,java.util.Map):167:169 -> <init>
    1:1:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming empty():173:173 -> a
com.android.tools.r8.naming.MethodNameMinifier$State -> com.android.tools.r8.naming.y:
    com.android.tools.r8.naming.MethodNameMinifier this$0 -> a
    1:1:void <init>(com.android.tools.r8.naming.MethodNameMinifier):91:91 -> <init>
    1:1:com.android.tools.r8.naming.MethodReservationState getReservationState(com.android.tools.r8.graph.DexType):98:98 -> a
com.android.tools.r8.naming.MethodNamingState -> com.android.tools.r8.naming.B:
    com.android.tools.r8.naming.MethodNamingState parentNamingState -> d
    boolean $assertionsDisabled -> f
    com.android.tools.r8.naming.MemberNamingStrategy namingStrategy -> e
    com.android.tools.r8.naming.MethodReservationState reservationState -> c
    1:1:void <clinit>():18:18 -> <clinit>
    1:4:void <init>(com.android.tools.r8.naming.MethodNamingState,java.util.function.Function,com.android.tools.r8.naming.MemberNamingStrategy,com.android.tools.r8.naming.MethodReservationState):29:32 -> <init>
    1:2:java.lang.Object com.android.tools.r8.naming.MethodNamingStateBase.getInternalState(com.android.tools.r8.graph.DexMethod):23:24 -> a
    1:2:java.util.Set getUsedBy(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):92 -> a
    3:9:java.util.Set getUsedBy(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):92:98 -> a
    10:10:com.android.tools.r8.naming.MethodNamingState createRoot(java.util.function.Function,com.android.tools.r8.naming.MemberNamingStrategy,com.android.tools.r8.naming.MethodReservationState):39:39 -> a
    11:11:com.android.tools.r8.naming.MethodNamingState createChild(com.android.tools.r8.naming.MethodReservationState):43:43 -> a
    12:27:com.android.tools.r8.graph.DexString newOrReservedNameFor(com.android.tools.r8.graph.DexMethod,java.util.function.BiPredicate):52:67 -> a
    28:31:com.android.tools.r8.naming.MethodNamingState$InternalNewNameState createInternalState(com.android.tools.r8.graph.DexMethod):118:121 -> a
    28:31:java.lang.Object createInternalState(com.android.tools.r8.graph.DexMethod):18 -> a
    1:12:boolean isAvailable(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):77:88 -> b
    1:2:java.lang.Object com.android.tools.r8.naming.MethodNamingStateBase.getInternalState(com.android.tools.r8.graph.DexMethod):23:24 -> c
    1:2:com.android.tools.r8.graph.DexString getAssignedName(com.android.tools.r8.graph.DexMethod):105 -> c
    3:8:com.android.tools.r8.graph.DexString getAssignedName(com.android.tools.r8.graph.DexMethod):105:110 -> c
    1:1:com.android.tools.r8.graph.DexString newOrReservedNameFor(com.android.tools.r8.graph.DexMethod):48:48 -> d
com.android.tools.r8.naming.MethodNamingState$1 -> com.android.tools.r8.naming.z:
com.android.tools.r8.naming.MethodNamingState$InternalNewNameState -> com.android.tools.r8.naming.A:
    java.util.Map originalToRenamedNames -> b
    java.util.Map usedBy -> c
    com.android.tools.r8.naming.MethodNamingState$InternalNewNameState parentInternalState -> a
    boolean $assertionsDisabled -> f
    int nameCount -> d
    int dictionaryIndex -> e
    1:1:void <clinit>():124:124 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.MethodNamingState$InternalNewNameState,com.android.tools.r8.naming.MethodNamingState$1):124:124 -> <init>
    2:2:void <init>(com.android.tools.r8.naming.MethodNamingState$InternalNewNameState):136:136 -> <init>
    3:19:void <init>(com.android.tools.r8.naming.MethodNamingState$InternalNewNameState):127:143 -> <init>
    1:1:int incrementDictionaryIndex():153:153 -> a
    2:2:java.util.Set getUsedBy(com.android.tools.r8.graph.DexString):157:157 -> a
    3:3:com.android.tools.r8.graph.DexString getAssignedName(com.android.tools.r8.graph.DexMethod):161:161 -> a
    4:6:void addRenaming(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):165:167 -> a
    7:7:int incrementNameIndex(boolean):183:183 -> a
    8:13:boolean checkParentPublicNameCountIsLessThanOrEqual():172:177 -> a
    8:13:int incrementNameIndex(boolean):183 -> a
    14:14:int incrementNameIndex(boolean):184:184 -> a
    1:1:int getDictionaryIndex():148:148 -> b
    2:2:java.util.Set lambda$addRenaming$0(com.android.tools.r8.graph.DexString):167:167 -> b
com.android.tools.r8.naming.MethodNamingStateBase -> com.android.tools.r8.naming.C:
    java.util.Map internalStates -> a
    java.util.function.Function keyTransform -> b
    1:3:void <init>(java.util.function.Function):17:19 -> <init>
    java.lang.Object createInternalState(com.android.tools.r8.graph.DexMethod) -> a
    1:1:java.lang.Object lambda$getOrCreateInternalState$0(com.android.tools.r8.graph.DexMethod,java.lang.Object):29:29 -> a
    1:2:java.lang.Object getOrCreateInternalState(com.android.tools.r8.graph.DexMethod):28:29 -> b
com.android.tools.r8.naming.MethodReservationState -> com.android.tools.r8.naming.E:
    com.android.tools.r8.naming.MethodReservationState parentNamingState -> c
    1:2:void <init>(com.android.tools.r8.naming.MethodReservationState,java.util.function.Function):26:27 -> <init>
    1:2:java.lang.Object com.android.tools.r8.naming.MethodNamingStateBase.getInternalState(com.android.tools.r8.graph.DexMethod):23:24 -> a
    1:2:boolean isReserved(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):52 -> a
    3:8:boolean isReserved(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):52:57 -> a
    9:9:com.android.tools.r8.naming.MethodReservationState createRoot(java.util.function.Function):32:32 -> a
    10:10:com.android.tools.r8.naming.MethodReservationState createChild():36:36 -> a
    11:11:com.android.tools.r8.naming.MethodReservationState$InternalReservationState createInternalState(com.android.tools.r8.graph.DexMethod):76:76 -> a
    11:11:java.lang.Object createInternalState(com.android.tools.r8.graph.DexMethod):18 -> a
    1:4:void reserveName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod):41:44 -> b
    1:2:java.lang.Object com.android.tools.r8.naming.MethodNamingStateBase.getInternalState(com.android.tools.r8.graph.DexMethod):23:24 -> c
    1:2:java.util.Set getReservedNamesFor(com.android.tools.r8.graph.DexMethod):63 -> c
    3:9:java.util.Set getReservedNamesFor(com.android.tools.r8.graph.DexMethod):63:69 -> c
com.android.tools.r8.naming.MethodReservationState$InternalReservationState -> com.android.tools.r8.naming.D:
    java.util.Map originalToReservedNames -> a
    java.util.Set reservedNames -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():79:79 -> <clinit>
    1:3:void <init>():79:81 -> <init>
    1:1:boolean isReserved(com.android.tools.r8.graph.DexString):84:84 -> a
    2:5:java.util.Set getAssignedNamesFor(com.android.tools.r8.graph.DexMethod):88:91 -> a
    6:13:void reserveName(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString):95:102 -> a
    14:14:java.util.Set lambda$reserveName$0(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):101:101 -> a
com.android.tools.r8.naming.MinifiedNameMapPrinter -> com.android.tools.r8.naming.F:
    com.android.tools.r8.graph.DexApplication application -> a
    com.android.tools.r8.naming.NamingLens namingLens -> b
    java.util.Set seenTypes -> c
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):31:31 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):29:33 -> <init>
    1:2:java.util.List sortedCopy(java.util.List,java.util.Comparator):43:44 -> a
    3:10:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.lang.StringBuilder):49:56 -> a
    11:14:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.lang.StringBuilder):55:58 -> a
    15:18:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.lang.StringBuilder):57:60 -> a
    19:22:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.lang.StringBuilder):59:62 -> a
    23:23:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.lang.StringBuilder):61:61 -> a
    24:29:void writeType(com.android.tools.r8.graph.DexType,java.lang.StringBuilder):66:71 -> a
    24:29:void lambda$write$1(java.lang.StringBuilder,com.android.tools.r8.graph.DexType):115 -> a
    30:39:void writeFields(java.util.List,java.lang.StringBuilder):76:85 -> a
    40:44:void write(java.lang.StringBuilder):111:115 -> a
    45:45:void lambda$write$0(java.lang.StringBuilder,com.android.tools.r8.graph.DexProgramClass):113:113 -> a
    1:6:void writeMethods(java.util.List,java.lang.StringBuilder):98:103 -> b
    7:10:void writeMethod(com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.String,java.lang.StringBuilder):91:94 -> b
    7:10:void writeMethods(java.util.List,java.lang.StringBuilder):104 -> b
com.android.tools.r8.naming.MinifiedRenaming -> com.android.tools.r8.naming.G:
    java.util.Map packageRenaming -> c
    java.util.Map renaming -> d
    com.android.tools.r8.graph.AppView appView -> b
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():35:35 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming,com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming,com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming):45:45 -> <init>
    2:14:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming,com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming,com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming):39:51 -> <init>
    com.android.tools.r8.graph.DexItem lambda$getRenamedItems$2(com.android.tools.r8.graph.DexItem) -> a
    1:1:java.lang.String lookupPackageName(java.lang.String):56:56 -> a
    2:2:com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType):61:61 -> a
    3:7:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):66:70 -> a
    8:8:com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType):61:61 -> a
    8:8:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):76 -> a
    9:14:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):76:81 -> a
    15:22:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):80:87 -> a
    23:23:com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType):61:61 -> a
    23:23:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):89 -> a
    24:26:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):89:91 -> a
    27:30:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):90:93 -> a
    31:31:boolean lambda$lookupName$0(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexEncodedMethod):114:114 -> a
    32:32:com.android.tools.r8.graph.DexString lookupMethodName(com.android.tools.r8.graph.DexCallSite):126:126 -> a
    33:33:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexField):131:131 -> a
    34:37:boolean verifyNoOverlap(java.util.Map):136:139 -> a
    38:38:boolean verifyNoOverlap(java.util.Map):138:138 -> a
    39:40:void forAllRenamedTypes(java.util.function.Consumer):146:147 -> a
    41:44:java.util.Map getRenamedItems(java.lang.Class,java.util.function.Predicate,java.util.function.Function):153:156 -> a
    45:45:boolean lambda$getRenamedItems$1(java.lang.Class,java.util.function.Predicate,com.android.tools.r8.graph.DexItem):154:154 -> a
    46:50:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):171:175 -> a
    51:51:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    51:51:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):175 -> a
    52:60:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):176:184 -> a
    61:61:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):182:182 -> a
    62:72:void lambda$toString$3(java.lang.StringBuilder,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexString):193:203 -> a
    1:24:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexMethod):98:121 -> b
    1:16:java.lang.String toString():190:205 -> toString
com.android.tools.r8.naming.Minifier -> com.android.tools.r8.naming.H:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set desugaredCallSites -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():39:39 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.AppView,java.util.Set):44:46 -> <init>
    1:13:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):50:62 -> a
    14:14:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming com.android.tools.r8.naming.ClassNameMinifier.computeRenaming(com.android.tools.r8.utils.Timing):95:95 -> a
    14:14:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):63 -> a
    15:45:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):64:94 -> a
    46:46:int lambda$run$0(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):52:52 -> a
com.android.tools.r8.naming.Minifier$BaseMinificationNamingStrategy -> com.android.tools.r8.naming.H$a:
    java.util.List obfuscationDictionary -> a
    com.android.tools.r8.utils.SymbolGenerationUtils$MixedCasing mixedCasing -> c
    java.util.Set obfuscationDictionaryForLookup -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():99:99 -> <clinit>
    1:6:void <init>(java.util.List,boolean):107:112 -> <init>
    1:11:java.lang.String nextName(char[],com.android.tools.r8.naming.InternalNamingState,boolean):116:126 -> a
    12:18:java.lang.String nextName(char[],com.android.tools.r8.naming.InternalNamingState,boolean):125:131 -> a
com.android.tools.r8.naming.Minifier$MinificationClassNamingStrategy -> com.android.tools.r8.naming.H$b:
    com.android.tools.r8.graph.DexItemFactory factory -> f
    com.android.tools.r8.graph.AppView appView -> e
    1:2:void <init>(com.android.tools.r8.graph.AppView):143:144 -> <init>
    3:7:void <init>(com.android.tools.r8.graph.AppView):142:146 -> <init>
    boolean isRenamedByApplyMapping(com.android.tools.r8.graph.DexType) -> a
    1:17:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexType,char[],com.android.tools.r8.naming.InternalNamingState,java.util.function.Predicate):158:174 -> a
    18:22:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexType,char[],com.android.tools.r8.naming.InternalNamingState,java.util.function.Predicate):160:164 -> a
    23:23:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    23:23:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexType,char[],com.android.tools.r8.naming.InternalNamingState,java.util.function.Predicate):164 -> a
    24:24:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexType,char[],com.android.tools.r8.naming.InternalNamingState,java.util.function.Predicate):164:164 -> a
    1:2:com.android.tools.r8.graph.DexString reservedDescriptor(com.android.tools.r8.graph.DexType):180:181 -> b
com.android.tools.r8.naming.Minifier$MinificationPackageNamingStrategy -> com.android.tools.r8.naming.H$c:
    1:2:void <init>(com.android.tools.r8.graph.AppView):197:198 -> <init>
    3:3:void <init>(com.android.tools.r8.graph.AppView):196:196 -> <init>
com.android.tools.r8.naming.Minifier$MinifierMemberNamingStrategy -> com.android.tools.r8.naming.H$d:
    com.android.tools.r8.graph.DexItemFactory factory -> f
    com.android.tools.r8.graph.AppView appView -> e
    boolean $assertionsDisabled -> g
    1:1:void <clinit>():215:215 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.AppView):222:224 -> <init>
    1:2:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):232:233 -> a
    3:3:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    3:3:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):233 -> a
    4:4:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):234:234 -> a
    5:5:com.android.tools.r8.graph.DexString getNextName(com.android.tools.r8.naming.InternalNamingState,boolean):256:256 -> a
    5:5:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):237 -> a
    6:6:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):238:238 -> a
    7:7:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):247:247 -> a
    8:8:com.android.tools.r8.graph.DexString getNextName(com.android.tools.r8.naming.InternalNamingState,boolean):256:256 -> a
    8:8:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):250 -> a
    9:9:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):251:251 -> a
    10:14:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):261:265 -> a
    15:16:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexClass):272:273 -> a
    17:17:boolean allowMemberRenaming(com.android.tools.r8.graph.DexClass):280:280 -> a
    1:1:boolean checkAllowMemberRenaming(com.android.tools.r8.graph.DexType):284:284 -> c
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> c
    2:2:boolean checkAllowMemberRenaming(com.android.tools.r8.graph.DexType):284 -> c
    3:3:boolean checkAllowMemberRenaming(com.android.tools.r8.graph.DexType):285:285 -> c
com.android.tools.r8.naming.NamingLens -> com.android.tools.r8.naming.I:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():42:42 -> <clinit>
    1:1:void <init>():42:42 -> <init>
    boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod) -> a
    void forAllRenamedTypes(java.util.function.Consumer) -> a
    java.util.Map getRenamedItems(java.lang.Class,java.util.function.Predicate,java.util.function.Function) -> a
    com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType) -> a
    com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions) -> a
    com.android.tools.r8.graph.DexString lookupMethodName(com.android.tools.r8.graph.DexCallSite) -> a
    com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexField) -> a
    java.lang.String lookupPackageName(java.lang.String) -> a
    boolean verifyNoOverlap(java.util.Map) -> a
    1:9:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexItemFactory):57:65 -> a
    10:13:com.android.tools.r8.graph.DexMethod lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):76:79 -> a
    14:14:com.android.tools.r8.graph.DexMethod lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):76:76 -> a
    15:19:com.android.tools.r8.graph.DexProto lookupProto(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexItemFactory):83:87 -> a
    20:20:com.android.tools.r8.graph.DexProto lookupProto(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexItemFactory):83:83 -> a
    21:21:com.android.tools.r8.graph.DexType lambda$lookupProto$0(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):86:86 -> a
    22:22:com.android.tools.r8.graph.DexType[] lambda$lookupProto$1(int):87:87 -> a
    23:31:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):91:99 -> a
    32:32:com.android.tools.r8.naming.NamingLens getIdentityLens():113:113 -> a
    33:43:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):140:150 -> a
    44:47:com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexItemFactory):69:72 -> a
    44:47:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):150 -> a
    48:48:com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexItemFactory):69:69 -> a
    48:48:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):150 -> a
    49:55:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):151:157 -> a
    56:59:com.android.tools.r8.graph.DexMethod lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):76:79 -> a
    56:59:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):157 -> a
    60:60:com.android.tools.r8.graph.DexMethod lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):76:76 -> a
    60:60:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):157 -> a
    61:63:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):158:160 -> a
    boolean hasPrefixRewritingLogic() -> b
    com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexMethod) -> b
    1:2:java.lang.String lookupInternalName(com.android.tools.r8.graph.DexType):121:122 -> b
    com.android.tools.r8.graph.DexString prefixRewrittenType(com.android.tools.r8.graph.DexType) -> c
com.android.tools.r8.naming.NamingLens$1 -> com.android.tools.r8.naming.I$a:
com.android.tools.r8.naming.NamingLens$IdentityLens -> com.android.tools.r8.naming.I$b:
    1:1:void <init>(com.android.tools.r8.naming.NamingLens$1):166:166 -> <init>
    2:2:void <init>():168:168 -> <init>
    boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod) -> a
    void forAllRenamedTypes(java.util.function.Consumer) -> a
    java.lang.String lookupPackageName(java.lang.String) -> a
    boolean verifyNoOverlap(java.util.Map) -> a
    1:1:com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType):174:174 -> a
    2:2:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):179:179 -> a
    3:3:com.android.tools.r8.graph.DexString lookupMethodName(com.android.tools.r8.graph.DexCallSite):189:189 -> a
    4:4:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexField):194:194 -> a
    5:5:java.util.Map getRenamedItems(java.lang.Class,java.util.function.Predicate,java.util.function.Function):215:215 -> a
    1:1:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexMethod):184:184 -> b
com.android.tools.r8.naming.PrefixRewritingNamingLens -> com.android.tools.r8.naming.J:
    java.util.Map classRenaming -> b
    com.android.tools.r8.naming.NamingLens namingLens -> c
    boolean $assertionsDisabled -> e
    com.android.tools.r8.utils.InternalOptions options -> d
    1:1:void <clinit>():29:29 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView):47:47 -> <init>
    2:30:void <init>(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.AppView):31:59 -> <init>
    com.android.tools.r8.graph.DexItem lambda$getRenamedItems$2(com.android.tools.r8.graph.DexItem) -> a
    1:1:boolean com.android.tools.r8.ir.desugar.PrefixRewritingMapper.hasRewrittenType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):33:33 -> a
    1:1:void lambda$new$0(com.android.tools.r8.ir.desugar.PrefixRewritingMapper,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):54 -> a
    2:2:void lambda$new$0(com.android.tools.r8.ir.desugar.PrefixRewritingMapper,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):55:55 -> a
    3:3:com.android.tools.r8.naming.NamingLens createPrefixRewritingNamingLens(com.android.tools.r8.graph.AppView):36:36 -> a
    4:7:com.android.tools.r8.naming.NamingLens createPrefixRewritingNamingLens(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):41:44 -> a
    4:7:com.android.tools.r8.naming.NamingLens createPrefixRewritingNamingLens(com.android.tools.r8.graph.AppView):36 -> a
    8:11:com.android.tools.r8.naming.NamingLens createPrefixRewritingNamingLens(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):41:44 -> a
    12:12:com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType):74:74 -> a
    13:17:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):79:83 -> a
    18:22:com.android.tools.r8.graph.DexString lookupMethodName(com.android.tools.r8.graph.DexCallSite):97:101 -> a
    23:27:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexField):106:110 -> a
    28:28:boolean verifyNoOverlap(java.util.Map):115:115 -> a
    29:29:java.lang.String lookupPackageName(java.lang.String):125:125 -> a
    30:31:boolean verifyNotPrefixRewrittenPackage(java.lang.String):130:131 -> a
    30:31:java.lang.String lookupPackageName(java.lang.String):125 -> a
    32:32:java.lang.String lookupPackageName(java.lang.String):126:126 -> a
    33:33:void forAllRenamedTypes(java.util.function.Consumer):142:142 -> a
    34:34:boolean com.android.tools.r8.utils.InternalOptions.isDesugaredLibraryCompilation():324:324 -> a
    34:34:void forAllRenamedTypes(java.util.function.Consumer):142 -> a
    35:37:void forAllRenamedTypes(java.util.function.Consumer):143:145 -> a
    38:51:java.util.Map getRenamedItems(java.lang.Class,java.util.function.Predicate,java.util.function.Function):152:165 -> a
    52:55:java.util.Map getRenamedItems(java.lang.Class,java.util.function.Predicate,java.util.function.Function):163:166 -> a
    56:56:boolean lambda$getRenamedItems$1(java.util.function.Predicate,java.lang.Class,com.android.tools.r8.graph.DexType):155:155 -> a
    57:57:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):171:171 -> a
    boolean hasPrefixRewritingLogic() -> b
    1:5:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexMethod):88:92 -> b
    1:1:com.android.tools.r8.graph.DexString prefixRewrittenType(com.android.tools.r8.graph.DexType):69:69 -> c
com.android.tools.r8.naming.ProguardMap$Builder -> com.android.tools.r8.naming.K:
    1:1:void <init>():11:11 -> <init>
    com.android.tools.r8.naming.ClassNaming$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position) -> a
com.android.tools.r8.naming.ProguardMapError -> com.android.tools.r8.naming.L:
    1:1:void <init>(java.lang.String,com.android.tools.r8.position.Position):17:17 -> <init>
    1:1:com.android.tools.r8.naming.ProguardMapError duplicateSourceClass(java.lang.String,com.android.tools.r8.position.Position):21:21 -> a
    2:3:com.android.tools.r8.naming.ProguardMapError duplicateSourceMember(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):26:27 -> a
    4:5:com.android.tools.r8.naming.ProguardMapError duplicateTargetClass(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.position.Position):32:33 -> a
com.android.tools.r8.naming.ProguardMapMinifier -> com.android.tools.r8.naming.O:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.naming.SeedMapper seedMapper -> c
    java.util.Set desugaredCallSites -> d
    boolean $assertionsDisabled -> l
    com.android.tools.r8.com.google.common.collect.BiMap mappedNames -> e
    java.util.Set mappedClasses -> f
    java.util.Map defaultInterfaceMethodImplementationNames -> i
    java.util.Map additionalMethodNamings -> j
    java.util.Map additionalFieldNamings -> k
    java.util.Map memberNames -> g
    java.util.Map syntheticCompanionClasses -> h
    1:1:void <clinit>():66:66 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.SeedMapper,java.util.Set):85:85 -> <init>
    2:19:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.SeedMapper,java.util.Set):72:89 -> <init>
    1:1:int lambda$new$0(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):74:74 -> a
    2:31:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):94:123 -> a
    32:40:void computeDefaultInterfaceMethodMethods():328:336 -> a
    32:40:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):124 -> a
    41:41:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    41:41:void computeDefaultInterfaceMethodMethods():336 -> a
    41:41:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):124 -> a
    42:42:void computeDefaultInterfaceMethodMethods():338:338 -> a
    42:42:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):124 -> a
    43:47:void computeDefaultInterfaceMethodMappingsForType(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.ClassNamingForMapApplier,java.util.Map,java.util.Map):354:358 -> a
    43:47:void computeDefaultInterfaceMethodMethods():338 -> a
    43:47:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):124 -> a
    48:48:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    48:48:void computeDefaultInterfaceMethodMappingsForType(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.ClassNamingForMapApplier,java.util.Map,java.util.Map):358 -> a
    48:48:void computeDefaultInterfaceMethodMethods():338 -> a
    48:48:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):124 -> a
    49:64:void computeDefaultInterfaceMethodMappingsForType(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.ClassNamingForMapApplier,java.util.Map,java.util.Map):359:374 -> a
    49:64:void computeDefaultInterfaceMethodMethods():338 -> a
    49:64:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):124 -> a
    65:69:void computeDefaultInterfaceMethodMappingsForType(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.ClassNamingForMapApplier,java.util.Map,java.util.Map):373:377 -> a
    65:69:void computeDefaultInterfaceMethodMethods():338 -> a
    65:69:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):124 -> a
    70:70:void computeDefaultInterfaceMethodMappingsForType(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.ClassNamingForMapApplier,java.util.Map,java.util.Map):376:376 -> a
    70:70:void computeDefaultInterfaceMethodMethods():338 -> a
    70:70:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):124 -> a
    71:117:com.android.tools.r8.naming.NamingLens run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):125:171 -> a
    118:118:void lambda$run$2(java.util.ArrayDeque,com.android.tools.r8.graph.DexType):115:115 -> a
    119:119:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    119:119:void lambda$run$2(java.util.ArrayDeque,com.android.tools.r8.graph.DexType):115 -> a
    120:121:void lambda$run$2(java.util.ArrayDeque,com.android.tools.r8.graph.DexType):116:117 -> a
    122:123:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):177:178 -> a
    124:124:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    124:124:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):178 -> a
    125:147:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):181:203 -> a
    148:163:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):200:215 -> a
    164:167:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):214:217 -> a
    168:168:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    168:168:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):217 -> a
    169:174:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):218:223 -> a
    175:188:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):218:231 -> a
    189:202:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):230:243 -> a
    203:203:boolean com.android.tools.r8.graph.DexClass.isAbstract():626:626 -> a
    203:203:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):243 -> a
    204:217:void computeMapping(com.android.tools.r8.graph.DexType,java.util.Deque):244:257 -> a
    218:218:void lambda$computeMapping$4(java.util.Deque,com.android.tools.r8.graph.DexType):252:252 -> a
    219:225:void addNonPrivateInterfaceMappings(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.graph.DexType[]):263:269 -> a
    226:226:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    226:226:void addNonPrivateInterfaceMappings(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.graph.DexType[]):269 -> a
    227:227:void addNonPrivateInterfaceMappings(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.graph.DexType[]):271:271 -> a
    228:228:void lambda$addNonPrivateInterfaceMappings$6(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.naming.MemberNaming):267:267 -> a
    229:234:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):281:286 -> a
    235:237:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):285:287 -> a
    238:238:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    238:238:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):287 -> a
    239:245:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):288:294 -> a
    246:248:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):293:295 -> a
    249:249:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):180:180 -> a
    249:249:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):295 -> a
    250:251:void addMemberNamings(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.MemberNaming,java.util.Map,boolean):296:297 -> a
    252:253:void addMemberNaming(com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.MemberNaming,java.util.Map):304:305 -> a
    254:259:void addMemberNaming(com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.MemberNaming,java.util.Map):304:309 -> a
    260:267:void checkAndAddMappedNames(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,com.android.tools.r8.position.Position):314:321 -> a
    268:268:void checkAndAddMappedNames(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,com.android.tools.r8.position.Position):320:320 -> a
    269:273:void checkAndAddMappedNames(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,com.android.tools.r8.position.Position):319:323 -> a
    1:1:int lambda$run$1(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):97:97 -> b
    2:2:void lambda$computeMapping$3(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.naming.MemberNaming):196:196 -> b
    3:3:void lambda$computeMapping$5(java.util.Deque,com.android.tools.r8.graph.DexType):257:257 -> b
com.android.tools.r8.naming.ProguardMapMinifier$ApplyMappingClassNamingStrategy -> com.android.tools.r8.naming.M:
    boolean $assertionsDisabled -> h
    java.util.Map mappings -> g
    1:1:void <clinit>():382:382 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):387:388 -> <init>
    1:3:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexType,char[],com.android.tools.r8.naming.InternalNamingState,java.util.function.Predicate):397:399 -> a
    4:4:boolean isRenamedByApplyMapping(com.android.tools.r8.graph.DexType):429:429 -> a
    1:1:com.android.tools.r8.graph.DexString reservedDescriptor(com.android.tools.r8.graph.DexType):407:407 -> b
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    2:2:com.android.tools.r8.graph.DexString reservedDescriptor(com.android.tools.r8.graph.DexType):407 -> b
    3:18:com.android.tools.r8.graph.DexString reservedDescriptor(com.android.tools.r8.graph.DexType):409:424 -> b
com.android.tools.r8.naming.ProguardMapMinifier$ApplyMappingMemberNamingStrategy -> com.android.tools.r8.naming.N:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.DexItemFactory factory -> i
    java.util.Map mappedNames -> h
    1:1:void <clinit>():433:433 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):441:444 -> <init>
    boolean allowMemberRenaming(com.android.tools.r8.graph.DexClass) -> a
    1:1:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):452:452 -> a
    2:2:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> a
    2:2:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):452 -> a
    3:13:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):453:463 -> a
    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    14:14:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):464 -> a
    15:15:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):464:464 -> a
    16:16:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):463:463 -> a
    17:17:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):473:473 -> a
    18:18:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):180:180 -> a
    18:18:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):475 -> a
    19:19:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):475:475 -> a
    20:20:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):473:473 -> a
    21:23:com.android.tools.r8.graph.DexString nextName(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate,com.android.tools.r8.utils.TriFunction):491:493 -> a
    24:24:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    24:24:com.android.tools.r8.graph.DexString nextName(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate,com.android.tools.r8.utils.TriFunction):493 -> a
    25:29:com.android.tools.r8.graph.DexString nextName(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate,com.android.tools.r8.utils.TriFunction):494:498 -> a
    30:36:void reportReservationError(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString):547:553 -> a
    30:36:com.android.tools.r8.graph.DexString nextName(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate,com.android.tools.r8.utils.TriFunction):498 -> a
    37:37:void reportReservationError(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString):550:550 -> a
    37:37:com.android.tools.r8.graph.DexString nextName(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate,com.android.tools.r8.utils.TriFunction):498 -> a
    38:40:com.android.tools.r8.graph.DexString nextName(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate,com.android.tools.r8.utils.TriFunction):502:504 -> a
    41:41:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):509:509 -> a
    42:42:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexClass):514:514 -> a
    43:61:com.android.tools.r8.graph.DexString getReservedName(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexClass):518:536 -> a
    1:1:com.android.tools.r8.graph.DexString lambda$next$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):461:461 -> b
    2:2:com.android.tools.r8.graph.DexString lambda$next$1(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.InternalNamingState,java.util.function.BiPredicate):480:480 -> b
com.android.tools.r8.naming.ProguardMapReader -> com.android.tools.r8.naming.Q:
    java.io.BufferedReader reader -> a
    boolean $assertionsDisabled -> f
    int lineNo -> b
    int lineOffset -> c
    java.util.HashMap cache -> e
    java.lang.String line -> d
    1:1:void <clinit>():54:54 -> <clinit>
    1:264:void <init>(java.io.BufferedReader):65:328 -> <init>
    265:265:void <init>(java.io.BufferedReader):66:66 -> <init>
    1:1:int access$000(com.android.tools.r8.naming.ProguardMapReader):54:54 -> a
    2:3:char peekChar(int):79:80 -> a
    4:8:boolean isEmptyOrCommentLine(java.lang.String):118:122 -> a
    9:9:boolean hasLine():139:139 -> a
    10:14:void expect(char):161:165 -> a
    15:15:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> a
    15:15:void expect(char):165 -> a
    16:16:void expect(char):165:165 -> a
    17:17:void expect(char):162:162 -> a
    18:20:void parse(com.android.tools.r8.naming.ProguardMap$Builder):172:174 -> a
    21:31:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):181:191 -> a
    21:31:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    32:37:boolean acceptString(java.lang.String):413:418 -> a
    32:37:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):191 -> a
    32:37:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    38:40:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):194:196 -> a
    38:40:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    41:43:boolean acceptArrow():403:405 -> a
    41:43:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):197 -> a
    41:43:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    44:47:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):199:202 -> a
    44:47:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    48:48:com.android.tools.r8.position.TextPosition getPosition():292:292 -> a
    48:48:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):204 -> a
    48:48:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    49:51:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):204:206 -> a
    49:51:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    52:64:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):221:233 -> a
    52:64:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    52:64:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    65:66:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):228:229 -> a
    65:66:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    65:66:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    67:67:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> a
    67:67:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):229 -> a
    67:67:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    67:67:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    68:74:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):229:235 -> a
    68:74:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    68:74:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    75:75:com.android.tools.r8.naming.MemberNaming$Signature parseSignature():366:366 -> a
    75:75:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):236 -> a
    75:75:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    75:75:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    76:78:void expectWhitespace():151:153 -> a
    76:78:com.android.tools.r8.naming.MemberNaming$Signature parseSignature():367 -> a
    76:78:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):236 -> a
    76:78:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    76:78:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    79:103:com.android.tools.r8.naming.MemberNaming$Signature parseSignature():368:392 -> a
    79:103:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):236 -> a
    79:103:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    79:103:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    104:111:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):237:244 -> a
    104:111:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    104:111:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    112:112:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> a
    112:112:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):244 -> a
    112:112:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    112:112:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    113:117:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):244:248 -> a
    113:117:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    113:117:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    118:118:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> a
    118:118:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):248 -> a
    118:118:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    118:118:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    119:122:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):248:251 -> a
    119:122:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    119:122:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    123:124:void skipArrow():398:399 -> a
    123:124:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):252 -> a
    123:124:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    123:124:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    125:149:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):253:277 -> a
    125:149:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    125:149:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    150:150:com.android.tools.r8.position.TextPosition getPosition():292:292 -> a
    150:150:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):277 -> a
    150:150:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    150:150:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    151:160:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):277:286 -> a
    151:160:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    151:160:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    161:161:void expectWhitespace():156:156 -> a
    161:161:com.android.tools.r8.naming.MemberNaming$Signature parseSignature():367 -> a
    161:161:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):236 -> a
    161:161:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):207 -> a
    161:161:void parse(com.android.tools.r8.naming.ProguardMap$Builder):175 -> a
    162:174:java.lang.String parseType(boolean):350:362 -> a
    boolean isSimpleDigit(char) -> b
    1:1:int access$100(com.android.tools.r8.naming.ProguardMapReader):54:54 -> b
    2:2:boolean hasNext():85:85 -> b
    3:14:void skipIdentifier(boolean):299:310 -> b
    15:15:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> b
    15:15:void skipIdentifier(boolean):310 -> b
    16:28:void skipIdentifier(boolean):310:322 -> b
    29:29:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> b
    29:29:void skipIdentifier(boolean):322 -> b
    30:30:void skipIdentifier(boolean):322:322 -> b
    31:31:void skipIdentifier(boolean):315:315 -> b
    32:36:java.lang.String substring(int):331:335 -> b
    1:12:java.lang.Object maybeParseRangeOrInt():428:439 -> c
    1:2:void close():60:61 -> close
    1:5:char nextChar():99:103 -> d
    6:6:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> d
    6:6:char nextChar():103 -> d
    7:7:char nextChar():103:103 -> d
    1:5:int nextCodePoint():90:94 -> e
    6:6:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> e
    6:6:int nextCodePoint():94 -> e
    7:7:int nextCodePoint():94:94 -> e
    1:4:boolean nextLine():108:111 -> f
    5:5:boolean nextLine():109:109 -> f
    6:6:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> f
    6:6:boolean nextLine():109 -> f
    7:7:boolean nextLine():109:109 -> f
    1:7:java.lang.String parseMethodName():340:346 -> g
    1:7:int parseNumber():444:450 -> h
    8:8:int parseNumber():445:445 -> h
    9:9:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):462:462 -> h
    9:9:int parseNumber():445 -> h
    10:10:int parseNumber():445:445 -> h
    1:1:int peekCodePoint():75:75 -> i
    1:6:boolean skipLine():130:135 -> j
    1:2:void skipWhitespace():144:145 -> k
com.android.tools.r8.naming.ProguardMapReader$ParseException -> com.android.tools.r8.naming.P:
    com.android.tools.r8.naming.ProguardMapReader this$0 -> e
    int lineOffset -> b
    boolean eol -> c
    int lineNo -> a
    java.lang.String msg -> d
    1:5:void <init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String,boolean):465:469 -> <init>
    1:4:java.lang.String toString():474:477 -> toString
com.android.tools.r8.naming.ProguardMapSupplier -> com.android.tools.r8.naming.S:
    com.android.tools.r8.naming.ClassNameMapper classNameMapper -> b
    java.lang.Integer minApiLevel -> e
    com.android.tools.r8.naming.NamingLens namingLens -> c
    int PG_MAP_ID_LENGTH -> f
    boolean $assertionsDisabled -> g
    boolean useClassNameMapper -> a
    com.android.tools.r8.graph.DexApplication application -> d
    1:10:void <clinit>():17:26 -> <clinit>
    1:6:void <init>(boolean,com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions):54:59 -> <init>
    1:1:com.android.tools.r8.naming.ProguardMapSupplier fromClassNameMapper(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.utils.InternalOptions):30:30 -> a
    2:2:boolean lambda$getProguardMapAndId$0(int):76:76 -> a
    3:9:java.lang.String getBody():107:113 -> a
    3:9:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():69 -> a
    10:10:boolean com.android.tools.r8.naming.NamingLens.isIdentityLens():117:117 -> a
    10:10:java.lang.String getBody():113 -> a
    10:10:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():69 -> a
    11:24:java.lang.String getBody():114:127 -> a
    11:24:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():69 -> a
    25:25:java.lang.String getBody():125:125 -> a
    25:25:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():69 -> a
    26:52:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():70:96 -> a
    53:61:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():95:103 -> a
    62:62:boolean com.android.tools.r8.naming.NamingLens.isIdentityLens():117:117 -> a
    62:62:java.lang.String getBody():113 -> a
    62:62:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():69 -> a
com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId -> com.android.tools.r8.naming.S$a:
    java.lang.String map -> a
    java.lang.String id -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():38:38 -> <clinit>
    1:4:void <init>(java.lang.String,java.lang.String):42:45 -> <init>
com.android.tools.r8.naming.Range -> com.android.tools.r8.naming.T:
    int to -> b
    int from -> a
    1:3:void <init>(int,int):12:14 -> <init>
    1:1:boolean contains(int):19:19 -> a
    1:6:boolean equals(java.lang.Object):32:37 -> equals
    1:2:int hashCode():42:43 -> hashCode
    1:1:java.lang.String toString():24:24 -> toString
com.android.tools.r8.naming.ReservedFieldNamingState -> com.android.tools.r8.naming.V:
    1:1:void <init>(com.android.tools.r8.graph.AppView):17:17 -> <init>
    1:2:void includeReservations(com.android.tools.r8.naming.ReservedFieldNamingState):34:35 -> a
    3:6:com.android.tools.r8.graph.DexType com.android.tools.r8.naming.FieldNamingStateBase.getInternalStateKey(com.android.tools.r8.graph.DexType):38:41 -> a
    3:6:java.lang.Object com.android.tools.r8.naming.FieldNamingStateBase.getInternalState(com.android.tools.r8.graph.DexType):24 -> a
    3:6:com.android.tools.r8.graph.DexString getReservedByName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):25 -> a
    3:6:boolean isReserved(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):21 -> a
    7:7:java.lang.Object com.android.tools.r8.naming.FieldNamingStateBase.getInternalState(com.android.tools.r8.graph.DexType):25:25 -> a
    7:7:com.android.tools.r8.graph.DexString getReservedByName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):25 -> a
    7:7:boolean isReserved(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):21 -> a
    8:9:com.android.tools.r8.graph.DexString getReservedByName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):25:26 -> a
    8:9:boolean isReserved(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):21 -> a
    10:10:com.android.tools.r8.naming.ReservedFieldNamingState$InternalState createInternalState():47:47 -> a
    10:10:java.lang.Object createInternalState():14 -> a
    1:2:void includeReservationsFromBelow(com.android.tools.r8.naming.ReservedFieldNamingState):40:41 -> b
com.android.tools.r8.naming.ReservedFieldNamingState$InternalState -> com.android.tools.r8.naming.U:
    java.util.Map reservedNamesDirect -> a
    java.util.Map reservedNamesBelow -> b
    1:4:void <init>():50:53 -> <init>
    1:2:com.android.tools.r8.graph.DexString getReservedByName(com.android.tools.r8.graph.DexString):56:57 -> a
    3:3:void markReservedDirectly(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):61:61 -> a
    4:4:void includeReservations(com.android.tools.r8.naming.ReservedFieldNamingState$InternalState):65:65 -> a
    1:2:void includeReservationsFromBelow(com.android.tools.r8.naming.ReservedFieldNamingState$InternalState):69:70 -> b
com.android.tools.r8.naming.SeedMapper -> com.android.tools.r8.naming.W:
    com.android.tools.r8.com.google.common.collect.ImmutableMap mappings -> a
    com.android.tools.r8.utils.Reporter reporter -> b
    1:1:void <init>(java.util.Map,com.android.tools.r8.utils.Reporter,com.android.tools.r8.naming.SeedMapper$1):36:36 -> <init>
    2:9:void <init>(java.util.Map,com.android.tools.r8.utils.Reporter):87:94 -> <init>
    1:1:com.android.tools.r8.naming.SeedMapper seedMapperFromFile(com.android.tools.r8.utils.Reporter,java.nio.file.Path):81:81 -> a
    2:3:com.android.tools.r8.naming.SeedMapper seedMapperFromInputStream(com.android.tools.r8.utils.Reporter,java.io.InputStream):72:73 -> a
    2:3:com.android.tools.r8.naming.SeedMapper seedMapperFromFile(com.android.tools.r8.utils.Reporter,java.nio.file.Path):81 -> a
    4:4:com.android.tools.r8.naming.SeedMapper$Builder builder(com.android.tools.r8.utils.Reporter):67:67 -> a
    4:4:com.android.tools.r8.naming.SeedMapper seedMapperFromInputStream(com.android.tools.r8.utils.Reporter,java.io.InputStream):74 -> a
    4:4:com.android.tools.r8.naming.SeedMapper seedMapperFromFile(com.android.tools.r8.utils.Reporter,java.nio.file.Path):81 -> a
    5:7:com.android.tools.r8.naming.SeedMapper seedMapperFromInputStream(com.android.tools.r8.utils.Reporter,java.io.InputStream):75:77 -> a
    5:7:com.android.tools.r8.naming.SeedMapper seedMapperFromFile(com.android.tools.r8.utils.Reporter,java.nio.file.Path):81 -> a
    8:12:com.android.tools.r8.naming.SeedMapper seedMapperFromInputStream(com.android.tools.r8.utils.Reporter,java.io.InputStream):73:77 -> a
    8:12:com.android.tools.r8.naming.SeedMapper seedMapperFromFile(com.android.tools.r8.utils.Reporter,java.nio.file.Path):81 -> a
    13:13:com.android.tools.r8.naming.ClassNamingForMapApplier getClassNaming(com.android.tools.r8.graph.DexType):136:136 -> a
    14:14:java.util.Set getKeyset():140:140 -> a
    15:15:com.android.tools.r8.naming.ClassNamingForMapApplier getMapping(java.lang.String):144:144 -> a
    1:10:void verifyMappingsAreConflictFree():98:107 -> b
    11:11:void verifyMappingsAreConflictFree():104:104 -> b
    12:35:void verifyMappingsAreConflictFree():103:126 -> b
com.android.tools.r8.naming.SeedMapper$1 -> com.android.tools.r8.naming.W$a:
com.android.tools.r8.naming.SeedMapper$Builder -> com.android.tools.r8.naming.W$b:
    java.util.Map map -> a
    com.android.tools.r8.utils.Reporter reporter -> b
    1:1:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.naming.SeedMapper$1):38:38 -> <init>
    2:2:void <init>(com.android.tools.r8.utils.Reporter):42:42 -> <init>
    3:7:void <init>(com.android.tools.r8.utils.Reporter):39:43 -> <init>
    1:4:com.android.tools.r8.naming.ClassNamingForMapApplier$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):49:52 -> a
    1:4:com.android.tools.r8.naming.ClassNaming$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):38 -> a
    5:8:com.android.tools.r8.naming.ClassNamingForMapApplier$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):51:54 -> a
    5:8:com.android.tools.r8.naming.ClassNaming$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):38 -> a
    9:10:com.android.tools.r8.naming.SeedMapper build():61:62 -> a
com.android.tools.r8.naming.SourceFileRewriter -> com.android.tools.r8.naming.X:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():21:21 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.AppView):25:26 -> <init>
    1:14:void run():30:43 -> a
    15:33:void lambda$run$2(com.android.tools.r8.graph.DexEncodedMethod):45:63 -> a
    34:34:boolean lambda$run$0(com.android.tools.r8.graph.DexDebugEvent):60:60 -> a
    35:35:com.android.tools.r8.graph.DexDebugEvent[] lambda$run$1(int):61:61 -> a
com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo -> com.android.tools.r8.naming.Y.b:
    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo TYPE_NAME_INSTANCE -> g
    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo SIMPLE_NAME_INSTANCE -> f
    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping mapping -> b
    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo CANONICAL_NAME_INSTANCE -> c
    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo NONE_INSTANCE -> e
    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo NAME_INSTANCE -> d
    int arrayDepth -> a
    1:1:void <clinit>():88:88 -> <clinit>
    2:2:void <init>(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):107:107 -> <clinit>
    2:2:void <clinit>():88 -> <clinit>
    3:6:void <clinit>():88:91 -> <clinit>
    7:7:void <init>(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):107:107 -> <clinit>
    7:7:void <clinit>():91 -> <clinit>
    8:11:void <clinit>():91:94 -> <clinit>
    12:12:void <init>(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):107:107 -> <clinit>
    12:12:void <clinit>():94 -> <clinit>
    13:16:void <clinit>():94:97 -> <clinit>
    17:17:void <init>(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):107:107 -> <clinit>
    17:17:void <clinit>():97 -> <clinit>
    18:21:void <clinit>():97:100 -> <clinit>
    22:22:void <init>(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):107:107 -> <clinit>
    22:22:void <clinit>():100 -> <clinit>
    23:23:void <clinit>():100:100 -> <clinit>
    1:3:void <init>(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping,int):110:112 -> <init>
    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo asClassNameComputationInfo() -> a
    1:2:com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo create(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping,int):117:118 -> a
    3:15:com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo getInstance(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):122:134 -> a
    16:18:com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo getInstance(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):128:130 -> a
    19:27:com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo getInstance(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):124:132 -> a
    28:28:com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo getInstance(com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping):126:126 -> a
    29:32:com.android.tools.r8.graph.DexString internalComputeNameFor(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.naming.NamingLens):155:158 -> a
    33:33:com.android.tools.r8.graph.DexString internalComputeNameFor(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.naming.NamingLens):155:155 -> a
    boolean isClassNameComputationInfo() -> c
    1:1:boolean needsToComputeName():144:144 -> e
    2:2:boolean com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping.needsToComputeClassName():30:30 -> e
    2:2:boolean needsToComputeName():144 -> e
    1:5:boolean equals(java.lang.Object):174:178 -> equals
    1:1:boolean needsToRegisterReference():149:149 -> f
    2:2:boolean com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping.needsToRegisterTypeReference():34:34 -> f
    2:2:boolean needsToRegisterReference():149 -> f
    1:1:com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo none():139:139 -> g
    1:1:int hashCode():183:183 -> hashCode
com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping -> com.android.tools.r8.naming.Y.a:
    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping NONE -> a
    boolean $assertionsDisabled -> g
    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping NAME -> b
    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping TYPE_NAME -> c
    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping CANONICAL_NAME -> d
    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping[] $VALUES -> f
    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo$ClassNameMapping SIMPLE_NAME -> e
    1:6:void <clinit>():22:27 -> <clinit>
    7:7:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(java.lang.String,int):22:22 -> <init>
    1:39:com.android.tools.r8.graph.DexString map(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexItemFactory,int):44:82 -> a
    40:49:com.android.tools.r8.graph.DexString map(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexItemFactory,int):68:77 -> a
    50:51:java.lang.String com.android.tools.r8.utils.DescriptorUtils.getCanonicalNameFromDescriptor(java.lang.String):286:287 -> a
    50:51:com.android.tools.r8.graph.DexString map(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexItemFactory,int):61 -> a
    52:52:com.android.tools.r8.graph.DexString map(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexItemFactory,int):63:63 -> a
    53:53:com.android.tools.r8.graph.DexString map(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexItemFactory,int):54:54 -> a
    54:92:com.android.tools.r8.graph.DexString map(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexItemFactory,int):46:84 -> a
com.android.tools.r8.naming.dexitembasedstring.FieldNameComputationInfo -> com.android.tools.r8.naming.Y.c:
    com.android.tools.r8.naming.dexitembasedstring.FieldNameComputationInfo FIELD_NAME_INSTANCE -> a
    1:1:void <clinit>():15:15 -> <clinit>
    1:1:void <init>():18:18 -> <init>
    com.android.tools.r8.naming.dexitembasedstring.FieldNameComputationInfo asFieldNameComputationInfo() -> b
    boolean isFieldNameComputationInfo() -> d
    boolean needsToComputeName() -> e
    boolean needsToRegisterReference() -> f
    1:1:com.android.tools.r8.naming.dexitembasedstring.FieldNameComputationInfo forFieldName():21:21 -> g
com.android.tools.r8.naming.dexitembasedstring.NameComputationInfo -> com.android.tools.r8.naming.Y.d:
    1:1:void <init>():12:12 -> <init>
    com.android.tools.r8.naming.dexitembasedstring.ClassNameComputationInfo asClassNameComputationInfo() -> a
    1:4:com.android.tools.r8.graph.DexString computeNameFor(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.naming.NamingLens):16:19 -> a
    5:5:com.android.tools.r8.graph.DexString com.android.tools.r8.naming.dexitembasedstring.FieldNameComputationInfo.internalComputeNameFor(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.naming.NamingLens):32:32 -> a
    5:5:com.android.tools.r8.graph.DexString computeNameFor(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.naming.NamingLens):19 -> a
    6:11:com.android.tools.r8.graph.DexString computeNameFor(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.naming.NamingLens):21:26 -> a
    com.android.tools.r8.naming.dexitembasedstring.FieldNameComputationInfo asFieldNameComputationInfo() -> b
    boolean isClassNameComputationInfo() -> c
    boolean isFieldNameComputationInfo() -> d
    boolean needsToComputeName() -> e
    boolean needsToRegisterReference() -> f
com.android.tools.r8.naming.signature.GenericSignatureAction -> com.android.tools.r8.naming.Z.a:
    void parsedIdentifier(java.lang.String) -> a
    java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String) -> a
    void parsedSymbol(char) -> a
    java.lang.Object parsedTypeName(java.lang.String,com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition) -> a
    void stop() -> a
    void start() -> b
com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition -> com.android.tools.r8.naming.Z.a$a:
    com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition MEMBER_ANNOTATION -> c
    com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition ENCLOSING_INNER_OR_TYPE_ANNOTATION -> b
    com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition CLASS_SUPER_OR_INTERFACE_ANNOTATION -> a
    1:3:void <clinit>():13:15 -> <clinit>
    1:1:void <init>(java.lang.String,int):12:12 -> <init>
com.android.tools.r8.naming.signature.GenericSignatureParser -> com.android.tools.r8.naming.Z.b:
    com.android.tools.r8.naming.signature.GenericSignatureAction actions -> a
    char[] buffer -> e
    int pos -> f
    boolean $assertionsDisabled -> g
    char symbol -> b
    java.lang.String identifier -> c
    boolean eof -> d
    1:1:void <clinit>():52:52 -> <clinit>
    1:2:void <init>(com.android.tools.r8.naming.signature.GenericSignatureAction):74:75 -> <init>
    1:2:void parseClassSignature(java.lang.String):80:81 -> a
    3:10:void parseClassSignature():142:149 -> a
    3:10:void parseClassSignature(java.lang.String):82 -> a
    11:18:void parseClassSignature(java.lang.String):83:90 -> a
    19:19:void parseClassSignature(java.lang.String):85:85 -> a
    20:49:void parseClassTypeSignature(com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition):216:245 -> a
    50:60:void parseMethodTypeSignature():317:327 -> a
    61:65:void updateReturnType():348:352 -> a
    61:65:void parseMethodTypeSignature():329 -> a
    66:77:void parseMethodTypeSignature():331:342 -> a
    78:84:void expect(char):377:383 -> a
    85:85:void expect(char):378:378 -> a
    86:88:void parseError(java.lang.String,int):442:444 -> a
    1:11:void parseFieldSignature(java.lang.String):112:122 -> b
    12:12:void parseFieldSignature(java.lang.String):117:117 -> b
    13:24:void parseOptFormalTypeParameters():156:167 -> b
    25:39:void parseFieldTypeSignature(com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition):195:209 -> b
    40:40:void parseFieldTypeSignature(com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition):206:206 -> b
    41:41:void parseFieldTypeSignature(com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition):197:197 -> b
    1:11:void parseMethodSignature(java.lang.String):96:106 -> c
    12:12:void parseMethodSignature(java.lang.String):101:101 -> c
    13:27:void updateTypeSignature(com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition):296:310 -> c
    28:29:void updateTypeSignature(com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition):305:306 -> c
    30:52:void scanIdentifier():403:425 -> c
    53:64:void scanIdentifier():418:429 -> c
    65:65:void parseError():438:438 -> c
    65:65:void scanIdentifier():430 -> c
    66:66:void scanIdentifier():433:433 -> c
    1:6:void setInput(java.lang.String):127:132 -> d
    7:17:void scanSymbol():362:372 -> d
    1:17:void updateFormalTypeParameter():173:189 -> e
    1:11:void updateOptTypeArguments():250:260 -> f
    1:13:void updateTypeArgument():266:278 -> g
    1:9:void updateTypeVariableSignature():284:292 -> h
com.android.tools.r8.naming.signature.GenericSignatureRewriter -> com.android.tools.r8.naming.Z.e:
    java.util.Map renaming -> b
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> d
    com.android.tools.r8.utils.Reporter reporter -> c
    1:1:void <clinit>():30:30 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):37:37 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):41:44 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$100(com.android.tools.r8.naming.signature.GenericSignatureRewriter):30:30 -> a
    2:25:void run(java.lang.Iterable):48:71 -> a
    26:27:void lambda$run$2(com.android.tools.r8.naming.signature.GenericSignatureParser,com.android.tools.r8.naming.signature.GenericSignatureRewriter$GenericSignatureCollector,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField):65:66 -> a
    28:29:void lambda$run$4(com.android.tools.r8.naming.signature.GenericSignatureParser,com.android.tools.r8.naming.signature.GenericSignatureRewriter$GenericSignatureCollector,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):73:74 -> a
    30:68:com.android.tools.r8.graph.DexAnnotationSet rewriteGenericSignatures(com.android.tools.r8.graph.DexAnnotationSet,java.util.function.Consumer,java.util.function.Supplier,java.util.function.BiConsumer):91:129 -> a
    69:74:void parseError(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.origin.Origin,java.lang.String,java.lang.reflect.GenericSignatureFormatError):134:139 -> a
    75:75:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> a
    75:75:void parseError(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.origin.Origin,java.lang.String,java.lang.reflect.GenericSignatureFormatError):139 -> a
    76:89:void parseError(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.origin.Origin,java.lang.String,java.lang.reflect.GenericSignatureFormatError):139:152 -> a
    90:90:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():716:716 -> a
    90:90:void lambda$run$0(com.android.tools.r8.graph.DexProgramClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):62 -> a
    91:91:void lambda$run$0(com.android.tools.r8.graph.DexProgramClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):62:62 -> a
    92:92:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():716:716 -> a
    92:92:void lambda$run$1(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):70 -> a
    93:93:void lambda$run$1(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):70:70 -> a
    94:94:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():716:716 -> a
    94:94:void lambda$run$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):78 -> a
    95:95:void lambda$run$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):78:78 -> a
    1:1:java.util.Map access$200(com.android.tools.r8.naming.signature.GenericSignatureRewriter):30:30 -> b
    1:1:com.android.tools.r8.utils.Reporter access$300(com.android.tools.r8.naming.signature.GenericSignatureRewriter):30:30 -> c
com.android.tools.r8.naming.signature.GenericSignatureRewriter$1 -> com.android.tools.r8.naming.Z.c:
com.android.tools.r8.naming.signature.GenericSignatureRewriter$GenericSignatureCollector -> com.android.tools.r8.naming.Z.d:
    com.android.tools.r8.naming.signature.GenericSignatureRewriter this$0 -> d
    com.android.tools.r8.graph.DexProgramClass currentClassContext -> b
    boolean $assertionsDisabled -> e
    java.lang.StringBuilder renamedSignature -> a
    com.android.tools.r8.graph.DexType lastWrittenType -> c
    1:1:void <clinit>():155:155 -> <clinit>
    1:4:void <init>(com.android.tools.r8.naming.signature.GenericSignatureRewriter):155:158 -> <init>
    5:5:void <init>(com.android.tools.r8.naming.signature.GenericSignatureRewriter,com.android.tools.r8.naming.signature.GenericSignatureRewriter$1):155:155 -> <init>
    void stop() -> a
    1:1:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):155:155 -> a
    2:12:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):235:245 -> a
    2:12:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):155 -> a
    13:13:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):244:244 -> a
    13:13:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):155 -> a
    14:21:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):243:250 -> a
    14:21:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):155 -> a
    22:38:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):249:265 -> a
    22:38:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):155 -> a
    39:48:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):262:271 -> a
    39:48:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):155 -> a
    49:49:void setCurrentClassContext(com.android.tools.r8.graph.DexProgramClass):165:165 -> a
    50:59:void parsedSymbol(char):170:179 -> a
    60:60:boolean lambda$parsedSymbol$0(java.lang.Character):176:176 -> a
    61:61:void parsedIdentifier(java.lang.String):184:184 -> a
    62:87:com.android.tools.r8.graph.DexType parsedTypeName(java.lang.String,com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition):189:214 -> a
    62:87:java.lang.Object parsedTypeName(java.lang.String,com.android.tools.r8.naming.signature.GenericSignatureAction$ParserPosition):155 -> a
    88:92:boolean removeWrittenCharacter(java.util.function.Predicate):219:223 -> a
    1:1:boolean lambda$removeWrittenClassCharacter$1(java.lang.Character):228:228 -> b
    2:2:void start():278:278 -> b
    1:1:java.lang.String getRenamedSignature():161:161 -> c
    1:1:void removeWrittenClassCharacter():228:228 -> d
com.android.tools.r8.optimize.ClassAndMemberPublicizer -> com.android.tools.r8.z.a:
    com.android.tools.r8.graph.DexApplication application -> a
    com.android.tools.r8.ir.optimize.MethodPoolCollection methodPoolCollection -> c
    com.android.tools.r8.optimize.PublicizerLense$PublicizedLenseBuilder lenseBuilder -> d
    com.android.tools.r8.graph.AppView appView -> b
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):37:37 -> <init>
    2:8:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):34:40 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):57:57 -> a
    2:12:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):63:73 -> a
    2:12:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):57 -> a
    13:37:void publicizeType(com.android.tools.r8.graph.DexType):77:101 -> a
    38:44:void publicizeType(com.android.tools.r8.graph.DexType):99:105 -> a
    45:45:void lambda$publicizeType$0(com.android.tools.r8.graph.DexEncodedField):82:82 -> a
    46:90:boolean publicizeMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):109:153 -> a
    46:90:void lambda$publicizeType$1(com.android.tools.r8.graph.DexClass,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):87 -> a
    91:91:boolean publicizeMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):114:114 -> a
    91:91:void lambda$publicizeType$1(com.android.tools.r8.graph.DexClass,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):87 -> a
    92:92:void lambda$publicizeType$1(com.android.tools.r8.graph.DexClass,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):88:88 -> a
com.android.tools.r8.optimize.InvokeSingleTargetExtractor -> com.android.tools.r8.z.c:
    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind kind -> a
    com.android.tools.r8.graph.DexMethod target -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():12:12 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory):17:17 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexItemFactory):13:13 -> <init>
    1:7:boolean setTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind):21:27 -> a
    8:8:com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind getKind():42:42 -> a
    1:1:com.android.tools.r8.graph.DexMethod getTarget():38:38 -> b
    1:1:boolean invalid():33:33 -> c
    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):77:77 -> registerInstanceFieldRead
    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):72:72 -> registerInstanceFieldWrite
    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):52:52 -> registerInvokeDirect
    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):62:62 -> registerInvokeInterface
    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):57:57 -> registerInvokeStatic
    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):67:67 -> registerInvokeSuper
    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):47:47 -> registerInvokeVirtual
    1:1:boolean registerNewInstance(com.android.tools.r8.graph.DexType):82:82 -> registerNewInstance
    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):87:87 -> registerStaticFieldRead
    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):92:92 -> registerStaticFieldWrite
    1:1:boolean registerTypeReference(com.android.tools.r8.graph.DexType):97:97 -> registerTypeReference
com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind -> com.android.tools.r8.z.b:
    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind ILLEGAL -> d
    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind NONE -> e
    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind STATIC -> b
    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind SUPER -> c
    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind VIRTUAL -> a
    1:5:void <clinit>():101:105 -> <clinit>
    1:1:void <init>(java.lang.String,int):100:100 -> <init>
com.android.tools.r8.optimize.MemberRebindingAnalysis -> com.android.tools.r8.z.d:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.optimize.MemberRebindingLense$Builder builder -> d
    com.android.tools.r8.utils.InternalOptions options -> c
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.GraphLense lense -> b
    1:1:void <clinit>():27:27 -> <clinit>
    1:6:void <init>(com.android.tools.r8.graph.AppView):35:40 -> <init>
    1:1:com.android.tools.r8.graph.DexMethod validTargetFor(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):44:44 -> a
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    2:2:com.android.tools.r8.graph.DexMethod validTargetFor(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):44 -> a
    3:14:com.android.tools.r8.graph.DexMethod validTargetFor(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):45:56 -> a
    15:15:com.android.tools.r8.graph.DexType firstLibraryClassForInterfaceTarget(java.lang.Object,com.android.tools.r8.graph.DexType,java.util.function.BiFunction):77:77 -> a
    16:16:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    16:16:com.android.tools.r8.graph.DexType firstLibraryClassForInterfaceTarget(java.lang.Object,com.android.tools.r8.graph.DexType,java.util.function.BiFunction):77 -> a
    17:33:com.android.tools.r8.graph.DexType firstLibraryClassForInterfaceTarget(java.lang.Object,com.android.tools.r8.graph.DexType,java.util.function.BiFunction):78:94 -> a
    34:34:com.android.tools.r8.graph.DexType firstLibraryClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):101:101 -> a
    35:35:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    35:35:com.android.tools.r8.graph.DexType firstLibraryClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):101 -> a
    36:37:com.android.tools.r8.graph.DexType firstLibraryClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):101:102 -> a
    38:38:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    38:38:com.android.tools.r8.graph.DexType firstLibraryClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):102 -> a
    39:40:com.android.tools.r8.graph.DexType firstLibraryClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):103:104 -> a
    41:41:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    41:41:com.android.tools.r8.graph.DexType firstLibraryClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):104 -> a
    42:42:com.android.tools.r8.graph.DexType firstLibraryClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):106:106 -> a
    43:43:com.android.tools.r8.graph.DexEncodedMethod anyLookup(com.android.tools.r8.graph.DexMethod):118:118 -> a
    44:49:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):125:130 -> a
    50:50:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    50:50:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):130 -> a
    51:58:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):131:138 -> a
    59:59:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    59:59:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):138 -> a
    60:60:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):139:139 -> a
    61:61:boolean needsBridgeForInterfaceMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Invoke$Type):169:169 -> a
    61:61:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):145 -> a
    62:62:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> a
    62:62:boolean needsBridgeForInterfaceMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Invoke$Type):169 -> a
    62:62:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):145 -> a
    63:66:boolean needsBridgeForInterfaceMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Invoke$Type):169:172 -> a
    63:66:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):145 -> a
    67:67:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):148:148 -> a
    68:74:com.android.tools.r8.graph.DexEncodedMethod insertBridgeForInterfaceMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexClass,java.util.function.Function):189:195 -> a
    68:74:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):147 -> a
    75:76:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):154:155 -> a
    77:85:com.android.tools.r8.graph.DexEncodedMethod insertBridgeForVisibilityIfNeeded(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,java.util.function.Function):238:246 -> a
    77:85:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):158 -> a
    86:86:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):162:162 -> a
    87:87:boolean lambda$computeMethodRebinding$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):156:156 -> a
    88:89:boolean mayNeedBridgeForVisibility(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):213:214 -> a
    88:89:boolean lambda$computeMethodRebinding$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):156 -> a
    90:90:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    90:90:boolean mayNeedBridgeForVisibility(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):214 -> a
    90:90:boolean lambda$computeMethodRebinding$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):156 -> a
    91:97:boolean mayNeedBridgeForVisibility(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):218:224 -> a
    91:97:boolean lambda$computeMethodRebinding$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):156 -> a
    98:101:com.android.tools.r8.graph.DexProgramClass findHolderForInterfaceMethodBridge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):200:203 -> a
    102:102:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    102:102:com.android.tools.r8.graph.DexProgramClass findHolderForInterfaceMethodBridge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):203 -> a
    103:107:com.android.tools.r8.graph.DexProgramClass findHolderForInterfaceMethodBridge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):205:209 -> a
    108:114:com.android.tools.r8.graph.DexProgramClass findHolderForVisibilityBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,java.lang.String):254:260 -> a
    115:115:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    115:115:com.android.tools.r8.graph.DexProgramClass findHolderForVisibilityBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,java.lang.String):260 -> a
    116:120:com.android.tools.r8.graph.DexProgramClass findHolderForVisibilityBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,java.lang.String):261:265 -> a
    121:121:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    121:121:com.android.tools.r8.graph.DexProgramClass findHolderForVisibilityBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,java.lang.String):265 -> a
    122:132:com.android.tools.r8.graph.DexProgramClass findHolderForVisibilityBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,java.lang.String):266:276 -> a
    133:135:void computeFieldRebinding():282:284 -> a
    136:136:void computeFieldRebindingForIndirectAccesses(com.android.tools.r8.graph.FieldAccessInfo):288:288 -> a
    137:155:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):294:312 -> a
    156:156:com.android.tools.r8.graph.DexField validTargetFor(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField,java.util.function.BiFunction):61:61 -> a
    156:156:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):313 -> a
    157:157:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    157:157:com.android.tools.r8.graph.DexField validTargetFor(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField,java.util.function.BiFunction):61 -> a
    157:157:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):313 -> a
    158:168:com.android.tools.r8.graph.DexField validTargetFor(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField,java.util.function.BiFunction):62:72 -> a
    158:168:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):313 -> a
    169:169:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):313:313 -> a
    170:170:void computeFieldRebindingForIndirectAccessWithContexts(com.android.tools.r8.graph.DexField,java.util.Set):312:312 -> a
    171:171:boolean lambda$computeFieldRebindingForIndirectAccessWithContexts$1(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexEncodedMethod):310:310 -> a
    172:172:boolean isClassTypeVisibleFromContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):328:328 -> a
    173:173:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    173:173:boolean isClassTypeVisibleFromContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):329 -> a
    174:174:boolean isClassTypeVisibleFromContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):330:330 -> a
    175:177:boolean isClassTypeVisibleFromContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):335:337 -> a
    178:183:boolean isMemberVisibleFromOriginalContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags):342:347 -> a
    1:1:com.android.tools.r8.graph.DexEncodedMethod classLookup(com.android.tools.r8.graph.DexMethod):110:110 -> b
    2:6:boolean isTypeVisibleFromContext(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):319:323 -> b
    7:21:com.android.tools.r8.graph.GraphLense run():351:365 -> b
    1:1:com.android.tools.r8.graph.DexEncodedMethod interfaceLookup(com.android.tools.r8.graph.DexMethod):114:114 -> c
com.android.tools.r8.optimize.MemberRebindingLense -> com.android.tools.r8.z.f:
    com.android.tools.r8.graph.AppView appView -> a
    1:7:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,java.util.Map,com.android.tools.r8.graph.GraphLense):43:49 -> <init>
    8:16:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,java.util.Map,com.android.tools.r8.graph.GraphLense):42:50 -> <init>
    1:1:com.android.tools.r8.optimize.MemberRebindingLense$Builder builder(com.android.tools.r8.graph.AppView):54:54 -> a
    1:1:com.android.tools.r8.ir.code.Invoke$Type mapInvocationType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):59:59 -> mapInvocationType
com.android.tools.r8.optimize.MemberRebindingLense$Builder -> com.android.tools.r8.z.e:
    com.android.tools.r8.graph.AppView appView -> f
    boolean $assertionsDisabled -> g
    1:1:void <clinit>():18:18 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.AppView):22:23 -> <init>
    1:5:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.GraphLense):27:31 -> a
com.android.tools.r8.optimize.PublicizerLense -> com.android.tools.r8.z.i:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set publicizedMethods -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():17:17 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.optimize.PublicizerLense$1):17:17 -> <init>
    2:8:void <init>(com.android.tools.r8.graph.AppView,java.util.Set):24:30 -> <init>
    9:18:void <init>(com.android.tools.r8.graph.AppView,java.util.Set):23:32 -> <init>
    1:1:com.android.tools.r8.optimize.PublicizerLense$PublicizedLenseBuilder createBuilder():67:67 -> b
    1:5:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):44:48 -> lookupMethod
    6:9:boolean publicizedMethodIsPresentOnHolder(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):55:58 -> lookupMethod
    6:9:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):48 -> lookupMethod
    10:10:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> lookupMethod
    10:10:boolean publicizedMethodIsPresentOnHolder(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):58 -> lookupMethod
    10:10:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):48 -> lookupMethod
    11:14:boolean publicizedMethodIsPresentOnHolder(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):59:62 -> lookupMethod
    11:14:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):48 -> lookupMethod
    15:17:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):49:51 -> lookupMethod
com.android.tools.r8.optimize.PublicizerLense$1 -> com.android.tools.r8.z.g:
com.android.tools.r8.optimize.PublicizerLense$PublicizedLenseBuilder -> com.android.tools.r8.z.h:
    java.util.Set publicizedMethods -> a
    1:1:void <init>(com.android.tools.r8.optimize.PublicizerLense$1):70:70 -> <init>
    2:2:void <init>():73:73 -> <init>
    3:3:void <init>():71:71 -> <init>
    1:4:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.AppView):77:80 -> a
    5:5:void add(com.android.tools.r8.graph.DexMethod):84:84 -> a
com.android.tools.r8.optimize.VisibilityBridgeRemover -> com.android.tools.r8.z.j:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.function.Consumer unneededVisibilityBridgeConsumer -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):25:25 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.AppView,java.util.function.Consumer):30:32 -> <init>
    1:1:com.android.tools.r8.graph.DexEncodedMethod[] removeUnneededVisibilityBridges(java.util.List):48:48 -> a
    2:16:boolean isUnneededVisibilityBridge(com.android.tools.r8.graph.DexEncodedMethod):69:83 -> a
    2:16:com.android.tools.r8.graph.DexEncodedMethod[] removeUnneededVisibilityBridges(java.util.List):49 -> a
    17:17:boolean com.android.tools.r8.graph.DexMethod.hasSameProtoAndName(com.android.tools.r8.graph.DexMethod):103:103 -> a
    17:17:boolean isUnneededVisibilityBridge(com.android.tools.r8.graph.DexEncodedMethod):83 -> a
    17:17:com.android.tools.r8.graph.DexEncodedMethod[] removeUnneededVisibilityBridges(java.util.List):49 -> a
    18:26:boolean isUnneededVisibilityBridge(com.android.tools.r8.graph.DexEncodedMethod):84:92 -> a
    18:26:com.android.tools.r8.graph.DexEncodedMethod[] removeUnneededVisibilityBridges(java.util.List):49 -> a
    27:27:boolean isUnneededVisibilityBridge(com.android.tools.r8.graph.DexEncodedMethod):91:91 -> a
    27:27:com.android.tools.r8.graph.DexEncodedMethod[] removeUnneededVisibilityBridges(java.util.List):49 -> a
    28:40:com.android.tools.r8.graph.DexEncodedMethod[] removeUnneededVisibilityBridges(java.util.List):51:63 -> a
    41:41:boolean lambda$removeUnneededVisibilityBridges$0(java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):62:62 -> a
    42:42:com.android.tools.r8.graph.DexEncodedMethod[] lambda$removeUnneededVisibilityBridges$1(int):63:63 -> a
    43:43:void run():105:105 -> a
    44:50:void removeUnneededVisibilityBridgesFromClass(com.android.tools.r8.graph.DexProgramClass):36:42 -> a
    44:50:void run():106 -> a
com.android.tools.r8.org.objectweb.asm.AnnotationVisitor -> com.android.tools.r8.A.a.a.a:
    1:1:void <init>(int):56:56 -> <init>
    2:4:void <init>(int,com.android.tools.r8.org.objectweb.asm.AnnotationVisitor):67:69 -> <init>
    void visit(java.lang.String,java.lang.Object) -> a
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,java.lang.String) -> a
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitArray(java.lang.String) -> a
    void visitEnd() -> a
    void visitEnum(java.lang.String,java.lang.String,java.lang.String) -> a
com.android.tools.r8.org.objectweb.asm.AnnotationWriter -> com.android.tools.r8.A.a.a.b:
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter previousAnnotation -> f
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter nextAnnotation -> g
    com.android.tools.r8.org.objectweb.asm.SymbolTable symbolTable -> a
    com.android.tools.r8.org.objectweb.asm.ByteVector annotation -> c
    int numElementValuePairsOffset -> d
    int numElementValuePairs -> e
    boolean useNamedValues -> b
    1:9:void <init>(com.android.tools.r8.org.objectweb.asm.SymbolTable,boolean,com.android.tools.r8.org.objectweb.asm.ByteVector,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):115:123 -> <init>
    1:4:com.android.tools.r8.org.objectweb.asm.AnnotationWriter create(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):142:145 -> a
    5:5:com.android.tools.r8.org.objectweb.asm.AnnotationWriter create(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):173:173 -> a
    6:6:void com.android.tools.r8.org.objectweb.asm.TypeReference.putTarget(int,com.android.tools.r8.org.objectweb.asm.ByteVector):433:433 -> a
    6:6:com.android.tools.r8.org.objectweb.asm.AnnotationWriter create(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):175 -> a
    7:25:void com.android.tools.r8.org.objectweb.asm.TypeReference.putTarget(int,com.android.tools.r8.org.objectweb.asm.ByteVector):412:430 -> a
    7:25:com.android.tools.r8.org.objectweb.asm.AnnotationWriter create(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):175 -> a
    26:26:void com.android.tools.r8.org.objectweb.asm.TypeReference.putTarget(int,com.android.tools.r8.org.objectweb.asm.ByteVector):407:407 -> a
    26:26:com.android.tools.r8.org.objectweb.asm.AnnotationWriter create(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):175 -> a
    27:30:com.android.tools.r8.org.objectweb.asm.AnnotationWriter create(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):176:179 -> a
    31:98:void visit(java.lang.String,java.lang.Object):191:258 -> a
    99:105:void visitEnum(java.lang.String,java.lang.String,java.lang.String):266:272 -> a
    106:112:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,java.lang.String):279:285 -> a
    113:125:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitArray(java.lang.String):292:304 -> a
    126:129:void visitEnd():309:312 -> a
    130:145:int computeAnnotationsSize(com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):373:388 -> a
    146:158:void putAnnotations(int,com.android.tools.r8.org.objectweb.asm.ByteVector):410:422 -> a
    159:159:void putAnnotations(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.ByteVector):455:455 -> a
    160:165:void putAnnotations(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.ByteVector):454:459 -> a
    166:171:void putAnnotations(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.ByteVector):458:463 -> a
    172:177:void putAnnotations(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.ByteVector):462:467 -> a
    178:178:void putAnnotations(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.AnnotationWriter,com.android.tools.r8.org.objectweb.asm.ByteVector):466:466 -> a
    179:181:int computeParameterAnnotationsSize(java.lang.String,com.android.tools.r8.org.objectweb.asm.AnnotationWriter[],int):496:498 -> a
    182:205:void putParameterAnnotations(int,com.android.tools.r8.org.objectweb.asm.AnnotationWriter[],int,com.android.tools.r8.org.objectweb.asm.ByteVector):524:547 -> a
    1:8:int computeAnnotationsSize(java.lang.String):332:339 -> b
com.android.tools.r8.org.objectweb.asm.Attribute -> com.android.tools.r8.A.a.a.d:
    byte[] content -> b
    java.lang.String type -> a
    com.android.tools.r8.org.objectweb.asm.Attribute nextAttribute -> c
    1:2:void <init>(java.lang.String):64:65 -> <init>
    1:3:com.android.tools.r8.org.objectweb.asm.Attribute read(com.android.tools.r8.org.objectweb.asm.ClassReader,int,int,char[],int,com.android.tools.r8.org.objectweb.asm.Label[]):128:130 -> a
    4:4:int getAttributeCount():172:172 -> a
    5:5:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable):191:191 -> a
    6:10:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int):219:223 -> a
    11:11:com.android.tools.r8.org.objectweb.asm.ByteVector write(com.android.tools.r8.org.objectweb.asm.ClassWriter,byte[],int,int,int):159:159 -> a
    11:11:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int):224 -> a
    12:12:void com.android.tools.r8.org.objectweb.asm.ByteVector.<init>(byte[]):65:65 -> a
    12:12:com.android.tools.r8.org.objectweb.asm.ByteVector write(com.android.tools.r8.org.objectweb.asm.ClassWriter,byte[],int,int,int):159 -> a
    12:12:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int):224 -> a
    13:13:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int):225:225 -> a
    14:27:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,int):247:260 -> a
    28:28:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.ByteVector):279:279 -> a
    29:29:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int,com.android.tools.r8.org.objectweb.asm.ByteVector):307:307 -> a
    30:30:com.android.tools.r8.org.objectweb.asm.ByteVector write(com.android.tools.r8.org.objectweb.asm.ClassWriter,byte[],int,int,int):159:159 -> a
    30:30:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int,com.android.tools.r8.org.objectweb.asm.ByteVector):311 -> a
    31:31:void com.android.tools.r8.org.objectweb.asm.ByteVector.<init>(byte[]):65:65 -> a
    31:31:com.android.tools.r8.org.objectweb.asm.ByteVector write(com.android.tools.r8.org.objectweb.asm.ClassWriter,byte[],int,int,int):159 -> a
    31:31:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int,com.android.tools.r8.org.objectweb.asm.ByteVector):311 -> a
    32:34:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int,com.android.tools.r8.org.objectweb.asm.ByteVector):313:315 -> a
    35:45:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,int,com.android.tools.r8.org.objectweb.asm.ByteVector):336:346 -> a
com.android.tools.r8.org.objectweb.asm.Attribute$Set -> com.android.tools.r8.A.a.a.c:
    com.android.tools.r8.org.objectweb.asm.Attribute[] data -> b
    int size -> a
    1:6:void <init>():351:356 -> <init>
    1:2:com.android.tools.r8.org.objectweb.asm.Attribute[] toArray():369:370 -> a
    3:4:boolean contains(com.android.tools.r8.org.objectweb.asm.Attribute):375:376 -> a
    3:4:void addAttributes(com.android.tools.r8.org.objectweb.asm.Attribute):361 -> a
    5:10:void add(com.android.tools.r8.org.objectweb.asm.Attribute):384:389 -> a
    5:10:void addAttributes(com.android.tools.r8.org.objectweb.asm.Attribute):362 -> a
    11:11:void addAttributes(com.android.tools.r8.org.objectweb.asm.Attribute):364:364 -> a
com.android.tools.r8.org.objectweb.asm.ByteVector -> com.android.tools.r8.A.a.a.e:
    byte[] data -> a
    int length -> b
    1:2:void <init>():45:46 -> <init>
    3:4:void <init>(int):54:55 -> <init>
    1:8:com.android.tools.r8.org.objectweb.asm.ByteVector put11(int,int):92:99 -> a
    9:18:com.android.tools.r8.org.objectweb.asm.ByteVector put112(int,int,int):152:161 -> a
    19:34:com.android.tools.r8.org.objectweb.asm.ByteVector putLong(long):216:231 -> a
    35:59:com.android.tools.r8.org.objectweb.asm.ByteVector putUTF8(java.lang.String):244:268 -> a
    60:60:com.android.tools.r8.org.objectweb.asm.ByteVector putUTF8(java.lang.String):246:246 -> a
    61:99:com.android.tools.r8.org.objectweb.asm.ByteVector encodeUtf8(java.lang.String,int,int):285:323 -> a
    100:100:com.android.tools.r8.org.objectweb.asm.ByteVector encodeUtf8(java.lang.String,int,int):298:298 -> a
    101:107:com.android.tools.r8.org.objectweb.asm.ByteVector putByteArray(byte[],int,int):339:345 -> a
    108:112:void enlarge(int):355:359 -> a
    1:6:com.android.tools.r8.org.objectweb.asm.ByteVector putByte(int):75:80 -> b
    7:15:com.android.tools.r8.org.objectweb.asm.ByteVector put12(int,int):130:138 -> b
    16:26:com.android.tools.r8.org.objectweb.asm.ByteVector put122(int,int,int):195:205 -> b
    1:10:com.android.tools.r8.org.objectweb.asm.ByteVector putInt(int):172:181 -> c
    1:8:com.android.tools.r8.org.objectweb.asm.ByteVector putShort(int):110:117 -> d
com.android.tools.r8.org.objectweb.asm.ClassReader -> com.android.tools.r8.A.a.a.f:
    int[] bootstrapMethodOffsets -> f
    byte[] classFileBuffer -> b
    byte[] b -> a
    int[] cpInfoOffsets -> c
    com.android.tools.r8.org.objectweb.asm.ConstantDynamic[] constantDynamicValues -> e
    int header -> h
    java.lang.String[] constantUtf8Values -> d
    int maxStringLength -> g
    1:1:void <init>(byte[]):162:162 -> <init>
    2:2:void <init>(byte[],int,int):176:176 -> <init>
    3:73:void <init>(byte[],int,boolean):188:258 -> <init>
    74:106:void <init>(byte[],int,boolean):239:271 -> <init>
    107:107:void <init>(java.io.InputStream):283:283 -> <init>
    1:11:byte[] readStream(java.io.InputStream,boolean):312:322 -> a
    12:24:byte[] readStream(java.io.InputStream,boolean):312:324 -> a
    25:25:byte[] readStream(java.io.InputStream,boolean):310:310 -> a
    26:139:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):421:534 -> a
    140:146:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):533:539 -> a
    147:147:void readModuleAttributes(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,int,java.lang.String):716:716 -> a
    147:147:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):544 -> a
    148:148:java.lang.String readStringish(int,char[]):3493:3493 -> a
    148:148:java.lang.String readModule(int,char[]):3523 -> a
    148:148:void readModuleAttributes(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,int,java.lang.String):720 -> a
    148:148:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):544 -> a
    149:246:void readModuleAttributes(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,int,java.lang.String):721:818 -> a
    149:246:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):544 -> a
    247:270:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):550:573 -> a
    271:290:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):572:591 -> a
    291:312:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):590:611 -> a
    313:338:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):610:635 -> a
    339:379:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):634:674 -> a
    380:390:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):670:680 -> a
    391:478:int readField(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):835:922 -> a
    391:478:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):683 -> a
    479:498:int readField(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):921:940 -> a
    479:498:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):683 -> a
    499:520:int readField(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):939:960 -> a
    499:520:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):683 -> a
    521:546:int readField(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):959:984 -> a
    521:546:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):683 -> a
    547:569:int readField(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):983:1005 -> a
    547:569:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):683 -> a
    570:570:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):685:685 -> a
    571:678:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1019:1126 -> a
    571:678:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):688 -> a
    679:699:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1122:1142 -> a
    679:699:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):688 -> a
    700:720:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1138:1158 -> a
    700:720:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):688 -> a
    721:748:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1156:1183 -> a
    721:748:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):688 -> a
    749:768:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1182:1201 -> a
    749:768:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):688 -> a
    769:790:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1200:1221 -> a
    769:790:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):688 -> a
    791:816:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1220:1245 -> a
    791:816:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):688 -> a
    817:860:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1244:1287 -> a
    817:860:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):688 -> a
    861:861:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):692:692 -> a
    862:1163:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1308:1609 -> a
    1164:1217:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1511:1564 -> a
    1218:1223:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1546:1551 -> a
    1224:1492:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1490:1758 -> a
    1493:1548:void computeImplicitFrame(com.android.tools.r8.org.objectweb.asm.Context):2964:3019 -> a
    1493:1548:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1760 -> a
    1549:1567:void computeImplicitFrame(com.android.tools.r8.org.objectweb.asm.Context):2997:3015 -> a
    1549:1567:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1760 -> a
    1568:1568:void computeImplicitFrame(com.android.tools.r8.org.objectweb.asm.Context):2991:2991 -> a
    1568:1568:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1760 -> a
    1569:1575:void computeImplicitFrame(com.android.tools.r8.org.objectweb.asm.Context):2988:2994 -> a
    1569:1575:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1760 -> a
    1576:1576:void computeImplicitFrame(com.android.tools.r8.org.objectweb.asm.Context):2985:2985 -> a
    1576:1576:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1760 -> a
    1577:1648:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1770:1841 -> a
    1649:1649:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1834:1834 -> a
    1650:1725:int readStackMapFrame(int,boolean,boolean,com.android.tools.r8.org.objectweb.asm.Context):3045:3120 -> a
    1650:1725:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1854 -> a
    1726:1726:int readStackMapFrame(int,boolean,boolean,com.android.tools.r8.org.objectweb.asm.Context):3117:3117 -> a
    1726:1726:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1854 -> a
    1727:2127:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1863:2263 -> a
    2128:2128:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2110:2110 -> a
    2129:2129:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2109:2109 -> a
    2130:2141:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2088:2099 -> a
    2142:2142:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2091:2091 -> a
    2143:2143:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2056:2056 -> a
    2144:2349:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2054:2259 -> a
    2350:2350:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2258:2258 -> a
    2351:2354:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2118:2121 -> a
    2355:2484:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2120:2249 -> a
    2485:2500:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2225:2240 -> a
    2501:2511:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2204:2214 -> a
    2512:2522:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2150:2160 -> a
    2523:2532:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2133:2142 -> a
    2533:2533:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2049:2049 -> a
    2534:2739:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2048:2253 -> a
    2740:2740:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2027:2027 -> a
    2741:2930:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2003:2192 -> a
    2931:2931:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2187:2187 -> a
    2932:2932:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2183:2183 -> a
    2933:2933:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2179:2179 -> a
    2934:3235:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1979:2280 -> a
    3236:3265:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2279:2308 -> a
    3266:3337:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2307:2378 -> a
    3338:3367:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2377:2406 -> a
    3368:3394:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2405:2431 -> a
    3395:3395:void createDebugLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2475:2475 -> a
    3396:3399:com.android.tools.r8.org.objectweb.asm.Label readLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2445:2448 -> a
    3396:3399:void createDebugLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2476 -> a
    3400:3400:void createDebugLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2476:2476 -> a
    3401:3406:int getTypeAnnotationBytecodeOffset(int[],int):2603:2608 -> a
    3407:3465:int readTypeAnnotationTarget(com.android.tools.r8.org.objectweb.asm.Context,int):2624:2682 -> a
    3466:3512:int readTypeAnnotationTarget(com.android.tools.r8.org.objectweb.asm.Context,int):2641:2687 -> a
    3513:3526:void readParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,boolean):2710:2723 -> a
    3527:3527:void readParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,boolean):2722:2722 -> a
    3528:3545:int readElementValues(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,boolean,char[]):2752:2769 -> a
    3546:3552:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2791:2797 -> a
    3553:3706:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2795:2948 -> a
    3707:3714:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2836:2843 -> a
    3715:3738:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2840:2863 -> a
    3739:3817:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2862:2940 -> a
    3818:3818:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2939:2939 -> a
    3819:3856:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2878:2915 -> a
    3857:3877:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2902:2922 -> a
    3878:3889:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2921:2932 -> a
    3890:3894:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2931:2935 -> a
    3895:3900:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2894:2899 -> a
    3901:3906:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2870:2875 -> a
    3907:3909:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2828:2830 -> a
    3910:3910:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2828:2828 -> a
    3911:3912:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2822:2823 -> a
    3913:3913:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2822:2822 -> a
    3914:3914:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2818:2818 -> a
    3915:3915:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2817:2817 -> a
    3916:3917:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2809:2810 -> a
    3918:3918:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2809:2809 -> a
    3919:3920:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2804:2805 -> a
    3921:3970:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2804:2853 -> a
    3971:3971:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2852:2852 -> a
    3972:4004:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3145:3177 -> a
    4005:4005:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3173:3173 -> a
    4006:4006:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3169:3169 -> a
    4007:4007:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3166:3166 -> a
    4008:4008:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3163:3163 -> a
    4009:4009:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3160:3160 -> a
    4010:4010:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3157:3157 -> a
    4011:4011:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3154:3154 -> a
    4012:4012:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3151:3151 -> a
    4013:4013:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3148:3148 -> a
    4014:4043:int getFirstAttributeOffset():3196:3225 -> a
    4044:4050:com.android.tools.r8.org.objectweb.asm.Attribute readAttribute(com.android.tools.r8.org.objectweb.asm.Attribute[],java.lang.String,int,int,char[],int,com.android.tools.r8.org.objectweb.asm.Label[]):3296:3302 -> a
    4051:4051:int getItem(int):3329:3329 -> a
    4052:4068:java.lang.String readUtf(int,int,char[]):3458:3474 -> a
    4069:4069:java.lang.String readStringish(int,char[]):3493:3493 -> a
    4069:4069:java.lang.String readClass(int,char[]):3508 -> a
    1:4:com.android.tools.r8.org.objectweb.asm.Label readLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2445:2448 -> b
    1:4:com.android.tools.r8.org.objectweb.asm.Label createLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2461 -> b
    5:5:com.android.tools.r8.org.objectweb.asm.Label createLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2462:2462 -> b
    6:59:int[] readTypeAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,boolean):2503:2556 -> b
    60:112:int[] readTypeAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,boolean):2519:2571 -> b
    113:127:int[] readTypeAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,boolean):2570:2584 -> b
    128:152:int[] readBootstrapMethodsAttribute(int):3241:3265 -> b
    153:153:int getItemCount():3315:3315 -> b
    154:183:java.lang.Object readConst(int,char[]):3587:3616 -> b
    184:200:com.android.tools.r8.org.objectweb.asm.ConstantDynamic readConstantDynamic(int,char[]):3552:3568 -> b
    184:200:java.lang.Object readConst(int,char[]):3614 -> b
    201:211:java.lang.Object readConst(int,char[]):3602:3612 -> b
    212:212:java.lang.Object readConst(int,char[]):3600:3600 -> b
    213:213:java.lang.Object readConst(int,char[]):3598:3598 -> b
    214:214:java.lang.Object readConst(int,char[]):3596:3596 -> b
    215:215:java.lang.Object readConst(int,char[]):3594:3594 -> b
    216:216:java.lang.Object readConst(int,char[]):3592:3592 -> b
    217:217:java.lang.Object readConst(int,char[]):3590:3590 -> b
    1:1:int getMaxStringLength():3340:3340 -> c
    2:2:int readByte(int):3351:3351 -> c
    3:3:java.lang.String readStringish(int,char[]):3493:3493 -> c
    3:3:java.lang.String readModule(int,char[]):3523 -> c
    1:2:int readInt(int):3386:3387 -> d
    3:3:java.lang.String readStringish(int,char[]):3493:3493 -> d
    3:3:java.lang.String readPackage(int,char[]):3538 -> d
    1:2:long readLong(int):3401:3402 -> e
    3:7:java.lang.String readUTF8(int,char[]):3419:3423 -> e
    1:2:short readShort(int):3374:3375 -> f
    3:9:java.lang.String readUtf(int,char[]):3436:3442 -> f
    1:2:int readUnsignedShort(int):3362:3363 -> g
com.android.tools.r8.org.objectweb.asm.ClassTooLargeException -> com.android.tools.r8.A.a.a.g:
    1:1:void <init>(java.lang.String,int):49:49 -> <init>
com.android.tools.r8.org.objectweb.asm.ClassVisitor -> com.android.tools.r8.A.a.a.h:
    com.android.tools.r8.org.objectweb.asm.ClassVisitor cv -> b
    int api -> a
    1:1:void <init>(int):57:57 -> <init>
    2:7:void <init>(int,com.android.tools.r8.org.objectweb.asm.ClassVisitor):68:73 -> <init>
    1:2:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):99:100 -> a
    3:4:void visitSource(java.lang.String,java.lang.String):113:114 -> a
    5:9:com.android.tools.r8.org.objectweb.asm.ModuleVisitor visitModule(java.lang.String,int,java.lang.String):129:133 -> a
    10:10:com.android.tools.r8.org.objectweb.asm.ModuleVisitor visitModule(java.lang.String,int,java.lang.String):130:130 -> a
    11:15:void visitNestHost(java.lang.String):149:153 -> a
    16:16:void visitNestHost(java.lang.String):150:150 -> a
    17:18:void visitOuterClass(java.lang.String,java.lang.String,java.lang.String):168:169 -> a
    19:20:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):182:183 -> a
    21:25:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):205:209 -> a
    26:26:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):206:206 -> a
    27:28:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):220:221 -> a
    29:30:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):257:258 -> a
    31:32:com.android.tools.r8.org.objectweb.asm.FieldVisitor visitField(int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):286:287 -> a
    33:34:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):314:315 -> a
    35:36:void visitEnd():325:326 -> a
    1:5:void visitNestMember(java.lang.String):235:239 -> b
    6:6:void visitNestMember(java.lang.String):236:236 -> b
com.android.tools.r8.org.objectweb.asm.ClassWriter -> com.android.tools.r8.A.a.a.i:
    int numberOfInnerClasses -> n
    com.android.tools.r8.org.objectweb.asm.FieldWriter firstField -> j
    int interfaceCount -> h
    int thisClass -> f
    com.android.tools.r8.org.objectweb.asm.ByteVector debugExtension -> t
    com.android.tools.r8.org.objectweb.asm.ModuleWriter moduleWriter -> y
    int numberOfNestMemberClasses -> A
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleTypeAnnotation -> x
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleAnnotation -> v
    com.android.tools.r8.org.objectweb.asm.MethodWriter firstMethod -> l
    com.android.tools.r8.org.objectweb.asm.ByteVector nestMemberClasses -> B
    int sourceFileIndex -> s
    int enclosingMethodIndex -> q
    com.android.tools.r8.org.objectweb.asm.FieldWriter lastField -> k
    com.android.tools.r8.org.objectweb.asm.ByteVector innerClasses -> o
    int superClass -> g
    com.android.tools.r8.org.objectweb.asm.Attribute firstAttribute -> C
    int compute -> D
    int accessFlags -> e
    int version -> c
    com.android.tools.r8.org.objectweb.asm.SymbolTable symbolTable -> d
    int[] interfaces -> i
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleTypeAnnotation -> w
    int nestHostClassIndex -> z
    com.android.tools.r8.org.objectweb.asm.MethodWriter lastMethod -> m
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleAnnotation -> u
    int signatureIndex -> r
    int enclosingClassIndex -> p
    1:8:void <init>(com.android.tools.r8.org.objectweb.asm.ClassReader,int):237:244 -> <init>
    void visitEnd() -> a
    1:16:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):260:275 -> a
    17:20:void visitSource(java.lang.String,java.lang.String):282:285 -> a
    21:26:com.android.tools.r8.org.objectweb.asm.ModuleVisitor visitModule(java.lang.String,int,java.lang.String):292:297 -> a
    27:27:void visitNestHost(java.lang.String):302:302 -> a
    28:30:void visitOuterClass(java.lang.String,java.lang.String,java.lang.String):308:310 -> a
    31:35:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):317:321 -> a
    36:41:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):329:334 -> a
    42:43:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):342:343 -> a
    44:60:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):358:374 -> a
    61:68:com.android.tools.r8.org.objectweb.asm.FieldVisitor visitField(int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):387:394 -> a
    69:76:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):404:411 -> a
    77:77:int newConst(java.lang.Object):714:714 -> a
    1:5:void visitNestMember(java.lang.String):348:352 -> b
    6:210:byte[] toByteArray():435:639 -> b
    211:223:com.android.tools.r8.org.objectweb.asm.Attribute[] getAttributePrototypes():685:697 -> b
    211:223:byte[] replaceAsmInstructions(byte[],boolean):656 -> b
    211:223:byte[] toByteArray():639 -> b
    224:243:byte[] replaceAsmInstructions(byte[],boolean):657:676 -> b
    224:243:byte[] toByteArray():639 -> b
    244:244:byte[] toByteArray():641:641 -> b
    245:245:byte[] toByteArray():538:538 -> b
com.android.tools.r8.org.objectweb.asm.ConstantDynamic -> com.android.tools.r8.A.a.a.j:
    java.lang.Object[] bootstrapMethodArguments -> d
    java.lang.String name -> a
    java.lang.String descriptor -> b
    com.android.tools.r8.org.objectweb.asm.Handle bootstrapMethod -> c
    1:5:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):67:71 -> <init>
    1:1:com.android.tools.r8.org.objectweb.asm.Handle getBootstrapMethod():98:98 -> a
    1:1:java.lang.Object[] getBootstrapMethodArgumentsUnsafe():132:132 -> b
    1:1:java.lang.String getDescriptor():89:89 -> c
    1:1:java.lang.String getName():80:80 -> d
    1:8:boolean equals(java.lang.Object):155:162 -> equals
    1:4:int hashCode():167:170 -> hashCode
    1:7:java.lang.String toString():175:181 -> toString
com.android.tools.r8.org.objectweb.asm.Context -> com.android.tools.r8.A.a.a.k:
    int currentFrameType -> n
    java.lang.String currentMethodDescriptor -> f
    int currentFrameLocalCount -> o
    char[] charBuffer -> c
    int currentFrameOffset -> m
    int currentTypeAnnotationTarget -> h
    com.android.tools.r8.org.objectweb.asm.Attribute[] attributePrototypes -> a
    int currentMethodAccessFlags -> d
    int parsingOptions -> b
    com.android.tools.r8.org.objectweb.asm.Label[] currentMethodLabels -> g
    com.android.tools.r8.org.objectweb.asm.Label[] currentLocalVariableAnnotationRangeEnds -> k
    com.android.tools.r8.org.objectweb.asm.Label[] currentLocalVariableAnnotationRangeStarts -> j
    com.android.tools.r8.org.objectweb.asm.TypePath currentTypeAnnotationTargetPath -> i
    java.lang.Object[] currentFrameStackTypes -> s
    java.lang.Object[] currentFrameLocalTypes -> q
    int currentFrameStackCount -> r
    java.lang.String currentMethodName -> e
    int[] currentLocalVariableAnnotationRangeIndices -> l
    int currentFrameLocalCountDelta -> p
    1:1:void <init>():36:36 -> <init>
com.android.tools.r8.org.objectweb.asm.CurrentFrame -> com.android.tools.r8.A.a.a.l:
    1:1:void <init>(com.android.tools.r8.org.objectweb.asm.Label):40:40 -> <init>
    1:4:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):51:54 -> a
com.android.tools.r8.org.objectweb.asm.Edge -> com.android.tools.r8.A.a.a.m:
    com.android.tools.r8.org.objectweb.asm.Label successor -> b
    int info -> a
    com.android.tools.r8.org.objectweb.asm.Edge nextEdge -> c
    1:4:void <init>(int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Edge):86:89 -> <init>
com.android.tools.r8.org.objectweb.asm.FieldVisitor -> com.android.tools.r8.A.a.a.n:
    com.android.tools.r8.org.objectweb.asm.FieldVisitor fv -> a
    1:1:void <init>(int):55:55 -> <init>
    2:7:void <init>(int,com.android.tools.r8.org.objectweb.asm.FieldVisitor):66:71 -> <init>
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean) -> a
    void visitEnd() -> a
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> a
    1:2:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):119:120 -> a
com.android.tools.r8.org.objectweb.asm.FieldWriter -> com.android.tools.r8.A.a.a.o:
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleAnnotation -> h
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleAnnotation -> i
    com.android.tools.r8.org.objectweb.asm.Attribute firstAttribute -> l
    com.android.tools.r8.org.objectweb.asm.SymbolTable symbolTable -> b
    int signatureIndex -> f
    int constantValueIndex -> g
    int nameIndex -> d
    int descriptorIndex -> e
    int accessFlags -> c
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleTypeAnnotation -> j
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleTypeAnnotation -> k
    1:10:void <init>(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):127:136 -> <init>
    void visitEnd() -> a
    1:5:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):147:151 -> a
    6:11:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):159:164 -> a
    12:13:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):172:173 -> a
    14:66:void putFieldInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):220:272 -> a
    67:67:void collectAttributePrototypes(com.android.tools.r8.org.objectweb.asm.Attribute$Set):282:282 -> a
    1:14:int computeFieldInfoSize():195:208 -> b
com.android.tools.r8.org.objectweb.asm.Frame -> com.android.tools.r8.A.a.a.p:
    short outputStackTop -> g
    short outputStackStart -> f
    int[] initializations -> i
    int[] inputLocals -> b
    int[] inputStack -> c
    int[] outputLocals -> d
    int initializationCount -> h
    int[] outputStack -> e
    com.android.tools.r8.org.objectweb.asm.Label owner -> a
    1:2:void <init>(com.android.tools.r8.org.objectweb.asm.Label):242:243 -> <init>
    1:8:void copyFrom(com.android.tools.r8.org.objectweb.asm.Frame):255:262 -> a
    9:16:int getAbstractTypeFromApiFormat(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.Object):281:288 -> a
    17:75:int getAbstractTypeFromDescriptor(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String,int):316:374 -> a
    76:110:int getAbstractTypeFromDescriptor(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String,int):336:370 -> a
    111:112:int getAbstractTypeFromDescriptor(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String,int):366:367 -> a
    113:114:int getAbstractTypeFromDescriptor(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String,int):332:333 -> a
    115:135:void setInputFrameFromDescriptor(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,java.lang.String,int):397:417 -> a
    136:159:void setInputFrameFromApiFormat(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,java.lang.Object[],int,java.lang.Object[]):440:463 -> a
    160:160:int getInputStackSize():467:467 -> a
    161:170:int getLocal(int):481:490 -> a
    171:176:void push(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String):551:556 -> a
    177:183:void pop(java.lang.String):597:603 -> a
    184:184:void pop(java.lang.String):601:601 -> a
    185:200:int getInitializedType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int):645:660 -> a
    201:201:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1106:1106 -> a
    202:203:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1102:1103 -> a
    204:209:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1093:1098 -> a
    210:215:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1084:1089 -> a
    216:243:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1053:1080 -> a
    244:244:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1077:1077 -> a
    245:245:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1068:1068 -> a
    246:246:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1065:1065 -> a
    247:259:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1062:1074 -> a
    260:260:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1071:1071 -> a
    261:261:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1059:1059 -> a
    262:262:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1056:1056 -> a
    263:263:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1050:1050 -> a
    264:265:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1046:1047 -> a
    266:269:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1036:1039 -> a
    270:281:void addInitializedType(int):619:630 -> a
    270:281:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1040 -> a
    282:282:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1043:1043 -> a
    283:284:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1029:1030 -> a
    285:286:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1025:1026 -> a
    287:287:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1022:1022 -> a
    288:288:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1019:1019 -> a
    289:289:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1017:1017 -> a
    290:291:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1012:1013 -> a
    292:293:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1006:1007 -> a
    294:296:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):999:1001 -> a
    297:298:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):994:995 -> a
    299:301:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):989:991 -> a
    302:302:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):985:985 -> a
    303:305:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):980:982 -> a
    306:308:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):973:975 -> a
    309:311:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):953:955 -> a
    312:315:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):918:921 -> a
    316:325:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):906:915 -> a
    326:333:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):896:903 -> a
    334:339:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):888:893 -> a
    340:346:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):879:885 -> a
    347:351:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):872:876 -> a
    352:354:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):867:869 -> a
    355:355:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):864:864 -> a
    356:356:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):851:851 -> a
    357:357:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):832:832 -> a
    358:358:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):828:828 -> a
    359:371:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):806:818 -> a
    372:372:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):813:813 -> a
    373:383:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):790:800 -> a
    384:384:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):795:795 -> a
    385:387:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):783:785 -> a
    388:576:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):778:966 -> a
    577:748:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):772:943 -> a
    749:749:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):768:768 -> a
    750:781:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):733:764 -> a
    782:782:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):761:761 -> a
    783:786:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):755:758 -> a
    787:787:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):752:752 -> a
    788:788:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):749:749 -> a
    789:790:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):745:746 -> a
    791:795:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):738:742 -> a
    796:796:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):735:735 -> a
    797:798:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):729:730 -> a
    799:799:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):724:724 -> a
    800:801:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):717:718 -> a
    802:802:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):712:712 -> a
    803:803:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):700:700 -> a
    804:814:int getConcreteOutputType(int,int):1129:1139 -> a
    815:890:boolean merge(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.Frame,int):1169:1244 -> a
    891:958:boolean merge(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,int[],int):1268:1335 -> a
    959:996:void accept(com.android.tools.r8.org.objectweb.asm.MethodWriter):1356:1393 -> a
    1:11:void setLocal(int,int):504:514 -> b
    12:16:int pop():567:571 -> b
    17:23:void pop(int):581:587 -> b
    1:16:void push(int):524:539 -> c
com.android.tools.r8.org.objectweb.asm.Handle -> com.android.tools.r8.A.a.a.q:
    boolean isInterface -> e
    java.lang.String name -> c
    java.lang.String owner -> b
    int tag -> a
    java.lang.String descriptor -> d
    1:6:void <init>(int,java.lang.String,java.lang.String,java.lang.String,boolean):98:103 -> <init>
    1:1:java.lang.String getDesc():142:142 -> a
    1:1:java.lang.String getName():133:133 -> b
    1:1:java.lang.String getOwner():124:124 -> c
    1:1:int getTag():115:115 -> d
    1:1:boolean isInterface():151:151 -> e
    1:9:boolean equals(java.lang.Object):159:167 -> equals
    1:3:int hashCode():172:174 -> hashCode
    1:1:java.lang.String toString():187:187 -> toString
com.android.tools.r8.org.objectweb.asm.Handler -> com.android.tools.r8.A.a.a.r:
    com.android.tools.r8.org.objectweb.asm.Handler nextHandler -> f
    com.android.tools.r8.org.objectweb.asm.Label handlerPc -> c
    int catchType -> d
    com.android.tools.r8.org.objectweb.asm.Label endPc -> b
    com.android.tools.r8.org.objectweb.asm.Label startPc -> a
    java.lang.String catchTypeDescriptor -> e
    1:6:void <init>(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int,java.lang.String):90:95 -> <init>
    7:8:void <init>(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):106:107 -> <init>
    1:17:com.android.tools.r8.org.objectweb.asm.Handler removeRange(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):123:139 -> a
    18:19:void <init>(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):106:107 -> a
    18:19:com.android.tools.r8.org.objectweb.asm.Handler removeRange(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):139 -> a
    20:24:com.android.tools.r8.org.objectweb.asm.Handler removeRange(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):143:147 -> a
    25:26:void <init>(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):106:107 -> a
    25:26:com.android.tools.r8.org.objectweb.asm.Handler removeRange(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):147 -> a
    27:28:com.android.tools.r8.org.objectweb.asm.Handler removeRange(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):147:148 -> a
com.android.tools.r8.org.objectweb.asm.Label -> com.android.tools.r8.A.a.a.s:
    com.android.tools.r8.org.objectweb.asm.Frame frame -> k
    com.android.tools.r8.org.objectweb.asm.Edge outgoingEdges -> m
    int bytecodeOffset -> e
    int[] forwardReferences -> f
    short inputStackSize -> g
    short outputStackSize -> h
    com.android.tools.r8.org.objectweb.asm.Label nextBasicBlock -> l
    int[] otherLineNumbers -> d
    short outputStackMax -> i
    short subroutineId -> j
    java.lang.Object info -> a
    short lineNumber -> c
    com.android.tools.r8.org.objectweb.asm.Label EMPTY_LIST -> o
    short flags -> b
    com.android.tools.r8.org.objectweb.asm.Label nextListElement -> n
    1:1:void <clinit>():130:130 -> <clinit>
    1:1:void <init>():288:288 -> <init>
    1:1:com.android.tools.r8.org.objectweb.asm.Label getCanonicalInstance():321:321 -> a
    2:14:void addLineNumber(int):334:346 -> a
    15:20:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor,boolean):357:362 -> a
    21:33:void put(com.android.tools.r8.org.objectweb.asm.ByteVector,int,boolean):385:397 -> a
    34:45:void addForwardReference(int,int,int):416:427 -> a
    46:79:boolean resolve(byte[],int):445:478 -> a
    80:91:void markSubroutine(short):506:517 -> a
    92:126:void addSubroutineRetSuccessors(com.android.tools.r8.org.objectweb.asm.Label):541:575 -> a
    1:13:com.android.tools.r8.org.objectweb.asm.Label pushSuccessors(com.android.tools.r8.org.objectweb.asm.Label):591:603 -> b
    1:1:java.lang.String toString():619:619 -> toString
com.android.tools.r8.org.objectweb.asm.MethodTooLargeException -> com.android.tools.r8.A.a.a.t:
    1:1:void <init>(java.lang.String,java.lang.String,java.lang.String,int):57:57 -> <init>
com.android.tools.r8.org.objectweb.asm.MethodVisitor -> com.android.tools.r8.A.a.a.u:
    int api -> h
    com.android.tools.r8.org.objectweb.asm.MethodVisitor mv -> i
    1:1:void <init>(int):69:69 -> <init>
    2:7:void <init>(int,com.android.tools.r8.org.objectweb.asm.MethodVisitor):80:85 -> <init>
    1:2:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotationDefault():117:118 -> a
    3:4:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):132:133 -> a
    5:6:void visitAnnotableParameterCount(int,boolean):180:181 -> a
    7:8:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):201:202 -> a
    9:10:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):213:214 -> a
    11:12:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):288:289 -> a
    13:14:void visitInsn(int):312:313 -> a
    15:16:void visitTypeInsn(int,java.lang.String):362:363 -> a
    17:18:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):379:380 -> a
    19:19:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):419:419 -> a
    20:21:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String):398:399 -> a
    20:21:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):423 -> a
    22:28:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):421:427 -> a
    29:33:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):447:451 -> a
    34:34:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):448:448 -> a
    35:36:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):466:467 -> a
    37:38:void visitLabel(com.android.tools.r8.org.objectweb.asm.Label):477:478 -> a
    39:48:void visitLdcInsn(java.lang.Object):530:539 -> a
    49:50:void visitIincInsn(int,int):550:551 -> a
    51:52:void visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):566:567 -> a
    53:54:void visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):580:581 -> a
    55:56:void visitMultiANewArrayInsn(java.lang.String,int):592:593 -> a
    57:61:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):618:622 -> a
    62:62:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):619:619 -> a
    63:64:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):644:645 -> a
    65:66:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):696:697 -> a
    67:71:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):729:733 -> a
    72:72:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):730:730 -> a
    1:5:void visitParameter(java.lang.String,int):100:104 -> b
    6:6:void visitParameter(java.lang.String,int):101:101 -> b
    7:8:void visitCode():220:221 -> b
    9:10:void visitIntInsn(int,int):332:333 -> b
    11:15:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):666:670 -> b
    16:16:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):667:667 -> b
    17:18:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):749:750 -> b
    1:5:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):156:160 -> c
    6:6:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):157:157 -> c
    7:8:void visitMaxs(int,int):761:762 -> c
    9:10:void visitEnd():771:772 -> c
    1:2:void visitVarInsn(int,int):347:348 -> d
com.android.tools.r8.org.objectweb.asm.MethodWriter -> com.android.tools.r8.A.a.a.v:
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleAnnotation -> I
    int nameIndex -> l
    boolean hasAsmInstructions -> f0
    com.android.tools.r8.org.objectweb.asm.ByteVector defaultValue -> Q
    com.android.tools.r8.org.objectweb.asm.ByteVector code -> r
    int visibleAnnotableParameterCount -> K
    com.android.tools.r8.org.objectweb.asm.Label currentBasicBlock -> X
    com.android.tools.r8.org.objectweb.asm.ByteVector lineNumberTable -> v
    com.android.tools.r8.org.objectweb.asm.ByteVector localVariableTypeTable -> z
    int localVariableTypeTableLength -> y
    com.android.tools.r8.org.objectweb.asm.Attribute firstAttribute -> T
    int lineNumberTableLength -> u
    int maxLocals -> q
    int previousFrameOffset -> b0
    int sourceOffset -> h0
    java.lang.String name -> m
    int signatureIndex -> H
    com.android.tools.r8.org.objectweb.asm.Label lastBasicBlock -> W
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleAnnotation -> J
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter[] lastRuntimeVisibleParameterAnnotations -> L
    int[] STACK_SIZE_DELTA -> j0
    int relativeStackSize -> Y
    int[] currentFrame -> d0
    int compute -> U
    int descriptorIndex -> n
    boolean hasSubroutines -> e0
    int invisibleAnnotableParameterCount -> M
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastCodeRuntimeVisibleTypeAnnotation -> C
    com.android.tools.r8.org.objectweb.asm.Label firstBasicBlock -> V
    com.android.tools.r8.org.objectweb.asm.ByteVector parameters -> S
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleTypeAnnotation -> O
    com.android.tools.r8.org.objectweb.asm.ByteVector localVariableTable -> x
    int stackMapTableNumberOfEntries -> A
    int[] exceptionIndexTable -> G
    int maxRelativeStackSize -> Z
    com.android.tools.r8.org.objectweb.asm.ByteVector stackMapTableEntries -> B
    int localVariableTableLength -> w
    com.android.tools.r8.org.objectweb.asm.Handler lastHandler -> t
    int parametersCount -> R
    int currentLocals -> a0
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastCodeRuntimeInvisibleTypeAnnotation -> D
    int accessFlags -> k
    int lastBytecodeOffset -> g0
    java.lang.String descriptor -> o
    com.android.tools.r8.org.objectweb.asm.Attribute firstCodeAttribute -> E
    int numberOfExceptions -> F
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleTypeAnnotation -> P
    int sourceLength -> i0
    com.android.tools.r8.org.objectweb.asm.SymbolTable symbolTable -> j
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter[] lastRuntimeInvisibleParameterAnnotations -> N
    com.android.tools.r8.org.objectweb.asm.Handler firstHandler -> s
    int[] previousFrame -> c0
    int maxStack -> p
    1:1:void <clinit>():81:81 -> <clinit>
    1:1:void <init>(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],int):595:595 -> <init>
    2:306:void <init>(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],int):320:624 -> <init>
    1:2:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotationDefault():651:652 -> a
    3:7:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):658:662 -> a
    8:10:void visitAnnotableParameterCount(int,boolean):683:685 -> a
    11:24:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):693:706 -> a
    25:26:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):720:721 -> a
    27:27:boolean com.android.tools.r8.org.objectweb.asm.Attribute.isCodeAttribute():0:0 -> a
    27:27:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):716 -> a
    28:125:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):737:834 -> a
    126:132:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):825:831 -> a
    133:135:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):818:820 -> a
    136:137:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):813:814 -> a
    138:141:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):806:809 -> a
    142:201:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):795:854 -> a
    202:214:void visitInsn(int):859:871 -> a
    215:224:void visitInsn(int):865:874 -> a
    225:239:void visitTypeInsn(int,java.lang.String):967:981 -> a
    240:240:void visitTypeInsn(int,java.lang.String):974:974 -> a
    241:264:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):989:1012 -> a
    265:265:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):1008:1008 -> a
    266:266:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):1005:1005 -> a
    267:283:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):1002:1018 -> a
    284:284:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):996:996 -> a
    285:310:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):1030:1055 -> a
    311:311:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):1042:1042 -> a
    312:330:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1066:1084 -> a
    331:331:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1076:1076 -> a
    332:431:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):1091:1190 -> a
    432:502:void visitLabel(com.android.tools.r8.org.objectweb.asm.Label):1198:1268 -> a
    503:530:void visitLdcInsn(java.lang.Object):1274:1301 -> a
    531:531:void visitLdcInsn(java.lang.Object):1295:1295 -> a
    532:537:void visitIincInsn(int,int):1308:1313 -> a
    538:550:void visitIincInsn(int,int):1311:1323 -> a
    551:560:void visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):1331:1340 -> a
    561:571:void visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):1345:1355 -> a
    572:592:void visitSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):1359:1379 -> a
    593:604:void visitMultiANewArrayInsn(java.lang.String,int):1385:1396 -> a
    605:605:void visitMultiANewArrayInsn(java.lang.String,int):1392:1392 -> a
    606:615:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):1405:1414 -> a
    616:624:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):1426:1434 -> a
    625:650:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):1460:1485 -> a
    651:671:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):1501:1521 -> a
    672:677:int visitFrameStart(int,int,int):1818:1823 -> a
    678:696:boolean canCopyMethodAttributes(com.android.tools.r8.org.objectweb.asm.ClassReader,boolean,boolean,int,int,int):2023:2041 -> a
    697:754:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2178:2235 -> a
    755:755:int com.android.tools.r8.org.objectweb.asm.Handler.getExceptionTableLength(com.android.tools.r8.org.objectweb.asm.Handler):163:163 -> a
    755:755:int com.android.tools.r8.org.objectweb.asm.Handler.getExceptionTableSize(com.android.tools.r8.org.objectweb.asm.Handler):176 -> a
    755:755:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2235 -> a
    756:801:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2237:2282 -> a
    802:802:int com.android.tools.r8.org.objectweb.asm.Handler.getExceptionTableLength(com.android.tools.r8.org.objectweb.asm.Handler):163:163 -> a
    802:802:void com.android.tools.r8.org.objectweb.asm.Handler.putExceptionTable(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.ByteVector):187 -> a
    802:802:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2282 -> a
    803:811:void com.android.tools.r8.org.objectweb.asm.Handler.putExceptionTable(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.ByteVector):187:195 -> a
    803:811:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2282 -> a
    812:817:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2283:2288 -> a
    818:848:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2287:2317 -> a
    849:854:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2316:2321 -> a
    855:882:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2320:2347 -> a
    883:893:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2346:2356 -> a
    894:916:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2355:2377 -> a
    917:918:void collectAttributePrototypes(com.android.tools.r8.org.objectweb.asm.Attribute$Set):2387:2388 -> a
    void visitCode() -> b
    1:5:void visitParameter(java.lang.String,int):642:646 -> b
    6:23:void visitIntInsn(int,int):881:898 -> b
    24:24:void visitIntInsn(int,int):891:891 -> b
    25:30:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):1441:1446 -> b
    31:36:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):1532:1537 -> b
    37:46:void putFrameType(java.lang.Object):1971:1980 -> b
    void visitEnd() -> c
    1:6:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):670:675 -> c
    7:7:void visitMaxs(int,int):1542:1542 -> c
    8:12:void computeAllFrames():1557:1561 -> c
    8:12:void visitMaxs(int,int):1543 -> c
    13:13:int com.android.tools.r8.org.objectweb.asm.Frame.getAbstractTypeFromInternalName(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String):302:302 -> c
    13:13:void computeAllFrames():1561 -> c
    13:13:void visitMaxs(int,int):1543 -> c
    14:92:void computeAllFrames():1563:1641 -> c
    14:92:void visitMaxs(int,int):1543 -> c
    93:93:int com.android.tools.r8.org.objectweb.asm.Frame.getAbstractTypeFromInternalName(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String):302:302 -> c
    93:93:void computeAllFrames():1642 -> c
    93:93:void visitMaxs(int,int):1543 -> c
    94:105:void computeAllFrames():1642:1653 -> c
    94:105:void visitMaxs(int,int):1543 -> c
    106:207:void computeMaxStackAndLocal():1659:1760 -> c
    106:207:void visitMaxs(int,int):1545 -> c
    208:211:void visitMaxs(int,int):1547:1550 -> c
    212:212:void addSuccessorToCurrentBasicBlock(int,com.android.tools.r8.org.objectweb.asm.Label):1779:1779 -> c
    1:31:void visitVarInsn(int,int):905:935 -> d
    32:70:void visitVarInsn(int,int):923:961 -> d
    71:86:int computeMethodInfoSize():2074:2089 -> d
    87:87:int com.android.tools.r8.org.objectweb.asm.Handler.getExceptionTableLength(com.android.tools.r8.org.objectweb.asm.Handler):163:163 -> d
    87:87:int com.android.tools.r8.org.objectweb.asm.Handler.getExceptionTableSize(com.android.tools.r8.org.objectweb.asm.Handler):176 -> d
    87:87:int computeMethodInfoSize():2089 -> d
    88:121:int computeMethodInfoSize():2090:2123 -> d
    122:205:int computeMethodInfoSize():2083:2166 -> d
    1:10:void endCurrentBasicBlockWithNoSuccessor():1791:1800 -> e
    11:11:void putAbstractTypes(int,int):1956:1956 -> e
    12:15:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1422:1425 -> e
    12:15:void putAbstractTypes(int,int):1956 -> e
    16:17:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1418:1419 -> e
    16:17:void putAbstractTypes(int,int):1956 -> e
    18:69:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1414:1465 -> e
    18:69:void putAbstractTypes(int,int):1956 -> e
    70:70:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1450:1450 -> e
    70:70:void putAbstractTypes(int,int):1956 -> e
    71:71:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1447:1447 -> e
    71:71:void putAbstractTypes(int,int):1956 -> e
    72:72:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1444:1444 -> e
    72:72:void putAbstractTypes(int,int):1956 -> e
    73:94:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1441:1462 -> e
    73:94:void putAbstractTypes(int,int):1956 -> e
    95:95:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1456:1456 -> e
    95:95:void putAbstractTypes(int,int):1956 -> e
    96:113:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1453:1470 -> e
    96:113:void putAbstractTypes(int,int):1956 -> e
    1:1:boolean hasAsmInstructions():633:633 -> f
    2:3:void setMethodAttributesSource(int,int):2062:2063 -> f
    1:1:boolean hasFrames():629:629 -> g
    2:2:void visitAbstractType(int,int):1834:1834 -> g
    1:3:void visitFrameEnd():1843:1845 -> h
    4:90:void putFrame():1856:1942 -> h
    4:90:void visitFrameEnd():1847 -> h
    91:94:void putFrame():1932:1935 -> h
    91:94:void visitFrameEnd():1847 -> h
    95:100:void putFrame():1924:1929 -> h
    95:100:void visitFrameEnd():1847 -> h
    101:104:void putFrame():1918:1921 -> h
    101:104:void visitFrameEnd():1847 -> h
    105:106:void putFrame():1914:1915 -> h
    105:106:void visitFrameEnd():1847 -> h
    107:107:void putFrame():1911:1911 -> h
    107:107:void visitFrameEnd():1847 -> h
    108:111:void visitFrameEnd():1848:1851 -> h
com.android.tools.r8.org.objectweb.asm.ModuleVisitor -> com.android.tools.r8.A.a.a.w:
    1:1:void <init>(int):55:55 -> <init>
    2:4:void <init>(int,com.android.tools.r8.org.objectweb.asm.ModuleVisitor):66:68 -> <init>
    void visitExport(java.lang.String,int,java.lang.String[]) -> a
    void visitMainClass(java.lang.String) -> a
    void visitProvide(java.lang.String,java.lang.String[]) -> a
    void visitRequire(java.lang.String,int,java.lang.String) -> a
    void visitOpen(java.lang.String,int,java.lang.String[]) -> b
    void visitPackage(java.lang.String) -> b
    void visitUse(java.lang.String) -> c
com.android.tools.r8.org.objectweb.asm.ModuleWriter -> com.android.tools.r8.A.a.a.x:
    com.android.tools.r8.org.objectweb.asm.ByteVector provides -> n
    int packageCount -> o
    com.android.tools.r8.org.objectweb.asm.ByteVector usesIndex -> l
    int providesCount -> m
    int usesCount -> k
    int opensCount -> i
    com.android.tools.r8.org.objectweb.asm.ByteVector packageIndex -> p
    int exportsCount -> g
    int moduleVersionIndex -> d
    int requiresCount -> e
    int moduleNameIndex -> b
    int moduleFlags -> c
    com.android.tools.r8.org.objectweb.asm.SymbolTable symbolTable -> a
    com.android.tools.r8.org.objectweb.asm.ByteVector requires -> f
    com.android.tools.r8.org.objectweb.asm.ByteVector opens -> j
    com.android.tools.r8.org.objectweb.asm.ByteVector exports -> h
    int mainClassIndex -> q
    1:11:void <init>(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,int,int):97:107 -> <init>
    1:1:void visitMainClass(java.lang.String):112:112 -> a
    2:6:void visitRequire(java.lang.String,int,java.lang.String):123:127 -> a
    7:16:void visitExport(java.lang.String,int,java.lang.String[]):132:141 -> a
    17:22:void visitProvide(java.lang.String,java.lang.String[]):166:171 -> a
    23:33:int computeAttributesSize():196:206 -> a
    34:63:void putAttributes(com.android.tools.r8.org.objectweb.asm.ByteVector):221:250 -> a
    1:2:void visitPackage(java.lang.String):117:118 -> b
    3:12:void visitOpen(java.lang.String,int,java.lang.String[]):146:155 -> b
    13:13:int getAttributeCount():186:186 -> b
    1:2:void visitUse(java.lang.String):160:161 -> c
com.android.tools.r8.org.objectweb.asm.Opcodes -> com.android.tools.r8.A.a.a.y:
    java.lang.Integer FLOAT -> c
    java.lang.Integer DOUBLE -> d
    java.lang.Integer LONG -> e
    java.lang.Integer NULL -> f
    java.lang.Integer UNINITIALIZED_THIS -> g
    java.lang.Integer TOP -> a
    java.lang.Integer INTEGER -> b
    1:7:void <clinit>():376:382 -> <clinit>
com.android.tools.r8.org.objectweb.asm.SymbolTable -> com.android.tools.r8.A.a.a.A:
    com.android.tools.r8.org.objectweb.asm.ClassWriter classWriter -> a
    int typeCount -> k
    int bootstrapMethodCount -> i
    com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry[] typeTable -> l
    int constantPoolCount -> g
    int entryCount -> e
    int majorVersion -> c
    com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry[] entries -> f
    com.android.tools.r8.org.objectweb.asm.ByteVector bootstrapMethods -> j
    com.android.tools.r8.org.objectweb.asm.ClassReader sourceClassReader -> b
    java.lang.String className -> d
    com.android.tools.r8.org.objectweb.asm.ByteVector constantPool -> h
    1:6:void <init>(com.android.tools.r8.org.objectweb.asm.ClassWriter):121:126 -> <init>
    1:3:int computeBootstrapMethodsSize():358:360 -> a
    4:9:void putBootstrapMethods(com.android.tools.r8.org.objectweb.asm.ByteVector):373:378 -> a
    10:11:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):457:458 -> a
    12:12:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
    12:12:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):458 -> a
    13:14:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):459:460 -> a
    15:15:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
    15:15:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):460 -> a
    16:17:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):461:462 -> a
    18:18:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
    18:18:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):462 -> a
    19:20:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):463:464 -> a
    21:21:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
    21:21:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):464 -> a
    22:23:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):465:466 -> a
    24:24:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
    24:24:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):466 -> a
    25:26:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):467:468 -> a
    27:27:com.android.tools.r8.org.objectweb.asm.Symbol addConstantFloat(float):626:626 -> a
    27:27:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):468 -> a
    28:29:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):469:470 -> a
    30:30:com.android.tools.r8.org.objectweb.asm.Symbol addConstantLong(long):670:670 -> a
    30:30:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):470 -> a
    31:32:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):471:472 -> a
    33:33:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDouble(double):681:681 -> a
    33:33:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):472 -> a
    34:35:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):473:474 -> a
    36:36:com.android.tools.r8.org.objectweb.asm.Symbol addConstantString(java.lang.String):604:604 -> a
    36:36:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):474 -> a
    37:41:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):475:479 -> a
    42:42:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):513:513 -> a
    42:42:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):479 -> a
    43:43:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):481:481 -> a
    44:44:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodType(java.lang.String):865:865 -> a
    44:44:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):481 -> a
    45:45:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):483:483 -> a
    46:46:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):513:513 -> a
    46:46:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):483 -> a
    47:54:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):485:492 -> a
    55:67:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):487:499 -> a
    68:69:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDynamic(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):884:885 -> a
    68:69:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):495 -> a
    70:70:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):501:501 -> a
    71:71:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):513:513 -> a
    72:72:com.android.tools.r8.org.objectweb.asm.Symbol addConstantFieldref(java.lang.String,java.lang.String,java.lang.String):526:526 -> a
    73:73:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodref(java.lang.String,java.lang.String,java.lang.String,boolean):542:542 -> a
    74:74:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):615:615 -> a
    75:75:com.android.tools.r8.org.objectweb.asm.Symbol addConstantFloat(float):626:626 -> a
    76:85:com.android.tools.r8.org.objectweb.asm.Symbol addConstantIntegerOrFloat(int,int):638:647 -> a
    86:86:com.android.tools.r8.org.objectweb.asm.Symbol addConstantLong(long):670:670 -> a
    87:87:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDouble(double):681:681 -> a
    88:98:com.android.tools.r8.org.objectweb.asm.Symbol addConstantLongOrDouble(int,long):694:704 -> a
    99:100:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInvokeDynamic(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):905:906 -> a
    101:124:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1040:1063 -> a
    125:125:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1058:1058 -> a
    126:144:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1057:1075 -> a
    145:145:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(int,int,int):1094:1094 -> a
    145:145:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1080 -> a
    146:146:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry get(int):394:394 -> a
    146:146:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(int,int,int):1095 -> a
    146:146:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1080 -> a
    147:163:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(int,int,int):1097:1113 -> a
    147:163:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1080 -> a
    164:173:int addTypeInternal(com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry):1214:1223 -> a
    174:174:int hash(int,java.lang.String):1239:1239 -> a
    174:174:com.android.tools.r8.org.objectweb.asm.Symbol addConstantUtf8Reference(int,java.lang.String):999 -> a
    175:183:com.android.tools.r8.org.objectweb.asm.Symbol addConstantUtf8Reference(int,java.lang.String):1000:1008 -> a
    184:184:int hash(int,java.lang.String,int):1243:1243 -> a
    184:184:int addUninitializedType(java.lang.String,int):1159 -> a
    185:195:int addUninitializedType(java.lang.String,int):1160:1170 -> a
    196:196:int hash(int,java.lang.String,java.lang.String):1247:1247 -> a
    196:196:int addConstantNameAndType(java.lang.String,java.lang.String):729 -> a
    197:208:int addConstantNameAndType(java.lang.String,java.lang.String):730:741 -> a
    209:209:int hash(int,java.lang.String,java.lang.String,int):1252:1252 -> a
    209:209:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDynamicOrInvokeDynamicReference(int,java.lang.String,java.lang.String,int):924 -> a
    210:222:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDynamicOrInvokeDynamicReference(int,java.lang.String,java.lang.String,int):925:937 -> a
    223:223:int hash(int,java.lang.String,java.lang.String,java.lang.String):1257:1257 -> a
    223:223:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):559 -> a
    224:235:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):560:571 -> a
    236:236:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):513:513 -> a
    236:236:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):572 -> a
    237:237:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):572:572 -> a
    238:240:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):571:573 -> a
    241:241:int hash(int,java.lang.String,java.lang.String,java.lang.String,int):1266:1266 -> a
    241:241:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):811 -> a
    242:255:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):812:825 -> a
    256:256:com.android.tools.r8.org.objectweb.asm.Symbol addConstantFieldref(java.lang.String,java.lang.String,java.lang.String):526:526 -> a
    256:256:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):825 -> a
    257:259:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):825:827 -> a
    260:260:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodref(java.lang.String,java.lang.String,java.lang.String,boolean):542:542 -> a
    260:260:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):828 -> a
    261:261:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):828:828 -> a
    262:265:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):827:830 -> a
    1:1:java.lang.String getClassName():306:306 -> b
    2:3:int setMajorVersionAndClassName(int,java.lang.String):318:319 -> b
    4:4:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):513:513 -> b
    4:4:int setMajorVersionAndClassName(int,java.lang.String):320 -> b
    5:5:int setMajorVersionAndClassName(int,java.lang.String):320:320 -> b
    6:6:void putConstantPool(com.android.tools.r8.org.objectweb.asm.ByteVector):348:348 -> b
    7:7:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry get(int):394:394 -> b
    8:27:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry put(com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry):407:426 -> b
    28:28:com.android.tools.r8.org.objectweb.asm.Symbol addConstantModule(java.lang.String):972:972 -> b
    29:39:int addMergedType(int,int):1190:1200 -> b
    40:40:java.lang.ClassLoader com.android.tools.r8.org.objectweb.asm.ClassWriter.getClassLoader():963:963 -> b
    40:40:java.lang.String com.android.tools.r8.org.objectweb.asm.ClassWriter.getCommonSuperClass(java.lang.String,java.lang.String):926 -> b
    40:40:int addMergedType(int,int):1200 -> b
    41:63:java.lang.String com.android.tools.r8.org.objectweb.asm.ClassWriter.getCommonSuperClass(java.lang.String,java.lang.String):929:951 -> b
    41:63:int addMergedType(int,int):1200 -> b
    64:65:int addMergedType(int,int):1200:1201 -> b
    66:66:java.lang.String com.android.tools.r8.org.objectweb.asm.ClassWriter.getCommonSuperClass(java.lang.String,java.lang.String):937:937 -> b
    66:66:int addMergedType(int,int):1200 -> b
    67:67:java.lang.String com.android.tools.r8.org.objectweb.asm.ClassWriter.getCommonSuperClass(java.lang.String,java.lang.String):931:931 -> b
    67:67:int addMergedType(int,int):1200 -> b
    68:68:java.lang.ClassLoader com.android.tools.r8.org.objectweb.asm.ClassWriter.getClassLoader():963:963 -> b
    68:68:java.lang.String com.android.tools.r8.org.objectweb.asm.ClassWriter.getCommonSuperClass(java.lang.String,java.lang.String):926 -> b
    68:68:int addMergedType(int,int):1200 -> b
    int hash(int,int) -> c
    1:1:int getConstantPoolCount():329:329 -> c
    2:2:com.android.tools.r8.org.objectweb.asm.Symbol addConstantPackage(java.lang.String):983:983 -> c
    3:3:com.android.tools.r8.org.objectweb.asm.Symbol getType(int):1127:1127 -> c
    1:1:int getConstantPoolLength():338:338 -> d
    2:2:int hash(int,java.lang.String):1239:1239 -> d
    2:2:int addConstantUtf8(java.lang.String):764 -> d
    3:13:int addConstantUtf8(java.lang.String):765:775 -> d
    1:1:int getMajorVersion():297:297 -> e
    2:2:int hash(int,java.lang.String):1239:1239 -> e
    2:2:int addType(java.lang.String):1138 -> e
    3:10:int addType(java.lang.String):1139:1146 -> e
    1:1:com.android.tools.r8.org.objectweb.asm.ClassReader getSource():288:288 -> f
com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry -> com.android.tools.r8.A.a.a.z:
    long com.android.tools.r8.org.objectweb.asm.Symbol.data -> f
    int hashCode -> h
    int com.android.tools.r8.org.objectweb.asm.Symbol.info -> g
    int com.android.tools.r8.org.objectweb.asm.Symbol.tag -> b
    java.lang.String com.android.tools.r8.org.objectweb.asm.Symbol.owner -> c
    com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry next -> i
    java.lang.String com.android.tools.r8.org.objectweb.asm.Symbol.value -> e
    int com.android.tools.r8.org.objectweb.asm.Symbol.index -> a
    java.lang.String com.android.tools.r8.org.objectweb.asm.Symbol.name -> d
    1:7:void com.android.tools.r8.org.objectweb.asm.Symbol.<init>(int,int,java.lang.String,java.lang.String,java.lang.String,long):220:226 -> <init>
    1:7:void <init>(int,int,long,int):1316 -> <init>
    8:8:void <init>(int,int,long,int):1317:1317 -> <init>
    9:15:void com.android.tools.r8.org.objectweb.asm.Symbol.<init>(int,int,java.lang.String,java.lang.String,java.lang.String,long):220:226 -> <init>
    9:15:void <init>(int,int,java.lang.String,int):1300 -> <init>
    16:16:void <init>(int,int,java.lang.String,int):1301:1301 -> <init>
    17:23:void com.android.tools.r8.org.objectweb.asm.Symbol.<init>(int,int,java.lang.String,java.lang.String,java.lang.String,long):220:226 -> <init>
    17:23:void <init>(int,int,java.lang.String,long,int):1305 -> <init>
    24:24:void <init>(int,int,java.lang.String,long,int):1306:1306 -> <init>
    25:31:void com.android.tools.r8.org.objectweb.asm.Symbol.<init>(int,int,java.lang.String,java.lang.String,java.lang.String,long):220:226 -> <init>
    25:31:void <init>(int,int,java.lang.String,java.lang.String,int):1311 -> <init>
    32:32:void <init>(int,int,java.lang.String,java.lang.String,int):1312:1312 -> <init>
    33:39:void com.android.tools.r8.org.objectweb.asm.Symbol.<init>(int,int,java.lang.String,java.lang.String,java.lang.String,long):220:226 -> <init>
    33:39:void <init>(int,int,java.lang.String,java.lang.String,java.lang.String,long,int):1295 -> <init>
    40:40:void <init>(int,int,java.lang.String,java.lang.String,java.lang.String,long,int):1296:1296 -> <init>
    1:4:int com.android.tools.r8.org.objectweb.asm.Symbol.getArgumentsAndReturnSizes():238:241 -> a
    1:4:int com.android.tools.r8.org.objectweb.asm.Symbol.getArgumentsAndReturnSizes():0 -> a
com.android.tools.r8.org.objectweb.asm.Type -> com.android.tools.r8.A.a.a.B:
    com.android.tools.r8.org.objectweb.asm.Type FLOAT_TYPE -> k
    com.android.tools.r8.org.objectweb.asm.Type INT_TYPE -> j
    com.android.tools.r8.org.objectweb.asm.Type DOUBLE_TYPE -> m
    com.android.tools.r8.org.objectweb.asm.Type LONG_TYPE -> l
    int valueEnd -> d
    int valueBegin -> c
    int sort -> a
    com.android.tools.r8.org.objectweb.asm.Type VOID_TYPE -> e
    com.android.tools.r8.org.objectweb.asm.Type CHAR_TYPE -> g
    com.android.tools.r8.org.objectweb.asm.Type BOOLEAN_TYPE -> f
    java.lang.String valueBuffer -> b
    com.android.tools.r8.org.objectweb.asm.Type SHORT_TYPE -> i
    com.android.tools.r8.org.objectweb.asm.Type BYTE_TYPE -> h
    1:26:void <clinit>():85:110 -> <clinit>
    1:5:void <init>(int,java.lang.String,int,int):159:163 -> <init>
    1:28:com.android.tools.r8.org.objectweb.asm.Type[] getArgumentTypes(java.lang.String):302:329 -> a
    29:55:com.android.tools.r8.org.objectweb.asm.Type getTypeInternal(java.lang.String,int,int):414:440 -> a
    56:56:com.android.tools.r8.org.objectweb.asm.Type getTypeInternal(java.lang.String,int,int):434:434 -> a
    57:57:com.android.tools.r8.org.objectweb.asm.Type getTypeInternal(java.lang.String,int,int):418:418 -> a
    58:78:com.android.tools.r8.org.objectweb.asm.Type getTypeInternal(java.lang.String,int,int):416:436 -> a
    79:79:com.android.tools.r8.org.objectweb.asm.Type getTypeInternal(java.lang.String,int,int):430:430 -> a
    80:86:com.android.tools.r8.org.objectweb.asm.Type getTypeInternal(java.lang.String,int,int):426:432 -> a
    87:105:com.android.tools.r8.org.objectweb.asm.Type getTypeInternal(java.lang.String,int,int):420:438 -> a
    106:111:java.lang.String getDescriptor():516:521 -> a
    1:1:java.lang.String getInternalName():496:496 -> b
    2:20:int getArgumentsAndReturnSizes(java.lang.String):728:746 -> b
    1:1:com.android.tools.r8.org.objectweb.asm.Type getMethodType(java.lang.String):264:264 -> c
    2:2:int getSort():657:657 -> c
    1:2:com.android.tools.r8.org.objectweb.asm.Type getObjectType(java.lang.String):252:253 -> d
    1:1:com.android.tools.r8.org.objectweb.asm.Type getReturnType(java.lang.String):367:367 -> e
    2:2:com.android.tools.r8.org.objectweb.asm.Type getReturnType(java.lang.String):366:366 -> e
    1:17:boolean equals(java.lang.Object):843:859 -> equals
    1:7:int getReturnTypeOffset(java.lang.String):390:396 -> f
    1:1:com.android.tools.r8.org.objectweb.asm.Type getType(java.lang.String):177:177 -> g
    1:4:int hashCode():873:876 -> hashCode
    1:1:java.lang.String toString():889:889 -> toString
com.android.tools.r8.org.objectweb.asm.TypePath -> com.android.tools.r8.A.a.a.C:
    byte[] typePathContainer -> a
    int typePathOffset -> b
    1:3:void <init>(byte[],int):72:74 -> <init>
    1:4:void put(com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.ByteVector):195:198 -> a
    1:1:int getLength():84:84 -> toString
    1:1:java.lang.String toString():163 -> toString
    2:2:java.lang.String toString():164:164 -> toString
    3:3:int getStep(int):96:96 -> toString
    3:3:java.lang.String toString():166 -> toString
    4:4:java.lang.String toString():180:180 -> toString
    5:5:int getStepArgument(int):108:108 -> toString
    5:5:java.lang.String toString():177 -> toString
    6:6:java.lang.String toString():177:177 -> toString
    7:7:java.lang.String toString():174:174 -> toString
    8:8:java.lang.String toString():171:171 -> toString
    9:24:java.lang.String toString():168:183 -> toString
com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter -> com.android.tools.r8.A.a.a.D.b:
    java.util.BitSet sharedSubroutineInsns -> F
    java.util.Map subroutinesInsns -> E
    java.util.BitSet mainSubroutineInsns -> D
    1:3:void <init>(com.android.tools.r8.org.objectweb.asm.MethodVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):101:103 -> <init>
    4:4:void <init>(int,com.android.tools.r8.org.objectweb.asm.MethodVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):129:129 -> <init>
    5:70:void <init>(int,com.android.tools.r8.org.objectweb.asm.MethodVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):65:130 -> <init>
    1:4:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):135:138 -> a
    5:27:void findReachableInsns(int,java.util.BitSet,java.util.BitSet):231:253 -> a
    28:36:void findReachableInsns(int,java.util.BitSet,java.util.BitSet):252:260 -> a
    37:45:void findReachableInsns(int,java.util.BitSet,java.util.BitSet):259:267 -> a
    1:20:void findSubroutineInsns(int,java.util.BitSet,java.util.BitSet):181:200 -> b
    1:1:void visitEnd():144:144 -> c
    2:8:void findSubroutinesInsns():157:163 -> c
    2:8:void visitEnd():146 -> c
    9:18:void emitCode():294:303 -> c
    9:18:void visitEnd():147 -> c
    19:23:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):332:336 -> c
    19:23:void emitCode():304 -> c
    19:23:void visitEnd():147 -> c
    24:24:com.android.tools.r8.org.objectweb.asm.tree.LabelNode com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation.getClonedLabel(com.android.tools.r8.org.objectweb.asm.tree.LabelNode):538:538 -> c
    24:24:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):337 -> c
    24:24:void emitCode():304 -> c
    24:24:void visitEnd():147 -> c
    25:43:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):339:357 -> c
    25:43:void emitCode():304 -> c
    25:43:void visitEnd():147 -> c
    44:55:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):355:366 -> c
    44:55:void emitCode():304 -> c
    44:55:void visitEnd():147 -> c
    56:90:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):363:397 -> c
    56:90:void emitCode():304 -> c
    56:90:void visitEnd():147 -> c
    91:102:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):395:406 -> c
    91:102:void emitCode():304 -> c
    91:102:void visitEnd():147 -> c
    103:105:void emitCode():307:309 -> c
    103:105:void visitEnd():147 -> c
    106:107:void visitEnd():149:150 -> c
com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation -> com.android.tools.r8.A.a.a.D.a:
    java.util.Map clonedLabels -> c
    com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation parent -> a
    java.util.BitSet subroutineInsns -> b
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode returnLabel -> d
    com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter this$0 -> e
    1:5:void <init>(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter,com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.BitSet):446:450 -> <init>
    6:29:void <init>(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter,com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.BitSet):449:472 -> <init>
    1:11:com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation findOwner(int):499:509 -> a
    12:12:com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation findOwner(int):508:508 -> a
    13:13:com.android.tools.r8.org.objectweb.asm.tree.LabelNode getClonedLabel(com.android.tools.r8.org.objectweb.asm.tree.LabelNode):538:538 -> a
    1:1:com.android.tools.r8.org.objectweb.asm.tree.LabelNode getClonedLabelForJumpInsn(com.android.tools.r8.org.objectweb.asm.tree.LabelNode):526:526 -> b
    1:1:java.util.Set entrySet():545:545 -> entrySet
    1:1:boolean equals(java.lang.Object):555:555 -> equals
    1:1:com.android.tools.r8.org.objectweb.asm.tree.LabelNode get(java.lang.Object):550:550 -> get
    1:1:java.lang.Object get(java.lang.Object):419 -> get
    1:1:int hashCode():560:560 -> hashCode
com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode -> com.android.tools.r8.A.a.a.E.a:
    java.util.List visibleTypeAnnotations -> b
    java.util.List invisibleTypeAnnotations -> c
    int index -> f
    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode previousInsn -> d
    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode nextInsn -> e
    int opcode -> a
    1:3:void <init>(int):126:128 -> <init>
    void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor) -> a
    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map) -> a
    1:1:int getOpcode():137:137 -> a
    2:4:com.android.tools.r8.org.objectweb.asm.tree.LabelNode[] clone(java.util.List,java.util.Map):227:229 -> a
    5:24:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode cloneAnnotations(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):241:260 -> a
    int getType() -> b
    1:5:void acceptAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor):180:184 -> b
    6:15:void acceptAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor):183:192 -> b
    16:16:void acceptAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor):191:191 -> b
com.android.tools.r8.org.objectweb.asm.tree.AnnotationNode -> com.android.tools.r8.A.a.a.E.b:
    java.util.List values -> b
    java.lang.String desc -> a
    1:3:void <init>(java.lang.String):63:65 -> <init>
    4:5:void <init>(int,java.lang.String):77:78 -> <init>
    6:7:void <init>(java.util.List):87:88 -> <init>
    void visitEnd() -> a
    1:8:void visit(java.lang.String,java.lang.Object):97:104 -> a
    9:13:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(byte[]):64:68 -> a
    9:13:void visit(java.lang.String,java.lang.Object):104 -> a
    14:16:void visit(java.lang.String,java.lang.Object):104:106 -> a
    17:21:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(boolean[]):75:79 -> a
    17:21:void visit(java.lang.String,java.lang.Object):106 -> a
    22:24:void visit(java.lang.String,java.lang.Object):106:108 -> a
    25:29:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(short[]):86:90 -> a
    25:29:void visit(java.lang.String,java.lang.Object):108 -> a
    30:32:void visit(java.lang.String,java.lang.Object):108:110 -> a
    33:37:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(char[]):97:101 -> a
    33:37:void visit(java.lang.String,java.lang.Object):110 -> a
    38:42:void visit(java.lang.String,java.lang.Object):110:114 -> a
    43:47:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(long[]):130:134 -> a
    43:47:void visit(java.lang.String,java.lang.Object):114 -> a
    48:50:void visit(java.lang.String,java.lang.Object):114:116 -> a
    51:55:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(float[]):119:123 -> a
    51:55:void visit(java.lang.String,java.lang.Object):116 -> a
    56:58:void visit(java.lang.String,java.lang.Object):116:118 -> a
    59:63:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(double[]):141:145 -> a
    59:63:void visit(java.lang.String,java.lang.Object):118 -> a
    64:66:void visit(java.lang.String,java.lang.Object):118:120 -> a
    67:73:void visitEnum(java.lang.String,java.lang.String,java.lang.String):126:132 -> a
    74:81:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,java.lang.String):137:144 -> a
    82:90:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitArray(java.lang.String):150:158 -> a
    91:98:void accept(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor):189:196 -> a
    99:115:void accept(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,java.lang.Object):210:226 -> a
com.android.tools.r8.org.objectweb.asm.tree.FieldInsnNode -> com.android.tools.r8.A.a.a.E.c:
    java.lang.String owner -> g
    java.lang.String desc -> i
    java.lang.String name -> h
    1:4:void <init>(int,java.lang.String,java.lang.String,java.lang.String):65:68 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):88:89 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):94:94 -> a
    int getType() -> b
com.android.tools.r8.org.objectweb.asm.tree.FrameNode -> com.android.tools.r8.A.a.a.E.d:
    int type -> g
    java.util.List stack -> i
    java.util.List local -> h
    1:1:void <init>():73:73 -> <init>
    2:22:void <init>(int,int,java.lang.Object[],int,java.lang.Object[]):97:117 -> <init>
    23:23:void <init>(int,int,java.lang.Object[],int,java.lang.Object[]):114:114 -> <init>
    24:24:void <init>(int,int,java.lang.Object[],int,java.lang.Object[]):109:109 -> <init>
    25:25:void <init>(int,int,java.lang.Object[],int,java.lang.Object[]):106:106 -> <init>
    26:27:void <init>(int,int,java.lang.Object[],int,java.lang.Object[]):102:103 -> <init>
    1:19:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):128:146 -> a
    20:20:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):143:143 -> a
    21:21:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):140:140 -> a
    22:22:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):137:137 -> a
    23:23:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):134:134 -> a
    24:24:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):131:131 -> a
    25:44:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):152:171 -> a
    45:51:java.lang.Object[] asArray(java.util.List):178:184 -> a
    int getType() -> b
com.android.tools.r8.org.objectweb.asm.tree.IincInsnNode -> com.android.tools.r8.A.a.a.E.e:
    int incr -> h
    int var -> g
    1:3:void <init>(int,int):54:56 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):66:67 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72:72 -> a
    int getType() -> b
com.android.tools.r8.org.objectweb.asm.tree.InsnList -> com.android.tools.r8.A.a.a.E.f:
    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode[] cache -> d
    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode firstInsn -> b
    int size -> a
    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode lastInsn -> c
    1:1:void <init>():38:38 -> <init>
    1:1:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode getLast():79:79 -> a
    2:8:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode get(int):93:99 -> a
    9:9:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode get(int):94:94 -> a
    10:13:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):142:145 -> a
    14:24:void add(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):225:235 -> a
    1:4:int indexOf(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):130:133 -> b
    5:10:void resetLabels():469:474 -> b
    1:1:int size():61:61 -> c
    1:6:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode[] toArray():176:181 -> d
com.android.tools.r8.org.objectweb.asm.tree.InsnNode -> com.android.tools.r8.A.a.a.E.g:
    1:1:void <init>(int):55:55 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):65:66 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):71:71 -> a
    int getType() -> b
com.android.tools.r8.org.objectweb.asm.tree.IntInsnNode -> com.android.tools.r8.A.a.a.E.h:
    int operand -> g
    1:2:void <init>(int,int):51:52 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):71:72 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):77:77 -> a
    int getType() -> b
com.android.tools.r8.org.objectweb.asm.tree.InvokeDynamicInsnNode -> com.android.tools.r8.A.a.a.E.i:
    java.lang.String name -> g
    java.lang.String desc -> h
    com.android.tools.r8.org.objectweb.asm.Handle bsm -> i
    java.lang.Object[] bsmArgs -> j
    1:5:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):70:74 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):84:85 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):90:90 -> a
    int getType() -> b
com.android.tools.r8.org.objectweb.asm.tree.JumpInsnNode -> com.android.tools.r8.A.a.a.E.j:
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode label -> g
    1:2:void <init>(int,com.android.tools.r8.org.objectweb.asm.tree.LabelNode):57:58 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):79:80 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):85:85 -> a
    4:4:com.android.tools.r8.org.objectweb.asm.tree.LabelNode com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.clone(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.Map):215:215 -> a
    4:4:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):85 -> a
    5:5:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):85:85 -> a
    int getType() -> b
com.android.tools.r8.org.objectweb.asm.tree.LabelNode -> com.android.tools.r8.A.a.a.E.k:
    com.android.tools.r8.org.objectweb.asm.Label value -> g
    1:1:void <init>():40:40 -> <init>
    1:1:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):68:68 -> a
    2:2:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):73:73 -> a
    int getType() -> b
    1:4:com.android.tools.r8.org.objectweb.asm.Label getLabel():60:63 -> c
    1:1:void resetLabel():77:77 -> d
com.android.tools.r8.org.objectweb.asm.tree.LdcInsnNode -> com.android.tools.r8.A.a.a.E.l:
    java.lang.Object cst -> g
    1:2:void <init>(java.lang.Object):55:56 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):66:67 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72:72 -> a
    int getType() -> b
com.android.tools.r8.org.objectweb.asm.tree.LineNumberNode -> com.android.tools.r8.A.a.a.E.m:
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode start -> h
    int line -> g
    1:3:void <init>(int,com.android.tools.r8.org.objectweb.asm.tree.LabelNode):55:57 -> <init>
    1:1:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):67:67 -> a
    2:2:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72:72 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.LabelNode com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.clone(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.Map):215:215 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72 -> a
    4:4:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72:72 -> a
    int getType() -> b
com.android.tools.r8.org.objectweb.asm.tree.LocalVariableAnnotationNode -> com.android.tools.r8.A.a.a.E.n:
    java.util.List end -> f
    java.util.List start -> e
    java.util.List index -> g
    1:4:void <init>(int,int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.tree.LabelNode[],com.android.tools.r8.org.objectweb.asm.tree.LabelNode[],int[],java.lang.String):115:118 -> <init>
    1:10:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor,boolean):128:137 -> a
    11:11:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor,boolean):136:136 -> a
com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode -> com.android.tools.r8.A.a.a.E.o:
    int index -> f
    java.lang.String name -> a
    java.lang.String signature -> c
    java.lang.String desc -> b
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode end -> e
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode start -> d
    1:7:void <init>(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.tree.LabelNode,com.android.tools.r8.org.objectweb.asm.tree.LabelNode,int):74:80 -> <init>
com.android.tools.r8.org.objectweb.asm.tree.LookupSwitchInsnNode -> com.android.tools.r8.A.a.a.E.p:
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode dflt -> g
    java.util.List labels -> i
    java.util.List keys -> h
    1:4:void <init>(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,int[],com.android.tools.r8.org.objectweb.asm.tree.LabelNode[]):61:64 -> <init>
    1:10:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):74:83 -> a
    11:11:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):88:88 -> a
    12:12:com.android.tools.r8.org.objectweb.asm.tree.LabelNode com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.clone(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.Map):215:215 -> a
    12:12:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):89 -> a
    13:15:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):89:91 -> a
    int getType() -> b
com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode -> com.android.tools.r8.A.a.a.E.q:
    java.lang.String owner -> g
    java.lang.String desc -> i
    java.lang.String name -> h
    boolean itf -> j
    1:5:void <init>(int,java.lang.String,java.lang.String,java.lang.String,boolean):91:95 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):115:116 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):121:121 -> a
    int getType() -> b
com.android.tools.r8.org.objectweb.asm.tree.MethodNode -> com.android.tools.r8.A.a.a.E.s:
    java.util.List attrs -> p
    java.util.List invisibleTypeAnnotations -> o
    java.lang.String desc -> j
    java.util.List localVariables -> z
    java.lang.Object annotationDefault -> q
    java.util.List tryCatchBlocks -> w
    com.android.tools.r8.org.objectweb.asm.tree.InsnList instructions -> v
    java.util.List invisibleLocalVariableAnnotations -> B
    java.util.List visibleLocalVariableAnnotations -> A
    java.util.List[] visibleParameterAnnotations -> s
    java.util.List[] invisibleParameterAnnotations -> u
    int maxStack -> x
    int maxLocals -> y
    int invisibleAnnotableParameterCount -> t
    java.util.List visibleTypeAnnotations -> n
    int visibleAnnotableParameterCount -> r
    java.util.List invisibleAnnotations -> m
    java.util.List visibleAnnotations -> l
    boolean visited -> C
    java.util.List parameters -> k
    1:11:void <init>(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):220:230 -> <init>
    1:1:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotationDefault():248:248 -> a
    2:12:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):260:270 -> a
    13:15:void visitAnnotableParameterCount(int,boolean):296:298 -> a
    16:34:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):306:324 -> a
    35:38:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):331:334 -> a
    39:45:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):349:355 -> a
    46:46:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):349:349 -> a
    47:47:void visitInsn(int):360:360 -> a
    48:48:void visitTypeInsn(int,java.lang.String):375:375 -> a
    49:49:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):381:381 -> a
    50:57:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):391:398 -> a
    58:58:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):407:407 -> a
    59:59:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):414:414 -> a
    60:60:void visitLabel(com.android.tools.r8.org.objectweb.asm.Label):419:419 -> a
    61:61:void visitLdcInsn(java.lang.Object):424:424 -> a
    62:62:void visitIincInsn(int,int):429:429 -> a
    63:63:void visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):435:435 -> a
    64:64:void visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):440:440 -> a
    65:65:void visitMultiANewArrayInsn(java.lang.String,int):445:445 -> a
    66:66:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):452:452 -> a
    67:67:int com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.getOpcode():137:137 -> a
    67:67:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):453 -> a
    68:68:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.getPrevious():154:154 -> a
    68:68:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):454 -> a
    69:79:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):457:467 -> a
    80:84:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):475:479 -> a
    85:85:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):478:478 -> a
    86:91:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):509:514 -> a
    92:92:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):512:512 -> a
    93:95:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):526:528 -> a
    96:96:void com.android.tools.r8.org.objectweb.asm.tree.LocalVariableAnnotationNode.<init>(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.tree.LabelNode[],com.android.tools.r8.org.objectweb.asm.tree.LabelNode[],int[],java.lang.String):87:87 -> a
    96:96:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):528 -> a
    97:105:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):530:538 -> a
    106:108:com.android.tools.r8.org.objectweb.asm.tree.LabelNode[] getLabelNodes(com.android.tools.r8.org.objectweb.asm.Label[]):575:577 -> a
    109:115:java.lang.Object[] getLabelNodes(java.lang.Object[]):583:589 -> a
    116:118:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):693:695 -> a
    119:119:void com.android.tools.r8.org.objectweb.asm.tree.ParameterNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):66:66 -> a
    119:119:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):695 -> a
    120:143:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):699:722 -> a
    144:153:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):721:730 -> a
    154:204:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):729:779 -> a
    205:212:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.updateIndex(int):89:96 -> a
    205:212:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):779 -> a
    213:213:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):780:780 -> a
    214:215:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):107:108 -> a
    214:215:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):780 -> a
    216:222:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):107:113 -> a
    216:222:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):780 -> a
    223:232:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):112:121 -> a
    223:232:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):780 -> a
    233:233:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):120:120 -> a
    233:233:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):780 -> a
    234:238:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):784:788 -> a
    239:240:void com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):89:90 -> a
    239:240:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):788 -> a
    241:241:void com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):89:89 -> a
    241:241:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):788 -> a
    242:255:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):792:805 -> a
    void visitCode() -> b
    1:4:void visitParameter(java.lang.String,int):239:242 -> b
    5:5:void visitIntInsn(int,int):365:365 -> b
    6:17:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):485:496 -> b
    18:18:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):545:545 -> b
    19:22:com.android.tools.r8.org.objectweb.asm.tree.LabelNode getLabelNode(com.android.tools.r8.org.objectweb.asm.Label):568:571 -> b
    1:11:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):278:288 -> c
    12:13:void visitMaxs(int,int):550:551 -> c
    1:1:void visitVarInsn(int,int):370:370 -> d
com.android.tools.r8.org.objectweb.asm.tree.MethodNode$1 -> com.android.tools.r8.A.a.a.E.r:
    com.android.tools.r8.org.objectweb.asm.tree.MethodNode this$0 -> a
    1:1:void <init>(com.android.tools.r8.org.objectweb.asm.tree.MethodNode,int):249:249 -> <init>
    1:2:boolean add(java.lang.Object):252:253 -> add
com.android.tools.r8.org.objectweb.asm.tree.MultiANewArrayInsnNode -> com.android.tools.r8.A.a.a.E.t:
    java.lang.String desc -> g
    int dims -> h
    1:3:void <init>(java.lang.String,int):54:56 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):66:67 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72:72 -> a
    int getType() -> b
com.android.tools.r8.org.objectweb.asm.tree.ParameterNode -> com.android.tools.r8.A.a.a.E.u:
    java.lang.String name -> a
    int access -> b
    1:3:void <init>(java.lang.String,int):55:57 -> <init>
com.android.tools.r8.org.objectweb.asm.tree.TableSwitchInsnNode -> com.android.tools.r8.A.a.a.E.v:
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode dflt -> i
    int max -> h
    java.util.List labels -> j
    int min -> g
    1:5:void <init>(int,int,com.android.tools.r8.org.objectweb.asm.tree.LabelNode,com.android.tools.r8.org.objectweb.asm.tree.LabelNode[]):66:70 -> <init>
    1:6:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):80:85 -> a
    7:7:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):90:90 -> a
    8:8:com.android.tools.r8.org.objectweb.asm.tree.LabelNode com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.clone(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.Map):215:215 -> a
    8:8:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):90 -> a
    9:10:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):90:91 -> a
    int getType() -> b
com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode -> com.android.tools.r8.A.a.a.E.w:
    java.util.List invisibleTypeAnnotations -> f
    java.util.List visibleTypeAnnotations -> e
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode start -> a
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode handler -> c
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode end -> b
    java.lang.String type -> d
    1:5:void <init>(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,com.android.tools.r8.org.objectweb.asm.tree.LabelNode,com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.lang.String):73:77 -> <init>
com.android.tools.r8.org.objectweb.asm.tree.TypeAnnotationNode -> com.android.tools.r8.A.a.a.E.x:
    int typeRef -> c
    com.android.tools.r8.org.objectweb.asm.TypePath typePath -> d
    1:3:void <init>(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String):62:64 -> <init>
    4:6:void <init>(int,int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String):81:83 -> <init>
com.android.tools.r8.org.objectweb.asm.tree.TypeInsnNode -> com.android.tools.r8.A.a.a.E.y:
    java.lang.String desc -> g
    1:2:void <init>(int,java.lang.String):56:57 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):77:78 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):83:83 -> a
    int getType() -> b
com.android.tools.r8.org.objectweb.asm.tree.Util -> com.android.tools.r8.A.a.a.E.z:
    1:3:java.util.List asArrayList(int):44:46 -> a
    4:8:java.util.List asArrayList(java.lang.Object[]):53:57 -> a
    9:13:java.util.List asArrayList(int[]):108:112 -> a
    14:16:java.util.List asArrayList(int,java.lang.Object[]):151:153 -> a
com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode -> com.android.tools.r8.A.a.a.E.A:
    int var -> g
    1:2:void <init>(int,int):53:54 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):74:75 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):80:80 -> a
    int getType() -> b
com.android.tools.r8.org.objectweb.asm.util.Printer -> com.android.tools.r8.A.a.a.F.a:
    java.lang.String[] OPCODES -> a
    1:1:void <clinit>():53:53 -> <clinit>
com.android.tools.r8.origin.ArchiveEntryOrigin -> com.android.tools.r8.origin.ArchiveEntryOrigin:
    java.lang.String entryName -> a
    1:2:void <init>(java.lang.String,com.android.tools.r8.origin.Origin):18:19 -> <init>
    1:1:java.lang.String getEntryName():28:28 -> getEntryName
    1:1:java.lang.String part():24:24 -> part
com.android.tools.r8.origin.CommandLineOrigin -> com.android.tools.r8.origin.a:
    com.android.tools.r8.origin.CommandLineOrigin INSTANCE -> a
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>():12:12 -> <init>
com.android.tools.r8.origin.EmbeddedOrigin -> com.android.tools.r8.origin.b:
    com.android.tools.r8.origin.EmbeddedOrigin INSTANCE -> a
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>():12:12 -> <init>
com.android.tools.r8.origin.Origin -> com.android.tools.r8.origin.Origin:
    1:17:void <clinit>():26:42 -> <clinit>
    1:1:void <init>(com.android.tools.r8.origin.Origin$1):27:27 -> <init>
    2:3:void <init>():67:68 -> <init>
    4:6:void <init>(com.android.tools.r8.origin.Origin):71:73 -> <init>
    1:2:java.util.List buildParts(int):87:88 -> buildParts
    1:1:int compareTo(java.lang.Object):26:26 -> compareTo
    2:11:int compareTo(com.android.tools.r8.origin.Origin):130:139 -> compareTo
    1:8:boolean equals(java.lang.Object):115:122 -> equals
    1:4:com.android.tools.r8.origin.Origin getFromHierarchy(java.lang.Class):101:104 -> getFromHierarchy
    1:2:int hashCode():145:146 -> hashCode
    1:1:com.android.tools.r8.origin.Origin parent():79:79 -> parent
    1:1:java.util.List parts():83:83 -> parts
    1:1:com.android.tools.r8.origin.Origin root():58:58 -> root
    1:1:java.lang.String toString():153:153 -> toString
    1:1:com.android.tools.r8.origin.Origin unknown():62:62 -> unknown
com.android.tools.r8.origin.Origin$1 -> com.android.tools.r8.origin.Origin$a:
    1:1:void <init>():30:30 -> <init>
    1:1:java.util.List buildParts(int):38:38 -> buildParts
    1:1:int compareTo(java.lang.Object):30:30 -> compareTo
com.android.tools.r8.origin.Origin$2 -> com.android.tools.r8.origin.Origin$b:
    1:1:void <init>():43:43 -> <init>
    1:2:java.util.List buildParts(int):51:52 -> buildParts
    1:1:int compareTo(java.lang.Object):43:43 -> compareTo
com.android.tools.r8.origin.PathOrigin -> com.android.tools.r8.origin.PathOrigin:
    java.nio.file.Path path -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():13:13 -> <clinit>
    1:3:void <init>(java.nio.file.Path):19:21 -> <init>
    1:1:java.nio.file.Path getPath():30:30 -> getPath
    1:1:java.lang.String part():26:26 -> part
com.android.tools.r8.origin.SynthesizedOrigin -> com.android.tools.r8.origin.c:
    java.lang.String reason -> a
    1:2:void <init>(java.lang.String,java.lang.Class):13:14 -> <init>
    1:1:java.lang.String part():20:20 -> part
com.android.tools.r8.position.MethodPosition -> com.android.tools.r8.position.MethodPosition:
    com.android.tools.r8.graph.DexMethod method -> a
    1:2:void <init>(com.android.tools.r8.graph.DexMethod):20:21 -> <init>
    1:2:boolean equals(java.lang.Object):63:64 -> equals
    1:1:java.lang.String getDescription():53:53 -> getDescription
    1:1:java.lang.String getHolder():31:31 -> getHolder
    1:1:java.lang.String getName():26:26 -> getName
    1:3:java.util.List getParameterTypes():41:43 -> getParameterTypes
    1:1:java.lang.String getReturnType():36:36 -> getReturnType
    1:1:int hashCode():58:58 -> hashCode
    1:1:java.lang.String toString():48:48 -> toString
com.android.tools.r8.position.Position -> com.android.tools.r8.position.Position:
    1:1:void <clinit>():19:19 -> <clinit>
com.android.tools.r8.position.Position$1 -> com.android.tools.r8.position.Position$a:
    1:1:void <init>():19:19 -> <init>
com.android.tools.r8.position.TextPosition -> com.android.tools.r8.position.TextPosition:
    long offset -> a
    int line -> b
    int column -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():12:12 -> <clinit>
    1:7:void <init>(long,int,int):27:33 -> <init>
    1:3:boolean equals(java.lang.Object):75:77 -> equals
    1:1:int getColumn():48:48 -> getColumn
    1:1:java.lang.String getDescription():62:62 -> getDescription
    1:1:int getLine():40:40 -> getLine
    1:1:long getOffset():52:52 -> getOffset
    1:1:int hashCode():67:67 -> hashCode
    1:1:java.lang.String toString():57:57 -> toString
com.android.tools.r8.position.TextRange -> com.android.tools.r8.position.TextRange:
    com.android.tools.r8.position.TextPosition end -> b
    com.android.tools.r8.position.TextPosition start -> a
    1:3:void <init>(com.android.tools.r8.position.TextPosition,com.android.tools.r8.position.TextPosition):14:16 -> <init>
    1:3:boolean equals(java.lang.Object):43:45 -> equals
    1:1:java.lang.String getDescription():57:57 -> getDescription
    1:1:com.android.tools.r8.position.TextPosition getEnd():30:30 -> getEnd
    1:1:com.android.tools.r8.position.TextPosition getStart():23:23 -> getStart
    1:1:int hashCode():35:35 -> hashCode
    1:1:java.lang.String toString():52:52 -> toString
com.android.tools.r8.references.ArrayReference -> com.android.tools.r8.references.ArrayReference:
    java.lang.String descriptor -> c
    com.android.tools.r8.references.TypeReference baseType -> b
    boolean $assertionsDisabled -> d
    int dimensions -> a
    1:1:void <clinit>():11:11 -> <clinit>
    1:5:void <init>(int,com.android.tools.r8.references.TypeReference,java.lang.String):18:22 -> <init>
    1:10:com.android.tools.r8.references.ArrayReference fromDescriptor(java.lang.String):26:35 -> a
    11:14:com.android.tools.r8.references.ArrayReference fromBaseType(com.android.tools.r8.references.TypeReference,int):39:42 -> a
    1:1:com.android.tools.r8.references.TypeReference getBaseType():54:54 -> getBaseType
    1:1:java.lang.String getDescriptor():69:69 -> getDescriptor
    1:1:int getDimensions():46:46 -> getDimensions
    1:1:com.android.tools.r8.references.TypeReference getMemberType():50:50 -> getMemberType
    1:1:int hashCode():79:79 -> hashCode
com.android.tools.r8.references.ClassReference -> com.android.tools.r8.references.ClassReference:
    java.lang.String descriptor -> a
    1:2:void <init>(java.lang.String):15:16 -> <init>
    1:1:com.android.tools.r8.references.ClassReference fromDescriptor(java.lang.String):20:20 -> a
    1:1:java.lang.String getBinaryName():24:24 -> getBinaryName
    1:1:java.lang.String getDescriptor():39:39 -> getDescriptor
    1:1:int hashCode():49:49 -> hashCode
    1:1:java.lang.String toString():54:54 -> toString
com.android.tools.r8.references.FieldReference -> com.android.tools.r8.references.FieldReference:
    com.android.tools.r8.references.ClassReference holderClass -> a
    java.lang.String fieldName -> b
    com.android.tools.r8.references.TypeReference fieldType -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():15:15 -> <clinit>
    1:7:void <init>(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.references.TypeReference):25:31 -> <init>
    boolean isUnknown() -> a
    1:7:boolean equals(java.lang.Object):54:60 -> equals
    1:1:java.lang.String getFieldName():39:39 -> getFieldName
    1:1:com.android.tools.r8.references.TypeReference getFieldType():43:43 -> getFieldType
    1:1:com.android.tools.r8.references.ClassReference getHolderClass():35:35 -> getHolderClass
    1:1:int hashCode():65:65 -> hashCode
    1:1:java.lang.String toString():70:70 -> toString
com.android.tools.r8.references.FieldReference$UnknownFieldReference -> com.android.tools.r8.references.FieldReference$a:
    1:1:void <init>(com.android.tools.r8.references.ClassReference,java.lang.String):76:76 -> <init>
    boolean isUnknown() -> a
com.android.tools.r8.references.MethodReference -> com.android.tools.r8.references.MethodReference:
    com.android.tools.r8.references.ClassReference holderClass -> a
    java.util.List formalTypes -> c
    boolean $assertionsDisabled -> e
    com.android.tools.r8.references.TypeReference returnType -> d
    java.lang.String methodName -> b
    1:1:void <clinit>():19:19 -> <clinit>
    1:8:void <init>(com.android.tools.r8.references.ClassReference,java.lang.String,java.util.List,com.android.tools.r8.references.TypeReference):30:37 -> <init>
    1:8:boolean equals(java.lang.Object):68:75 -> equals
    1:1:java.util.List getFormalTypes():53:53 -> getFormalTypes
    1:1:com.android.tools.r8.references.ClassReference getHolderClass():45:45 -> getHolderClass
    1:2:java.lang.String getMethodDescriptor():84:85 -> getMethodDescriptor
    3:5:java.lang.String getMethodDescriptor():84:86 -> getMethodDescriptor
    1:1:java.lang.String getMethodName():49:49 -> getMethodName
    1:1:com.android.tools.r8.references.TypeReference getReturnType():57:57 -> getReturnType
    1:1:int hashCode():80:80 -> hashCode
    1:1:java.lang.String toString():91:91 -> toString
com.android.tools.r8.references.MethodReference$UnknownMethodReference -> com.android.tools.r8.references.MethodReference$a:
    1:1:void <init>(com.android.tools.r8.references.ClassReference,java.lang.String):102:102 -> <init>
com.android.tools.r8.references.PrimitiveReference -> com.android.tools.r8.references.PrimitiveReference:
    com.android.tools.r8.references.PrimitiveReference LONG -> g
    com.android.tools.r8.references.PrimitiveReference FLOAT -> f
    com.android.tools.r8.references.PrimitiveReference DOUBLE -> h
    com.android.tools.r8.references.PrimitiveReference CHAR -> c
    boolean $assertionsDisabled -> i
    com.android.tools.r8.references.PrimitiveReference BYTE -> b
    com.android.tools.r8.references.PrimitiveReference INT -> e
    com.android.tools.r8.references.PrimitiveReference SHORT -> d
    com.android.tools.r8.references.PrimitiveReference BOOL -> a
    1:60:void <clinit>():9:68 -> <clinit>
    1:1:void <init>(com.android.tools.r8.references.PrimitiveReference$1):10:10 -> <init>
    2:2:void <init>():76:76 -> <init>
    1:1:int hashCode():122:122 -> hashCode
com.android.tools.r8.references.PrimitiveReference$1 -> com.android.tools.r8.references.PrimitiveReference$a:
    1:1:void <init>():13:13 -> <init>
com.android.tools.r8.references.PrimitiveReference$2 -> com.android.tools.r8.references.PrimitiveReference$b:
    1:1:void <init>():21:21 -> <init>
com.android.tools.r8.references.PrimitiveReference$3 -> com.android.tools.r8.references.PrimitiveReference$c:
    1:1:void <init>():29:29 -> <init>
com.android.tools.r8.references.PrimitiveReference$4 -> com.android.tools.r8.references.PrimitiveReference$d:
    1:1:void <init>():37:37 -> <init>
com.android.tools.r8.references.PrimitiveReference$5 -> com.android.tools.r8.references.PrimitiveReference$e:
    1:1:void <init>():45:45 -> <init>
com.android.tools.r8.references.PrimitiveReference$6 -> com.android.tools.r8.references.PrimitiveReference$f:
    1:1:void <init>():53:53 -> <init>
com.android.tools.r8.references.PrimitiveReference$7 -> com.android.tools.r8.references.PrimitiveReference$g:
    1:1:void <init>():61:61 -> <init>
com.android.tools.r8.references.PrimitiveReference$8 -> com.android.tools.r8.references.PrimitiveReference$h:
    1:1:void <init>():69:69 -> <init>
com.android.tools.r8.references.Reference -> com.android.tools.r8.references.Reference:
    com.android.tools.r8.references.Reference instance -> e
    java.util.concurrent.ConcurrentMap methods -> c
    java.util.concurrent.ConcurrentMap fields -> d
    java.util.concurrent.ConcurrentMap classes -> a
    java.util.concurrent.ConcurrentMap arrays -> b
    1:8:void <clinit>():30:37 -> <clinit>
    1:1:void <init>():57:57 -> <init>
    2:15:void <init>():42:55 -> <init>
    1:4:com.android.tools.r8.references.Reference getInstance():62:65 -> a
    5:5:com.android.tools.r8.references.TypeReference typeFromClass(java.lang.Class):89:89 -> a
    6:6:com.android.tools.r8.references.ArrayReference lambda$array$0(com.android.tools.r8.references.TypeReference,int,java.lang.String):136:136 -> a
    7:11:com.android.tools.r8.references.MethodReference lambda$method$1(com.android.tools.r8.references.MethodReference):149:153 -> a
    12:12:com.android.tools.r8.references.FieldReference lambda$field$2(com.android.tools.r8.references.FieldReference):194:194 -> a
    1:4:com.android.tools.r8.references.ArrayReference array(com.android.tools.r8.references.TypeReference,int):132:135 -> array
    1:1:com.android.tools.r8.references.ArrayReference arrayFromDescriptor(java.lang.String):126:126 -> arrayFromDescriptor
    1:1:com.android.tools.r8.references.MethodReference classConstructor(com.android.tools.r8.references.ClassReference):185:185 -> classConstructor
    1:1:com.android.tools.r8.references.ClassReference classFromBinaryName(java.lang.String):107:107 -> classFromBinaryName
    1:1:com.android.tools.r8.references.ClassReference classFromClass(java.lang.Class):121:121 -> classFromClass
    1:1:com.android.tools.r8.references.ClassReference classFromDescriptor(java.lang.String):98:98 -> classFromDescriptor
    1:1:com.android.tools.r8.references.ClassReference classFromTypeName(java.lang.String):116:116 -> classFromTypeName
    1:2:com.android.tools.r8.references.FieldReference field(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.references.TypeReference):191:192 -> field
    1:4:com.android.tools.r8.references.FieldReference fieldFromField(java.lang.reflect.Field):199:202 -> fieldFromField
    1:3:com.android.tools.r8.references.MethodReference method(com.android.tools.r8.references.ClassReference,java.lang.String,java.util.List,com.android.tools.r8.references.TypeReference):145:147 -> method
    1:13:com.android.tools.r8.references.MethodReference methodFromMethod(java.lang.reflect.Method):158:170 -> methodFromMethod
    14:14:com.android.tools.r8.references.MethodReference methodFromMethod(java.lang.reflect.Method):166:166 -> methodFromMethod
    15:21:com.android.tools.r8.references.MethodReference methodFromMethod(java.lang.reflect.Constructor):175:181 -> methodFromMethod
    1:20:com.android.tools.r8.references.PrimitiveReference com.android.tools.r8.references.PrimitiveReference.fromDescriptor(java.lang.String):79:98 -> primitiveFromDescriptor
    1:20:com.android.tools.r8.references.PrimitiveReference primitiveFromDescriptor(java.lang.String):93 -> primitiveFromDescriptor
    21:33:com.android.tools.r8.references.PrimitiveReference com.android.tools.r8.references.PrimitiveReference.fromDescriptor(java.lang.String):82:94 -> primitiveFromDescriptor
    21:33:com.android.tools.r8.references.PrimitiveReference primitiveFromDescriptor(java.lang.String):93 -> primitiveFromDescriptor
    34:40:com.android.tools.r8.references.PrimitiveReference com.android.tools.r8.references.PrimitiveReference.fromDescriptor(java.lang.String):90:96 -> primitiveFromDescriptor
    34:40:com.android.tools.r8.references.PrimitiveReference primitiveFromDescriptor(java.lang.String):93 -> primitiveFromDescriptor
    41:41:com.android.tools.r8.references.PrimitiveReference com.android.tools.r8.references.PrimitiveReference.fromDescriptor(java.lang.String):86:86 -> primitiveFromDescriptor
    41:41:com.android.tools.r8.references.PrimitiveReference primitiveFromDescriptor(java.lang.String):93 -> primitiveFromDescriptor
    42:42:com.android.tools.r8.references.PrimitiveReference com.android.tools.r8.references.PrimitiveReference.fromDescriptor(java.lang.String):84:84 -> primitiveFromDescriptor
    42:42:com.android.tools.r8.references.PrimitiveReference primitiveFromDescriptor(java.lang.String):93 -> primitiveFromDescriptor
    1:1:com.android.tools.r8.references.TypeReference returnTypeFromDescriptor(java.lang.String):69:69 -> returnTypeFromDescriptor
    1:7:com.android.tools.r8.references.TypeReference typeFromDescriptor(java.lang.String):73:79 -> typeFromDescriptor
    8:8:com.android.tools.r8.references.TypeReference typeFromDescriptor(java.lang.String):77:77 -> typeFromDescriptor
    9:9:com.android.tools.r8.references.TypeReference typeFromDescriptor(java.lang.String):75:75 -> typeFromDescriptor
    1:1:com.android.tools.r8.references.TypeReference typeFromTypeName(java.lang.String):84:84 -> typeFromTypeName
com.android.tools.r8.references.TypeReference -> com.android.tools.r8.references.TypeReference:
    1:1:java.lang.String getTypeName():62:62 -> getTypeName
com.android.tools.r8.retrace.AmbiguousComparator -> com.android.tools.r8.retrace.b:
    java.util.function.BiFunction getter -> a
    1:2:void <init>(java.util.function.BiFunction):21:22 -> <init>
    1:16:int compare(java.lang.Object,java.lang.Object):27:42 -> compare
    17:17:int compare(java.lang.Object,java.lang.Object):40:40 -> compare
com.android.tools.r8.retrace.AmbiguousComparator$SortKeys -> com.android.tools.r8.retrace.a:
    com.android.tools.r8.retrace.AmbiguousComparator$SortKeys CLASS -> a
    com.android.tools.r8.retrace.AmbiguousComparator$SortKeys[] $VALUES -> e
    com.android.tools.r8.retrace.AmbiguousComparator$SortKeys LINE -> d
    com.android.tools.r8.retrace.AmbiguousComparator$SortKeys METHOD -> b
    com.android.tools.r8.retrace.AmbiguousComparator$SortKeys SOURCE -> c
    1:4:void <clinit>():13:16 -> <clinit>
    5:5:void <clinit>():12:12 -> <clinit>
    1:1:void <init>(java.lang.String,int):12:12 -> <init>
com.android.tools.r8.retrace.Result -> com.android.tools.r8.retrace.Result:
    1:1:void <init>():12:12 -> <init>
com.android.tools.r8.retrace.Retrace -> com.android.tools.r8.retrace.Retrace:
    boolean $assertionsDisabled -> a
    1:5:void <clinit>():34:38 -> <clinit>
    1:1:void <init>():35:35 -> <init>
    1:7:com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer getMappingSupplier(java.lang.String,com.android.tools.r8.DiagnosticsHandler):95:101 -> a
    8:9:com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer getMappingSupplier(java.lang.String,com.android.tools.r8.DiagnosticsHandler):97:98 -> a
    10:12:com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer getMappingSupplier(java.lang.String,com.android.tools.r8.DiagnosticsHandler):97:99 -> a
    13:13:java.lang.String lambda$getMappingSupplier$0(java.nio.file.Path):101:101 -> a
    14:14:void lambda$run$1(java.util.List):159:159 -> a
    15:15:void lambda$main$2(java.lang.String[]):169:169 -> a
    1:1:void main(java.lang.String[]):169:169 -> main
    2:10:void withMainProgramHandler(com.android.tools.r8.retrace.Retrace$MainAction):189:197 -> main
    2:10:void main(java.lang.String[]):169 -> main
    11:11:void withMainProgramHandler(com.android.tools.r8.retrace.Retrace$MainAction):192:192 -> main
    11:11:void main(java.lang.String[]):169 -> main
    1:22:void run(com.android.tools.r8.retrace.RetraceCommand):121:142 -> run
    23:25:void run(com.android.tools.r8.retrace.RetraceCommand):141:143 -> run
    26:28:void run(java.lang.String[]):148:150 -> run
    29:58:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):43:72 -> run
    29:58:void run(java.lang.String[]):151 -> run
    59:59:java.util.List getStackTraceFromFile(java.lang.String,com.android.tools.r8.DiagnosticsHandler):107:107 -> run
    59:59:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):72 -> run
    59:59:void run(java.lang.String[]):151 -> run
    60:61:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):72:73 -> run
    60:61:void run(java.lang.String[]):151 -> run
    62:63:java.util.List getStackTraceFromFile(java.lang.String,com.android.tools.r8.DiagnosticsHandler):109:110 -> run
    62:63:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):72 -> run
    62:63:void run(java.lang.String[]):151 -> run
    64:66:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):76:78 -> run
    64:66:void run(java.lang.String[]):151 -> run
    67:71:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):76:80 -> run
    67:71:void run(java.lang.String[]):151 -> run
    72:75:java.util.List getStackTraceFromStandardInput():173:176 -> run
    72:75:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):88 -> run
    72:75:void run(java.lang.String[]):151 -> run
    76:76:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler):88:88 -> run
    76:76:void run(java.lang.String[]):151 -> run
    77:83:void run(java.lang.String[]):154:160 -> run
    84:85:com.android.tools.r8.retrace.RetraceCommand$Builder parseArguments(java.lang.String[],com.android.tools.r8.DiagnosticsHandler) -> run
    84:85:void run(java.lang.String[]):151 -> run
com.android.tools.r8.retrace.Retrace$1 -> com.android.tools.r8.retrace.Retrace$a:
    1:1:void <init>():150:150 -> <init>
com.android.tools.r8.retrace.Retrace$MainAction -> com.android.tools.r8.retrace.Retrace$b:
com.android.tools.r8.retrace.Retrace$RetraceAbortException -> com.android.tools.r8.retrace.Retrace$c:
    1:1:void <init>():181:181 -> <init>
com.android.tools.r8.retrace.Retrace$RetraceDiagnosticsHandler -> com.android.tools.r8.retrace.Retrace$d:
    com.android.tools.r8.DiagnosticsHandler diagnosticsHandler -> a
    boolean printInfo -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():201:201 -> <clinit>
    1:4:void <init>(com.android.tools.r8.DiagnosticsHandler,boolean):206:209 -> <init>
    1:1:void error(com.android.tools.r8.Diagnostic):214:214 -> error
    1:2:void info(com.android.tools.r8.Diagnostic):224:225 -> info
    1:1:void warning(com.android.tools.r8.Diagnostic):219:219 -> warning
com.android.tools.r8.retrace.RetraceBase -> com.android.tools.r8.retrace.c:
    com.android.tools.r8.retrace.RetraceClassResult retrace(com.android.tools.r8.references.ClassReference) -> a
    com.android.tools.r8.retrace.RetraceMethodResult retrace(com.android.tools.r8.references.MethodReference) -> a
    com.android.tools.r8.retrace.RetraceTypeResult retrace(com.android.tools.r8.references.TypeReference) -> a
    java.lang.String retraceSourceFile(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.references.ClassReference,boolean) -> a
com.android.tools.r8.retrace.RetraceBaseImpl -> com.android.tools.r8.retrace.d:
    com.android.tools.r8.naming.ClassNameMapper classNameMapper -> a
    java.util.Set UNKNOWN_SOURCEFILE_NAMES -> b
    boolean $assertionsDisabled -> c
    1:4:void <clinit>():17:20 -> <clinit>
    1:2:void <init>(com.android.tools.r8.naming.ClassNameMapper):24:25 -> <init>
    1:1:com.android.tools.r8.retrace.RetraceBase create(com.android.tools.r8.naming.ClassNameMapper):29:29 -> a
    2:2:com.android.tools.r8.retrace.RetraceMethodResult retrace(com.android.tools.r8.references.MethodReference):34:34 -> a
    3:4:com.android.tools.r8.retrace.RetraceClassResult retrace(com.android.tools.r8.references.ClassReference):44:45 -> a
    5:5:com.android.tools.r8.retrace.RetraceClassResult retrace(com.android.tools.r8.references.ClassReference):44:44 -> a
    6:6:com.android.tools.r8.retrace.RetraceTypeResult retrace(com.android.tools.r8.references.TypeReference):58:58 -> a
    7:19:java.lang.String retraceSourceFile(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.references.ClassReference,boolean):69:81 -> a
    20:22:java.lang.String com.android.tools.r8.com.google.common.io.Files.getFileExtension(java.lang.String):792:794 -> a
    20:22:java.lang.String retraceSourceFile(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.references.ClassReference,boolean):82 -> a
    23:26:java.lang.String retraceSourceFile(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.references.ClassReference,boolean):83:86 -> a
    27:27:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    27:27:java.lang.String com.android.tools.r8.com.google.common.io.Files.getFileExtension(java.lang.String):791 -> a
    27:27:java.lang.String retraceSourceFile(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.references.ClassReference,boolean):82 -> a
    28:34:java.lang.String getClassSimpleName(java.lang.String):90:96 -> a
com.android.tools.r8.retrace.RetraceClassResult -> com.android.tools.r8.retrace.RetraceClassResult:
    com.android.tools.r8.references.ClassReference obfuscatedReference -> a
    com.android.tools.r8.naming.ClassNamingForNameMapper mapper -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():20:20 -> <clinit>
    1:3:void <init>(com.android.tools.r8.references.ClassReference,com.android.tools.r8.naming.ClassNamingForNameMapper):26:28 -> <init>
    1:1:com.android.tools.r8.references.ClassReference access$000(com.android.tools.r8.retrace.RetraceClassResult):21:21 -> a
    2:2:com.android.tools.r8.retrace.RetraceClassResult create(com.android.tools.r8.references.ClassReference,com.android.tools.r8.naming.ClassNamingForNameMapper):33:33 -> a
    3:4:java.util.List lambda$lookupField$0(com.android.tools.r8.naming.ClassNamingForNameMapper,java.lang.String):40:41 -> a
    5:15:java.lang.Object lookup(java.lang.String,java.util.function.BiFunction,com.android.tools.r8.retrace.RetraceClassResult$ResultConstructor):66:76 -> a
    16:21:void lambda$lookup$2(com.android.tools.r8.utils.Box,java.util.function.BiFunction,java.lang.String,com.android.tools.r8.retrace.RetraceClassResult$ResultConstructor,com.android.tools.r8.retrace.RetraceClassResult$Element):69:74 -> a
    1:2:com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName lambda$lookupMethod$1(com.android.tools.r8.naming.ClassNamingForNameMapper,java.lang.String):53:54 -> b
    1:1:com.android.tools.r8.retrace.Result forEach(java.util.function.Consumer):20:20 -> forEach
    2:2:com.android.tools.r8.retrace.RetraceClassResult forEach(java.util.function.Consumer):94:94 -> forEach
    1:1:com.android.tools.r8.retrace.RetraceFieldResult lookupField(java.lang.String):37:37 -> lookupField
    1:1:com.android.tools.r8.retrace.RetraceMethodResult lookupMethod(java.lang.String):50:50 -> lookupMethod
    1:4:java.util.stream.Stream stream():85:88 -> stream
    5:5:java.util.stream.Stream stream():85:85 -> stream
com.android.tools.r8.retrace.RetraceClassResult$Element -> com.android.tools.r8.retrace.RetraceClassResult$a:
    com.android.tools.r8.naming.ClassNamingForNameMapper mapper -> c
    com.android.tools.r8.references.ClassReference classReference -> b
    com.android.tools.r8.retrace.RetraceClassResult classResult -> a
    1:4:void <init>(com.android.tools.r8.retrace.RetraceClassResult,com.android.tools.r8.references.ClassReference,com.android.tools.r8.naming.ClassNamingForNameMapper):111:114 -> <init>
    1:1:com.android.tools.r8.naming.ClassNamingForNameMapper access$100(com.android.tools.r8.retrace.RetraceClassResult$Element):102:102 -> a
    2:2:com.android.tools.r8.references.ClassReference getClassReference():118:118 -> a
    3:4:java.lang.String retraceSourceFile(java.lang.String,com.android.tools.r8.retrace.RetraceBase):126:127 -> a
    5:5:java.lang.String retraceSourceFile(java.lang.String,com.android.tools.r8.retrace.RetraceBase):126:126 -> a
    6:6:com.android.tools.r8.retrace.RetraceFieldResult lookupField(java.lang.String):131:131 -> a
    7:7:java.lang.Object lookup(java.lang.String,java.util.function.BiFunction,com.android.tools.r8.retrace.RetraceClassResult$ResultConstructor):161:161 -> a
    7:7:com.android.tools.r8.retrace.RetraceFieldResult lookupField(java.lang.String):131 -> a
    8:8:java.lang.Object lookup(java.lang.String,java.util.function.BiFunction,com.android.tools.r8.retrace.RetraceClassResult$ResultConstructor):160:160 -> a
    8:8:com.android.tools.r8.retrace.RetraceFieldResult lookupField(java.lang.String):131 -> a
    9:9:com.android.tools.r8.retrace.RetraceFieldResult lookupField(java.lang.String):131:131 -> a
    10:11:java.util.List lambda$lookupField$0(com.android.tools.r8.naming.ClassNamingForNameMapper,java.lang.String):134:135 -> a
    1:1:com.android.tools.r8.retrace.RetraceMethodResult lookupMethod(java.lang.String):144:144 -> b
    2:2:java.lang.Object lookup(java.lang.String,java.util.function.BiFunction,com.android.tools.r8.retrace.RetraceClassResult$ResultConstructor):161:161 -> b
    2:2:com.android.tools.r8.retrace.RetraceMethodResult lookupMethod(java.lang.String):144 -> b
    3:3:java.lang.Object lookup(java.lang.String,java.util.function.BiFunction,com.android.tools.r8.retrace.RetraceClassResult$ResultConstructor):160:160 -> b
    3:3:com.android.tools.r8.retrace.RetraceMethodResult lookupMethod(java.lang.String):144 -> b
    4:4:com.android.tools.r8.retrace.RetraceMethodResult lookupMethod(java.lang.String):144:144 -> b
    5:6:com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName lambda$lookupMethod$1(com.android.tools.r8.naming.ClassNamingForNameMapper,java.lang.String):147:148 -> b
com.android.tools.r8.retrace.RetraceClassResult$ResultConstructor -> com.android.tools.r8.retrace.RetraceClassResult$b:
    java.lang.Object create(com.android.tools.r8.retrace.RetraceClassResult$Element,java.lang.Object,java.lang.String) -> a
com.android.tools.r8.retrace.RetraceCommand -> com.android.tools.r8.retrace.RetraceCommand:
    com.android.tools.r8.DiagnosticsHandler diagnosticsHandler -> c
    java.util.List stackTrace -> e
    com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer proguardMapProducer -> d
    boolean $assertionsDisabled -> g
    java.util.function.Consumer retracedStackTraceConsumer -> f
    boolean isVerbose -> a
    java.lang.String regularExpression -> b
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void <init>(boolean,java.lang.String,com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer,java.util.List,java.util.function.Consumer,com.android.tools.r8.retrace.RetraceCommand$1):14:14 -> <init>
    2:13:void <init>(boolean,java.lang.String,com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer,java.util.List,java.util.function.Consumer):29:40 -> <init>
    1:1:com.android.tools.r8.retrace.RetraceCommand$Builder builder(com.android.tools.r8.DiagnosticsHandler):49:49 -> a
    2:2:com.android.tools.r8.retrace.RetraceCommand$Builder builder():54:54 -> a
com.android.tools.r8.retrace.RetraceCommand$1 -> com.android.tools.r8.retrace.RetraceCommand$a:
    1:1:void <init>():54:54 -> <init>
com.android.tools.r8.retrace.RetraceCommand$Builder -> com.android.tools.r8.retrace.RetraceCommand$b:
    com.android.tools.r8.DiagnosticsHandler diagnosticsHandler -> b
    java.util.List stackTrace -> e
    com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer proguardMapProducer -> c
    java.util.function.Consumer retracedStackTraceConsumer -> f
    boolean isVerbose -> a
    java.lang.String regularExpression -> d
    1:1:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.retrace.RetraceCommand$1):57:57 -> <init>
    2:3:void <init>(com.android.tools.r8.DiagnosticsHandler):66:67 -> <init>
    1:1:com.android.tools.r8.retrace.RetraceCommand$Builder setVerbose(boolean):72:72 -> a
    2:2:com.android.tools.r8.retrace.RetraceCommand$Builder setProguardMapProducer(com.android.tools.r8.retrace.RetraceCommand$ProguardMapProducer):82:82 -> a
    3:3:com.android.tools.r8.retrace.RetraceCommand$Builder setRegularExpression(java.lang.String):93:93 -> a
    4:4:com.android.tools.r8.retrace.RetraceCommand$Builder setStackTrace(java.util.List):104:104 -> a
    5:5:com.android.tools.r8.retrace.RetraceCommand$Builder setRetracedStackTraceConsumer(java.util.function.Consumer):114:114 -> a
    6:23:com.android.tools.r8.retrace.RetraceCommand build():119:136 -> a
    24:24:com.android.tools.r8.retrace.RetraceCommand build():129:129 -> a
    25:25:com.android.tools.r8.retrace.RetraceCommand build():126:126 -> a
    26:26:com.android.tools.r8.retrace.RetraceCommand build():123:123 -> a
    27:27:com.android.tools.r8.retrace.RetraceCommand build():120:120 -> a
com.android.tools.r8.retrace.RetraceCommandLineResult -> com.android.tools.r8.retrace.e:
    java.util.List nodes -> a
    1:2:void <init>(java.util.List):13:14 -> <init>
    1:1:java.util.List getNodes():18:18 -> a
com.android.tools.r8.retrace.RetraceFieldResult -> com.android.tools.r8.retrace.RetraceFieldResult:
    java.util.List memberNamings -> b
    com.android.tools.r8.retrace.RetraceClassResult$Element classElement -> a
    java.lang.String obfuscatedName -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():20:20 -> <clinit>
    1:7:void <init>(com.android.tools.r8.retrace.RetraceClassResult$Element,java.util.List,java.lang.String):30:36 -> <init>
    8:8:void <init>(com.android.tools.r8.retrace.RetraceClassResult$Element,java.util.List,java.lang.String):35:35 -> <init>
    1:8:com.android.tools.r8.retrace.RetraceFieldResult$Element lambda$stream$0(com.android.tools.r8.naming.MemberNaming):64:71 -> a
    9:9:com.android.tools.r8.retrace.RetraceFieldResult$Element lambda$stream$0(com.android.tools.r8.naming.MemberNaming):70:70 -> a
    10:22:com.android.tools.r8.retrace.RetraceFieldResult$Element lambda$stream$0(com.android.tools.r8.naming.MemberNaming):69:81 -> a
    23:23:com.android.tools.r8.retrace.RetraceFieldResult$Element lambda$stream$0(com.android.tools.r8.naming.MemberNaming):76:76 -> a
    1:1:com.android.tools.r8.retrace.Result forEach(java.util.function.Consumer):20:20 -> forEach
    2:2:com.android.tools.r8.retrace.RetraceFieldResult forEach(java.util.function.Consumer):87:87 -> forEach
    1:1:boolean hasRetraceResult():40:40 -> stream
    1:1:java.util.stream.Stream stream():53 -> stream
    2:6:java.util.stream.Stream stream():54:58 -> stream
    7:15:java.util.stream.Stream stream():54:62 -> stream
com.android.tools.r8.retrace.RetraceFieldResult$1 -> com.android.tools.r8.retrace.RetraceFieldResult$a:
com.android.tools.r8.retrace.RetraceFieldResult$Element -> com.android.tools.r8.retrace.RetraceFieldResult$b:
    com.android.tools.r8.references.FieldReference fieldReference -> a
    1:1:void <init>(com.android.tools.r8.retrace.RetraceFieldResult,com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.references.FieldReference,com.android.tools.r8.retrace.RetraceFieldResult$1):91:91 -> <init>
    2:4:void <init>(com.android.tools.r8.retrace.RetraceFieldResult,com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.references.FieldReference):100:102 -> <init>
    1:1:com.android.tools.r8.references.FieldReference getFieldReference():107:107 -> a
com.android.tools.r8.retrace.RetraceInvalidStackTraceLineDiagnostics -> com.android.tools.r8.retrace.RetraceInvalidStackTraceLineDiagnostics:
    java.lang.String message -> b
    int lineNumber -> a
    1:3:void <init>(int,java.lang.String):23:25 -> <init>
    1:1:com.android.tools.r8.retrace.RetraceInvalidStackTraceLineDiagnostics createNull(int):44:44 -> createNull
    1:2:com.android.tools.r8.retrace.RetraceInvalidStackTraceLineDiagnostics createParse(int,java.lang.String):48:49 -> createParse
    1:1:java.lang.String getDiagnosticMessage():40:40 -> getDiagnosticMessage
    1:1:com.android.tools.r8.origin.Origin getOrigin():30:30 -> getOrigin
    1:1:com.android.tools.r8.position.Position getPosition():35:35 -> getPosition
com.android.tools.r8.retrace.RetraceMethodResult -> com.android.tools.r8.retrace.RetraceMethodResult:
    com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName mappedRanges -> c
    com.android.tools.r8.retrace.RetraceClassResult$Element classElement -> b
    boolean $assertionsDisabled -> e
    java.lang.String obfuscatedName -> a
    java.lang.Boolean isAmbiguousCached -> d
    1:1:void <clinit>():23:23 -> <clinit>
    1:1:void <init>(com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName,java.lang.String):34:34 -> <init>
    2:11:void <init>(com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName,java.lang.String):29:38 -> <init>
    1:1:boolean hasRetraceResult():46:46 -> a
    2:7:com.android.tools.r8.retrace.RetraceMethodResult$Element lambda$stream$0(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):101:106 -> a
    8:8:com.android.tools.r8.retrace.RetraceMethodResult$Element lambda$stream$0(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):105:105 -> a
    9:19:com.android.tools.r8.retrace.RetraceMethodResult$Element lambda$stream$0(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):104:114 -> a
    20:25:com.android.tools.r8.retrace.RetraceMethodResult$Element lambda$stream$0(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):113:118 -> a
    26:31:com.android.tools.r8.retrace.RetraceMethodResult$Element lambda$stream$0(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):116:121 -> a
    1:1:com.android.tools.r8.retrace.Result forEach(java.util.function.Consumer):23:23 -> forEach
    2:2:com.android.tools.r8.retrace.RetraceMethodResult forEach(java.util.function.Consumer):127:127 -> forEach
    1:1:com.android.tools.r8.references.MethodReference$UnknownMethodReference getUnknownReference():42:42 -> getUnknownReference
    1:23:boolean isAmbiguous():50:72 -> isAmbiguous
    1:13:com.android.tools.r8.retrace.RetraceMethodResult narrowByLine(int):77:89 -> narrowByLine
    1:5:java.util.stream.Stream stream():95:99 -> stream
com.android.tools.r8.retrace.RetraceMethodResult$1 -> com.android.tools.r8.retrace.RetraceMethodResult$a:
com.android.tools.r8.retrace.RetraceMethodResult$Element -> com.android.tools.r8.retrace.RetraceMethodResult$b:
    com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange mappedRange -> c
    com.android.tools.r8.references.MethodReference methodReference -> a
    com.android.tools.r8.retrace.RetraceMethodResult retraceMethodResult -> b
    1:1:void <init>(com.android.tools.r8.retrace.RetraceMethodResult,com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.references.MethodReference,com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange,com.android.tools.r8.retrace.RetraceMethodResult$1):131:131 -> <init>
    2:6:void <init>(com.android.tools.r8.retrace.RetraceMethodResult,com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.references.MethodReference,com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):142:146 -> <init>
    1:4:boolean containsMinifiedLineNumber(int):166:169 -> a
    5:8:int getFirstLineNumberOfOriginalRange():178:181 -> a
    9:14:int com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange.getFirstLineNumberOfOriginalRange():423:428 -> a
    9:14:int getFirstLineNumberOfOriginalRange():181 -> a
    1:1:com.android.tools.r8.references.MethodReference getMethodReference():150:150 -> b
    2:2:int getOriginalLineNumber(int):162:162 -> b
    1:1:com.android.tools.r8.retrace.RetraceMethodResult getRetraceMethodResult():154:154 -> c
    1:1:boolean hasNoLineNumberRange():174:174 -> d
com.android.tools.r8.retrace.RetraceRegularExpression -> com.android.tools.r8.retrace.u:
    java.util.List stackTrace -> b
    com.android.tools.r8.DiagnosticsHandler diagnosticsHandler -> c
    com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroup[] groups -> e
    com.android.tools.r8.retrace.RetraceBase retraceBase -> a
    boolean $assertionsDisabled -> f
    java.lang.String regularExpression -> d
    1:1:void <clinit>():27:27 -> <clinit>
    1:1:void <init>(com.android.tools.r8.retrace.RetraceBase,java.util.List,com.android.tools.r8.DiagnosticsHandler,java.lang.String):54:54 -> <init>
    2:24:void <init>(com.android.tools.r8.retrace.RetraceBase,java.util.List,com.android.tools.r8.DiagnosticsHandler,java.lang.String):36:58 -> <init>
    1:1:com.android.tools.r8.DiagnosticsHandler access$2300(com.android.tools.r8.retrace.RetraceRegularExpression):27:27 -> a
    2:3:com.android.tools.r8.retrace.RetraceCommandLineResult retrace():62:63 -> a
    4:26:java.lang.String registerGroups(java.lang.String,java.util.List):133:155 -> a
    4:26:com.android.tools.r8.retrace.RetraceCommandLineResult retrace():63 -> a
    27:30:java.lang.String registerGroups(java.lang.String,java.util.List):154:157 -> a
    27:30:com.android.tools.r8.retrace.RetraceCommandLineResult retrace():63 -> a
    31:71:com.android.tools.r8.retrace.RetraceCommandLineResult retrace():64:104 -> a
com.android.tools.r8.retrace.RetraceRegularExpression$1 -> com.android.tools.r8.retrace.f:
com.android.tools.r8.retrace.RetraceRegularExpression$BinaryNameGroup -> com.android.tools.r8.retrace.g:
    1:1:void <init>():453:453 -> <init>
    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression$1):453:453 -> <init>
    java.lang.String shortName() -> a
    1:1:java.lang.String getClassName(com.android.tools.r8.references.ClassReference):467:467 -> a
    java.lang.String subExpression() -> b
    1:1:com.android.tools.r8.references.ClassReference classFromMatch(java.lang.String):472:472 -> b
com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup -> com.android.tools.r8.retrace.h:
    1:1:void <init>():395:395 -> <init>
    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression$1):395:395 -> <init>
    java.lang.String getClassName(com.android.tools.r8.references.ClassReference) -> a
    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():228:228 -> a
    1:1:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceClassResult$Element):415 -> a
    2:7:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceClassResult$Element):416:421 -> a
    8:12:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceClassResult$Element):418:422 -> a
    13:13:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceClassResult$Element):413:413 -> a
    14:14:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():228:228 -> a
    14:14:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceClassResult$Element):415 -> a
    15:15:com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler createHandler(java.lang.String):403:403 -> a
    16:23:java.util.List lambda$createHandler$1(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):404:411 -> a
    com.android.tools.r8.references.ClassReference classFromMatch(java.lang.String) -> b
com.android.tools.r8.retrace.RetraceRegularExpression$FieldNameGroup -> com.android.tools.r8.retrace.i:
    1:1:void <init>():545:545 -> <init>
    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression$1):545:545 -> <init>
    java.lang.String shortName() -> a
    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():228:228 -> a
    1:1:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceFieldResult$Element):575 -> a
    2:9:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceFieldResult$Element):577:584 -> a
    10:18:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceFieldResult$Element):582:590 -> a
    19:23:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceFieldResult$Element):587:591 -> a
    24:24:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():228:228 -> a
    24:24:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceFieldResult$Element):575 -> a
    25:25:com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler createHandler(java.lang.String):559:559 -> a
    26:39:java.util.List lambda$createHandler$1(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):560:573 -> a
    java.lang.String subExpression() -> b
com.android.tools.r8.retrace.RetraceRegularExpression$FieldOrReturnTypeGroup -> com.android.tools.r8.retrace.j:
    1:1:void <init>():723:723 -> <init>
    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression$1):723:723 -> <init>
    java.lang.String shortName() -> a
    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler createHandler(java.lang.String):737:737 -> a
    2:14:java.util.List lambda$createHandler$1(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):738:750 -> a
    15:15:com.android.tools.r8.retrace.RetraceTypeResult com.android.tools.r8.retrace.RetraceTypeResult.forEach(java.util.function.Consumer):40:40 -> a
    15:15:java.util.List lambda$createHandler$1(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):750 -> a
    16:16:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceTypeResult$Element):752:752 -> a
    17:17:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():228:228 -> a
    17:17:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceTypeResult$Element):755 -> a
    18:22:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceTypeResult$Element):756:760 -> a
    23:27:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceTypeResult$Element):757:761 -> a
    28:28:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceTypeResult$Element):753:753 -> a
    29:29:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():228:228 -> a
    29:29:void lambda$createHandler$0(java.util.List,com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,com.android.tools.r8.retrace.RetraceTypeResult$Element):755 -> a
    java.lang.String subExpression() -> b
com.android.tools.r8.retrace.RetraceRegularExpression$LineNumberGroup -> com.android.tools.r8.retrace.k:
    com.android.tools.r8.retrace.RetraceRegularExpression this$0 -> a
    1:1:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression):645:645 -> <init>
    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression,com.android.tools.r8.retrace.RetraceRegularExpression$1):645:645 -> <init>
    java.lang.String shortName() -> a
    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler createHandler(java.lang.String):659:659 -> a
    2:30:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):660:688 -> a
    31:44:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):685:698 -> a
    45:53:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):695:703 -> a
    54:54:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():228:228 -> a
    54:54:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):706 -> a
    55:60:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):707:712 -> a
    61:65:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):709:713 -> a
    66:66:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):704:704 -> a
    67:67:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():228:228 -> a
    67:67:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):706 -> a
    68:68:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):671:671 -> a
    java.lang.String subExpression() -> b
com.android.tools.r8.retrace.RetraceRegularExpression$MethodArgumentsGroup -> com.android.tools.r8.retrace.l:
    com.android.tools.r8.retrace.RetraceRegularExpression this$0 -> a
    1:1:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression):769:769 -> <init>
    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression,com.android.tools.r8.retrace.RetraceRegularExpression$1):769:769 -> <init>
    java.lang.String shortName() -> a
    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler createHandler(java.lang.String):783:783 -> a
    2:40:java.util.List lambda$createHandler$3(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):784:822 -> a
    41:51:java.util.List lambda$createHandler$3(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):821:831 -> a
    52:61:java.util.List lambda$createHandler$3(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):828:837 -> a
    62:62:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():228:228 -> a
    62:62:java.util.List lambda$createHandler$3(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):840 -> a
    63:67:java.util.List lambda$createHandler$3(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):842:846 -> a
    68:74:java.util.List lambda$createHandler$3(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):841:847 -> a
    75:75:java.util.List lambda$createHandler$3(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):838:838 -> a
    76:83:java.util.Set lambda$createHandler$1(com.android.tools.r8.retrace.RetraceBase,java.util.Set,java.lang.String):795:802 -> a
    84:84:com.android.tools.r8.retrace.RetraceTypeResult com.android.tools.r8.retrace.RetraceTypeResult.forEach(java.util.function.Consumer):40:40 -> a
    84:84:java.util.Set lambda$createHandler$1(com.android.tools.r8.retrace.RetraceBase,java.util.Set,java.lang.String):803 -> a
    85:89:void lambda$createHandler$0(java.util.Set,java.util.Set,com.android.tools.r8.retrace.RetraceTypeResult$Element):805:809 -> a
    90:90:java.util.Set lambda$createHandler$2(java.util.Set,java.util.Set):815:815 -> a
    java.lang.String subExpression() -> b
com.android.tools.r8.retrace.RetraceRegularExpression$MethodNameGroup -> com.android.tools.r8.retrace.m:
    1:1:void <init>():476:476 -> <init>
    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression$1):476:476 -> <init>
    java.lang.String shortName() -> a
    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler createHandler(java.lang.String):490:490 -> a
    2:15:java.util.List lambda$createHandler$1(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):491:504 -> a
    16:24:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceMethodResult$Element):506:514 -> a
    25:25:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():228:228 -> a
    25:25:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceMethodResult$Element):518 -> a
    26:33:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceMethodResult$Element):520:527 -> a
    34:45:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceMethodResult$Element):525:536 -> a
    46:50:void lambda$createHandler$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,java.util.regex.Matcher,java.lang.String,java.util.List,com.android.tools.r8.retrace.RetraceMethodResult$Element):533:537 -> a
    java.lang.String subExpression() -> b
com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroup -> com.android.tools.r8.retrace.n:
    1:1:void <init>():383:383 -> <init>
    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression$1):383:383 -> <init>
    com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler createHandler(java.lang.String) -> a
    java.lang.String shortName() -> a
    java.lang.String subExpression() -> b
com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler -> com.android.tools.r8.retrace.o:
    java.util.List handleMatch(java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase) -> a
com.android.tools.r8.retrace.RetraceRegularExpression$RetraceLineComparator -> com.android.tools.r8.retrace.p:
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():107:107 -> <clinit>
    1:1:void <init>():110:110 -> <init>
    1:11:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):112:122 -> a
    12:12:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):120:120 -> a
    13:13:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):118:118 -> a
    14:14:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):116:116 -> a
    15:25:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):114:124 -> a
com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString -> com.android.tools.r8.retrace.r:
    java.lang.String retracedString -> g
    com.android.tools.r8.retrace.RetraceMethodResult$Element methodContext -> d
    com.android.tools.r8.references.TypeReference typeOrReturnTypeContext -> e
    boolean isAmbiguous -> i
    int lineNumber -> j
    java.lang.String source -> k
    com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup classNameGroup -> b
    com.android.tools.r8.references.ClassReference qualifiedContext -> c
    int adjustedIndex -> h
    com.android.tools.r8.retrace.RetraceClassResult$Element classContext -> a
    boolean hasTypeOrReturnTypeContext -> f
    1:1:void <init>(com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element,com.android.tools.r8.references.TypeReference,boolean,java.lang.String,int,boolean,int,java.lang.String,com.android.tools.r8.retrace.RetraceRegularExpression$1):164:164 -> <init>
    2:13:void <init>(com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element,com.android.tools.r8.references.TypeReference,boolean,java.lang.String,int,boolean,int,java.lang.String):189:200 -> <init>
    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup access$1000(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> a
    2:2:com.android.tools.r8.retrace.RetraceClassResult$Element getClassContext():212:212 -> a
    1:1:com.android.tools.r8.references.ClassReference access$1100(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> b
    2:2:int getLineNumber():232:232 -> b
    1:1:com.android.tools.r8.retrace.RetraceMethodResult$Element access$1200(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> c
    2:2:com.android.tools.r8.retrace.RetraceMethodResult$Element getMethodContext():216:216 -> c
    1:1:com.android.tools.r8.references.TypeReference access$1300(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> d
    2:2:com.android.tools.r8.references.ClassReference getQualifiedContext():224:224 -> d
    1:1:boolean access$1400(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> e
    2:2:java.lang.String getRetracedString():204:204 -> e
    1:1:java.lang.String access$1500(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> f
    2:2:java.lang.String getSource():236:236 -> f
    1:1:int access$1600(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> g
    2:2:com.android.tools.r8.references.TypeReference getTypeOrReturnTypeContext():220:220 -> g
    1:1:int access$1700(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> h
    2:2:boolean hasTypeOrReturnTypeContext():208:208 -> h
    1:1:java.lang.String access$1800(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> i
    1:1:boolean access$800(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> j
    1:1:com.android.tools.r8.retrace.RetraceClassResult$Element access$900(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):164:164 -> k
com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder -> com.android.tools.r8.retrace.q:
    boolean $assertionsDisabled -> m
    java.lang.String retracedString -> g
    int maxReplaceStringIndex -> l
    com.android.tools.r8.retrace.RetraceMethodResult$Element methodContext -> d
    com.android.tools.r8.references.TypeReference typeOrReturnTypeContext -> e
    boolean isAmbiguous -> i
    int lineNumber -> j
    java.lang.String source -> k
    com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup classNameGroup -> b
    com.android.tools.r8.references.ClassReference qualifiedContext -> c
    int adjustedIndex -> h
    com.android.tools.r8.retrace.RetraceClassResult$Element classContext -> a
    boolean hasTypeOrReturnTypeContext -> f
    1:1:void <clinit>():239:239 -> <clinit>
    1:1:void <init>(com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element,com.android.tools.r8.references.TypeReference,boolean,java.lang.String,int,boolean,int,java.lang.String):266:266 -> <init>
    2:26:void <init>(com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element,com.android.tools.r8.references.TypeReference,boolean,java.lang.String,int,boolean,int,java.lang.String):253:277 -> <init>
    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup access$2200(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder):239:239 -> a
    2:2:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder create(java.lang.String):281:281 -> a
    3:14:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder create(com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString):286:297 -> a
    15:16:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder setClassContext(com.android.tools.r8.retrace.RetraceClassResult$Element,com.android.tools.r8.retrace.RetraceRegularExpression$ClassNameGroup):301:302 -> a
    17:17:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder setMethodContext(com.android.tools.r8.retrace.RetraceMethodResult$Element):307:307 -> a
    18:19:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder setTypeOrReturnTypeContext(com.android.tools.r8.references.TypeReference):312:313 -> a
    20:20:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder setQualifiedContext(com.android.tools.r8.references.ClassReference):318:318 -> a
    21:21:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder setAmbiguous(boolean):323:323 -> a
    22:22:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder setLineNumber(int):328:328 -> a
    23:26:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder replaceInString(java.lang.String,java.lang.String):338:341 -> a
    27:27:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder replaceInString(java.lang.String,int,int):345:345 -> a
    28:28:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString build():361:361 -> a
    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder setSource(java.lang.String):333:333 -> b
    2:8:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder replaceInStringRaw(java.lang.String,int,int):350:356 -> b
com.android.tools.r8.retrace.RetraceRegularExpression$SourceFileGroup -> com.android.tools.r8.retrace.s:
    1:1:void <init>():599:599 -> <init>
    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression$1):599:599 -> <init>
    java.lang.String shortName() -> a
    1:1:com.android.tools.r8.retrace.RetraceRegularExpression$RegularExpressionGroupHandler createHandler(java.lang.String):613:613 -> a
    2:17:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):614:629 -> a
    18:23:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):626:631 -> a
    24:24:com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString$RetraceStringBuilder com.android.tools.r8.retrace.RetraceRegularExpression$RetraceString.transform():228:228 -> a
    24:24:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):634 -> a
    25:27:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):635:637 -> a
    28:30:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):636:638 -> a
    31:31:java.util.List lambda$createHandler$0(java.lang.String,java.util.List,java.util.regex.Matcher,com.android.tools.r8.retrace.RetraceBase):632:632 -> a
    java.lang.String subExpression() -> b
com.android.tools.r8.retrace.RetraceRegularExpression$TypeNameGroup -> com.android.tools.r8.retrace.t:
    1:1:void <init>():430:430 -> <init>
    2:2:void <init>(com.android.tools.r8.retrace.RetraceRegularExpression$1):430:430 -> <init>
    java.lang.String shortName() -> a
    1:1:java.lang.String getClassName(com.android.tools.r8.references.ClassReference):444:444 -> a
    java.lang.String subExpression() -> b
    1:1:com.android.tools.r8.references.ClassReference classFromMatch(java.lang.String):449:449 -> b
com.android.tools.r8.retrace.RetraceStackTrace -> com.android.tools.r8.retrace.C:
    java.util.List stackTrace -> b
    com.android.tools.r8.DiagnosticsHandler diagnosticsHandler -> c
    com.android.tools.r8.retrace.RetraceBase retraceBase -> a
    boolean verbose -> d
    1:5:void <init>(com.android.tools.r8.retrace.RetraceBase,java.util.List,com.android.tools.r8.DiagnosticsHandler,boolean):98:102 -> <init>
    1:7:com.android.tools.r8.retrace.RetraceCommandLineResult retrace():106:112 -> a
    8:11:void retraceLine(java.util.List,int,java.util.List):116:119 -> a
    12:12:com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine parseLine(int,java.lang.String):485:485 -> a
    12:12:void retraceLine(java.util.List,int,java.util.List):119 -> a
    13:33:com.android.tools.r8.retrace.RetraceStackTrace$ExceptionLine com.android.tools.r8.retrace.RetraceStackTrace$ExceptionLine.tryParse(java.lang.String):204:224 -> a
    13:33:com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine parseLine(int,java.lang.String):489 -> a
    13:33:void retraceLine(java.util.List,int,java.util.List):119 -> a
    34:44:com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine com.android.tools.r8.retrace.RetraceStackTrace$MoreLine.tryParse(java.lang.String):434:444 -> a
    34:44:com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine parseLine(int,java.lang.String):493 -> a
    34:44:void retraceLine(java.util.List,int,java.util.List):119 -> a
    45:46:com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine parseLine(int,java.lang.String):495:496 -> a
    45:46:void retraceLine(java.util.List,int,java.util.List):119 -> a
    47:50:com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine parseLine(int,java.lang.String):495:498 -> a
    47:50:void retraceLine(java.util.List,int,java.util.List):119 -> a
    51:54:void retraceLine(java.util.List,int,java.util.List):120:123 -> a
    55:56:com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine parseLine(int,java.lang.String):481:482 -> a
    55:56:void retraceLine(java.util.List,int,java.util.List):119 -> a
com.android.tools.r8.retrace.RetraceStackTrace$AtLine -> com.android.tools.r8.retrace.v:
    java.lang.String fileName -> f
    int linePosition -> g
    java.lang.String startingWhitespace -> a
    boolean isAmbiguous -> h
    java.lang.String clazz -> c
    java.lang.String at -> b
    java.lang.String methodAsString -> e
    java.lang.String method -> d
    1:9:void <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean):293:301 -> <init>
    com.android.tools.r8.retrace.RetraceStackTrace$AtLine asAtLine() -> a
    1:1:boolean access$000(com.android.tools.r8.retrace.RetraceStackTrace$AtLine):271:271 -> a
    2:51:com.android.tools.r8.retrace.RetraceStackTrace$AtLine tryParse(java.lang.String):306:355 -> a
    52:58:java.util.List retrace(com.android.tools.r8.retrace.RetraceBase,boolean):370:376 -> a
    59:65:void lambda$retrace$0(java.util.List,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):378:384 -> a
    66:73:java.lang.String com.android.tools.r8.retrace.RetraceUtils.methodDescriptionFromMethodReference(com.android.tools.r8.references.MethodReference,boolean):14:21 -> a
    66:73:void lambda$retrace$0(java.util.List,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):385 -> a
    74:92:java.lang.String com.android.tools.r8.retrace.RetraceUtils.methodDescriptionFromMethodReference(com.android.tools.r8.references.MethodReference,boolean):18:36 -> a
    74:92:void lambda$retrace$0(java.util.List,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):385 -> a
    93:93:java.lang.String com.android.tools.r8.retrace.RetraceUtils.methodDescriptionFromMethodReference(com.android.tools.r8.references.MethodReference,boolean):15:15 -> a
    93:93:void lambda$retrace$0(java.util.List,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):385 -> a
    94:96:void lambda$retrace$0(java.util.List,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):385:387 -> a
    97:97:void lambda$retrace$0(java.util.List,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):386:386 -> a
    98:98:boolean hasLinePosition():365:365 -> a
    98:98:void lambda$retrace$0(java.util.List,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):388 -> a
    99:101:void lambda$retrace$0(java.util.List,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):389:391 -> a
    102:102:void lambda$retrace$0(java.util.List,boolean,com.android.tools.r8.retrace.RetraceBase,com.android.tools.r8.references.ClassReference,com.android.tools.r8.retrace.RetraceMethodResult$Element):379:379 -> a
    boolean isAtLine() -> b
    1:1:java.lang.String access$100(com.android.tools.r8.retrace.RetraceStackTrace$AtLine):271:271 -> b
    1:1:java.lang.String access$200(com.android.tools.r8.retrace.RetraceStackTrace$AtLine):271:271 -> c
    1:1:java.lang.String access$300(com.android.tools.r8.retrace.RetraceStackTrace$AtLine):271:271 -> d
    1:1:int access$400(com.android.tools.r8.retrace.RetraceStackTrace$AtLine):271:271 -> e
    1:13:java.lang.String toString():398:410 -> toString
com.android.tools.r8.retrace.RetraceStackTrace$AtStackTraceLineComparator -> com.android.tools.r8.retrace.w:
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():65:65 -> <clinit>
    1:1:void <init>():68:68 -> <init>
    1:13:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):70:82 -> a
    14:14:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):80:80 -> a
    15:15:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):78:78 -> a
    16:16:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):76:76 -> a
    17:27:java.lang.String lambda$new$0(com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine,com.android.tools.r8.retrace.AmbiguousComparator$SortKeys):74:84 -> a
com.android.tools.r8.retrace.RetraceStackTrace$ExceptionLine -> com.android.tools.r8.retrace.x:
    java.lang.String initialWhiteSpace -> a
    java.lang.String exceptionClass -> c
    java.lang.String description -> b
    java.lang.String message -> d
    1:5:void <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String):196:200 -> <init>
    1:4:java.util.List retrace(com.android.tools.r8.retrace.RetraceBase,boolean):229:232 -> a
    5:9:void lambda$retrace$0(java.util.List,com.android.tools.r8.retrace.RetraceClassResult$Element):234:238 -> a
    10:10:void lambda$retrace$0(java.util.List,com.android.tools.r8.retrace.RetraceClassResult$Element):234:234 -> a
    1:1:java.lang.String toString():245:245 -> toString
com.android.tools.r8.retrace.RetraceStackTrace$MoreLine -> com.android.tools.r8.retrace.y:
    java.lang.String line -> a
    1:2:void <init>(java.lang.String):427:428 -> <init>
    1:1:java.util.List retrace(com.android.tools.r8.retrace.RetraceBase,boolean):452:452 -> a
    1:1:java.lang.String toString():457:457 -> toString
com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine -> com.android.tools.r8.retrace.z:
    1:1:void <init>():126:126 -> <init>
    com.android.tools.r8.retrace.RetraceStackTrace$AtLine asAtLine() -> a
    java.util.List retrace(com.android.tools.r8.retrace.RetraceBase,boolean) -> a
    1:1:int firstNonWhiteSpaceCharacterFromIndex(java.lang.String,int):131:131 -> a
    2:2:int firstCharFromIndex(java.lang.String,int,char):135:135 -> a
    3:3:boolean lambda$firstCharFromIndex$0(char,java.lang.Character):135:135 -> a
    4:9:int firstFromIndex(java.lang.String,int,java.util.function.Predicate):139:144 -> a
    boolean isAtLine() -> b
com.android.tools.r8.retrace.RetraceStackTrace$StackTraceNode -> com.android.tools.r8.retrace.A:
    java.util.List lines -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():23:23 -> <clinit>
    1:4:void <init>(java.util.List):27:30 -> <init>
    1:9:void append(java.util.List):34:42 -> a
    10:25:void append(java.util.List):41:56 -> a
    26:31:void append(java.util.List):53:58 -> a
    32:32:boolean lambda$append$0(com.android.tools.r8.retrace.RetraceStackTrace$StackTraceLine):42:42 -> a
com.android.tools.r8.retrace.RetraceStackTrace$UnknownLine -> com.android.tools.r8.retrace.B:
    java.lang.String line -> a
    1:2:void <init>(java.lang.String):464:465 -> <init>
    1:1:java.util.List retrace(com.android.tools.r8.retrace.RetraceBase,boolean):470:470 -> a
    1:1:java.lang.String toString():475:475 -> toString
com.android.tools.r8.retrace.RetraceTypeResult -> com.android.tools.r8.retrace.E:
    com.android.tools.r8.retrace.RetraceBase retraceBase -> b
    com.android.tools.r8.references.TypeReference obfuscatedType -> a
    1:3:void <init>(com.android.tools.r8.references.TypeReference,com.android.tools.r8.retrace.RetraceBase):18:20 -> <init>
    1:1:com.android.tools.r8.retrace.RetraceTypeResult$Element lambda$stream$0(int,com.android.tools.r8.retrace.RetraceTypeResult$Element):32:32 -> a
    2:2:com.android.tools.r8.retrace.RetraceTypeResult$Element lambda$stream$1(com.android.tools.r8.retrace.RetraceClassResult$Element):35:35 -> a
    1:1:com.android.tools.r8.retrace.RetraceTypeResult forEach(java.util.function.Consumer):40:40 -> forEach
    1:1:com.android.tools.r8.retrace.Result forEach(java.util.function.Consumer):13 -> forEach
    1:10:java.util.stream.Stream stream():26:35 -> stream
    11:11:java.util.stream.Stream stream():27:27 -> stream
com.android.tools.r8.retrace.RetraceTypeResult$Element -> com.android.tools.r8.retrace.D:
    com.android.tools.r8.references.TypeReference typeReference -> a
    1:2:void <init>(com.android.tools.r8.references.TypeReference):48:49 -> <init>
    1:1:com.android.tools.r8.references.TypeReference getTypeReference():53:53 -> a
com.android.tools.r8.shaking.AbstractMethodRemover -> com.android.tools.r8.shaking.AbstractMethodRemover:
    1:1:void <clinit>():23:23 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness):28:28 -> <init>
    2:5:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness):26:29 -> <init>
    1:10:void processClass(com.android.tools.r8.graph.DexType):38:47 -> processClass
    1:17:com.android.tools.r8.graph.DexEncodedMethod[] processMethods(java.util.List):56:72 -> processMethods
    18:33:com.android.tools.r8.graph.DexEncodedMethod[] processMethods(java.util.List):62:77 -> processMethods
    1:2:void run():33:34 -> run
com.android.tools.r8.shaking.AnnotationFixer -> com.android.tools.r8.shaking.AnnotationFixer:
    1:1:void <clinit>():20:20 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.GraphLense):24:25 -> <init>
    1:1:com.android.tools.r8.graph.DexAnnotationSet lambda$processMethod$0(com.android.tools.r8.graph.DexAnnotationSet):40:40 -> a
    1:1:void processField(com.android.tools.r8.graph.DexEncodedField):44:44 -> processField
    1:3:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):37:39 -> processMethod
    1:1:com.android.tools.r8.graph.DexAnnotation rewriteAnnotation(com.android.tools.r8.graph.DexAnnotation):48:48 -> rewriteAnnotation
    1:3:com.android.tools.r8.graph.DexAnnotationElement rewriteAnnotationElement(com.android.tools.r8.graph.DexAnnotationElement):59:61 -> rewriteAnnotationElement
    1:3:com.android.tools.r8.graph.DexEncodedAnnotation rewriteEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):52:54 -> rewriteEncodedAnnotation
    1:12:com.android.tools.r8.graph.DexValue rewriteValue(com.android.tools.r8.graph.DexValue):67:78 -> rewriteValue
    1:4:void run(java.lang.Iterable):29:32 -> run
com.android.tools.r8.shaking.AnnotationRemover -> com.android.tools.r8.shaking.AnnotationRemover:
    1:1:void <clinit>():29:29 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView,java.util.Set):36:39 -> <init>
    1:1:com.android.tools.r8.graph.DexAnnotation lambda$run$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotation):234:234 -> a
    2:2:com.android.tools.r8.graph.DexAnnotation lambda$processMethod$1(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexAnnotation):242:242 -> a
    3:3:com.android.tools.r8.graph.DexAnnotation lambda$processField$2(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexAnnotation):249:249 -> a
    4:4:com.android.tools.r8.graph.DexAnnotationElement lambda$rewriteEncodedAnnotation$3(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement):267:267 -> a
    5:5:boolean lambda$rewriteAnnotationElement$4(com.android.tools.r8.graph.DexAnnotationElement,com.android.tools.r8.graph.DexEncodedMethod):286:286 -> a
    6:17:boolean lambda$stripAttributes$5(boolean,com.android.tools.r8.graph.DexProgramClass,boolean,com.android.tools.r8.graph.InnerClassAttribute):335:346 -> a
    1:7:void clearAnnotations(com.android.tools.r8.graph.AppView):361:367 -> clearAnnotations
    1:43:java.util.Set computeClassesToRetainInnerClassAttributeFor(com.android.tools.r8.graph.AppView):182:224 -> computeClassesToRetainInnerClassAttributeFor
    44:44:java.util.Set computeClassesToRetainInnerClassAttributeFor(com.android.tools.r8.graph.AppView):184:184 -> computeClassesToRetainInnerClassAttributeFor
    1:3:boolean enclosingMethodPinned(com.android.tools.r8.graph.DexClass):291:293 -> enclosingMethodPinned
    1:1:com.android.tools.r8.shaking.AnnotationRemover ensureValid():139:139 -> ensureValid
    1:1:boolean filterAnnotations(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):44:44 -> filterAnnotations
    1:15:boolean filterParameterAnnotations(com.android.tools.r8.graph.DexAnnotation):119:133 -> filterParameterAnnotations
    16:28:boolean filterParameterAnnotations(com.android.tools.r8.graph.DexAnnotation):123:135 -> filterParameterAnnotations
    1:5:boolean hasGenericEnclosingClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,java.util.Set):148:152 -> hasGenericEnclosingClass
    1:2:boolean hasInnerClassesFromSet(com.android.tools.r8.graph.DexProgramClass,java.util.Set):297:298 -> hasInnerClassesFromSet
    1:2:boolean hasSignatureAnnotation(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):160:161 -> hasSignatureAnnotation
    1:2:boolean isAnnotationTypeLive(com.android.tools.r8.graph.DexAnnotation):111:112 -> isAnnotationTypeLive
    1:2:void processField(com.android.tools.r8.graph.DexEncodedField):248:249 -> processField
    1:4:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):241:244 -> processMethod
    1:5:com.android.tools.r8.graph.DexAnnotation rewriteAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):254:258 -> rewriteAnnotation
    1:1:com.android.tools.r8.graph.DexAnnotationElement rewriteAnnotationElement(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement):277:277 -> rewriteAnnotationElement
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> rewriteAnnotationElement
    2:2:com.android.tools.r8.graph.DexAnnotationElement rewriteAnnotationElement(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement):277 -> rewriteAnnotationElement
    3:6:com.android.tools.r8.graph.DexAnnotationElement rewriteAnnotationElement(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement):283:286 -> rewriteAnnotationElement
    1:8:com.android.tools.r8.graph.DexEncodedAnnotation rewriteEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):262:269 -> rewriteEncodedAnnotation
    9:9:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> rewriteEncodedAnnotation
    9:9:com.android.tools.r8.graph.DexEncodedAnnotation rewriteEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):269 -> rewriteEncodedAnnotation
    10:11:com.android.tools.r8.graph.DexEncodedAnnotation rewriteEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):270:271 -> rewriteEncodedAnnotation
    12:12:com.android.tools.r8.graph.DexEncodedAnnotation rewriteEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):270:270 -> rewriteEncodedAnnotation
    1:6:void run():231:236 -> run
    1:11:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):53:63 -> shouldKeepAnnotation
    12:12:boolean com.android.tools.r8.graph.DexAnnotation.isMemberClassesAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):137:137 -> shouldKeepAnnotation
    12:12:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):63 -> shouldKeepAnnotation
    13:14:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):63:64 -> shouldKeepAnnotation
    15:15:boolean com.android.tools.r8.graph.DexAnnotation.isEnclosingMethodAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):128:128 -> shouldKeepAnnotation
    15:15:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):64 -> shouldKeepAnnotation
    16:17:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):64:65 -> shouldKeepAnnotation
    18:18:boolean com.android.tools.r8.graph.DexAnnotation.isEnclosingClassAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):123:123 -> shouldKeepAnnotation
    18:18:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):65 -> shouldKeepAnnotation
    19:20:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):65:66 -> shouldKeepAnnotation
    21:21:boolean com.android.tools.r8.graph.DexAnnotation.isThrowingAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):268:268 -> shouldKeepAnnotation
    21:21:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):66 -> shouldKeepAnnotation
    22:22:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):69:69 -> shouldKeepAnnotation
    23:23:boolean com.android.tools.r8.graph.DexAnnotation.isSourceDebugExtension(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):284:284 -> shouldKeepAnnotation
    23:23:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):72 -> shouldKeepAnnotation
    24:26:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):73:75 -> shouldKeepAnnotation
    27:31:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):74:78 -> shouldKeepAnnotation
    32:32:boolean com.android.tools.r8.graph.DexAnnotation.isParameterNameAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):289:289 -> shouldKeepAnnotation
    32:32:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):79 -> shouldKeepAnnotation
    33:33:boolean com.android.tools.r8.graph.DexAnnotation.isAnnotationDefaultAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):279:279 -> shouldKeepAnnotation
    33:33:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):82 -> shouldKeepAnnotation
    34:34:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):106:106 -> shouldKeepAnnotation
    35:35:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):90:90 -> shouldKeepAnnotation
    36:36:boolean com.android.tools.r8.graph.DexAnnotation.isSynthesizedClassMapAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):399:399 -> shouldKeepAnnotation
    36:36:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):96 -> shouldKeepAnnotation
    37:37:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.AppView):100:100 -> shouldKeepAnnotation
    1:45:void stripAttributes(com.android.tools.r8.graph.DexProgramClass):312:356 -> stripAttributes
    46:55:void stripAttributes(com.android.tools.r8.graph.DexProgramClass):324:333 -> stripAttributes
com.android.tools.r8.shaking.AppInfoWithLiveness -> com.android.tools.r8.shaking.AppInfoWithLiveness:
    1:1:void <clinit>():58:58 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.SortedSet,java.util.Set,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap,java.util.Set,java.util.Map,java.util.Map,java.util.Set,java.util.Set):221:221 -> <init>
    2:185:void <init>(com.android.tools.r8.graph.DexApplication,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.SortedSet,java.util.Set,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap,java.util.Set,java.util.Map,java.util.Map,java.util.Set,java.util.Set):75:258 -> <init>
    186:186:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.SortedSet,java.util.Set,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap,java.util.Set,java.util.Map,java.util.Map,java.util.Set,java.util.Set):300:300 -> <init>
    187:449:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.SortedSet,java.util.Set,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,java.util.SortedSet,com.android.tools.r8.graph.FieldAccessInfoCollectionImpl,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.SortedMap,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap,java.util.Set,java.util.Map,java.util.Map,java.util.Set,java.util.Set):75:337 -> <init>
    450:489:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness):341:380 -> <init>
    490:528:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DexApplication,java.util.Collection,java.util.Collection):388:426 -> <init>
    529:573:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DexApplication,java.util.Collection,java.util.Collection):388:432 -> <init>
    574:574:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):437:437 -> <init>
    575:985:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):75:485 -> <init>
    986:1004:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):481:499 -> <init>
    1005:1021:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):495:511 -> <init>
    1022:1029:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):507:514 -> <init>
    1030:1030:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,java.util.Map,java.util.Map):521:521 -> <init>
    1031:1515:void <init>(com.android.tools.r8.shaking.AppInfoWithLiveness,java.util.Map,java.util.Map):75:559 -> <init>
    1:8:void lambda$withStaticFieldWrites$0(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DexEncodedField,java.util.Set):639:646 -> a
    9:14:void lambda$withoutStaticFieldsWrites$1(java.util.Set,com.android.tools.r8.graph.FieldAccessInfoImpl):660:665 -> a
    15:15:java.util.Set lambda$rewriteKeysConservativelyWhileMergingValues$2(com.android.tools.r8.graph.PresortedComparable):830:830 -> a
    1:3:com.android.tools.r8.shaking.AppInfoWithLiveness addEnumValueInfoMaps(java.util.Map):1328:1330 -> addEnumValueInfoMaps
    1:3:com.android.tools.r8.shaking.AppInfoWithLiveness addSwitchMaps(java.util.Map):1321:1323 -> addSwitchMaps
    1:12:boolean assertNoItemRemoved(java.util.Collection,java.util.Collection):694:705 -> assertNoItemRemoved
    1:15:boolean canVirtualMethodBeImplementedInExtraSubclass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):878:892 -> canVirtualMethodBeImplementedInExtraSubclass
    1:33:java.util.Collection computeReachableInterfaces(java.util.Set):583:615 -> computeReachableInterfaces
    1:3:java.util.SortedSet filter(java.util.Set,java.util.function.Predicate):673:675 -> filter
    4:4:java.util.SortedSet filter(java.util.Set,java.util.function.Predicate):673:673 -> filter
    1:44:com.android.tools.r8.graph.DexEncodedMethod findSingleTargetFromSubtypes(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,boolean,boolean):1129:1172 -> findSingleTargetFromSubtypes
    1:2:java.util.Map getEnumValueInfoMapFor(com.android.tools.r8.graph.DexType):679:680 -> getEnumValueInfoMapFor
    1:1:com.android.tools.r8.graph.FieldAccessInfoCollection getFieldAccessInfoCollection():690:690 -> getFieldAccessInfoCollection
    1:2:java.util.Set getPinnedItems():921:922 -> getPinnedItems
    1:2:java.util.Set getPrunedTypes():953:954 -> getPrunedTypes
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getSwitchMapFor(com.android.tools.r8.graph.DexField):684:685 -> getSwitchMapFor
    1:2:boolean hasAnyInstantiatedLambdas(com.android.tools.r8.graph.DexProgramClass):839:840 -> hasAnyInstantiatedLambdas
    1:1:boolean hasLiveness():845:845 -> hasLiveness
    1:5:boolean hasPinnedInstanceInitializer(com.android.tools.r8.graph.DexType):861:865 -> hasPinnedInstanceInitializer
    1:10:boolean interfacesMayHaveDefaultFor(com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexMethod):1188:1197 -> interfacesMayHaveDefaultFor
    1:7:boolean isFieldOnlyWrittenInMethod(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexEncodedMethod):784:790 -> isFieldOnlyWrittenInMethod
    1:11:boolean isFieldRead(com.android.tools.r8.graph.DexEncodedField):746:756 -> isFieldRead
    1:2:boolean isFieldWritten(com.android.tools.r8.graph.DexEncodedField):760:761 -> isFieldWritten
    1:12:boolean isFieldWrittenByFieldPutInstruction(com.android.tools.r8.graph.DexEncodedField):765:776 -> isFieldWrittenByFieldPutInstruction
    1:5:boolean isInstantiatedDirectly(com.android.tools.r8.graph.DexProgramClass):711:715 -> isInstantiatedDirectly
    1:2:boolean isInstantiatedDirectlyOrIndirectly(com.android.tools.r8.graph.DexProgramClass):741:742 -> isInstantiatedDirectlyOrIndirectly
    1:19:boolean isInstantiatedIndirectly(com.android.tools.r8.graph.DexProgramClass):719:737 -> isInstantiatedIndirectly
    1:4:boolean isInvalidSingleVirtualTarget(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):999:1002 -> isInvalidSingleVirtualTarget
    1:2:boolean isLibraryOrClasspathField(com.android.tools.r8.graph.DexEncodedField):809:810 -> isLibraryOrClasspathField
    1:1:boolean isLiveProgramClass(com.android.tools.r8.graph.DexProgramClass):563:563 -> isLiveProgramClass
    1:2:boolean isLiveProgramType(com.android.tools.r8.graph.DexType):567:568 -> isLiveProgramType
    1:1:boolean isLockCandidate(com.android.tools.r8.graph.DexType):627:627 -> isLockCandidate
    1:8:boolean isNonProgramTypeOrLiveProgramType(com.android.tools.r8.graph.DexType):572:579 -> isNonProgramTypeOrLiveProgramType
    1:2:boolean isPinned(com.android.tools.r8.graph.DexReference):856:857 -> isPinned
    1:5:boolean isStaticFieldWrittenOnlyInEnclosingStaticInitializer(com.android.tools.r8.graph.DexEncodedField):796:800 -> isStaticFieldWrittenOnlyInEnclosingStaticInitializer
    1:2:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Object):16:17 -> isVirtualMethodPinnedDirectlyOrInAncestor
    1:2:boolean isVirtualMethodPinnedDirectlyOrInAncestor(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):901 -> isVirtualMethodPinnedDirectlyOrInAncestor
    3:14:boolean isVirtualMethodPinnedDirectlyOrInAncestor(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):902:913 -> isVirtualMethodPinnedDirectlyOrInAncestor
    1:2:com.android.tools.r8.graph.DexEncodedMethod lookupSingleInterfaceTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1205:1206 -> lookupSingleInterfaceTarget
    3:19:com.android.tools.r8.graph.DexEncodedMethod lookupSingleInterfaceTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1214:1230 -> lookupSingleInterfaceTarget
    20:72:com.android.tools.r8.graph.DexEncodedMethod lookupSingleInterfaceTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1229:1281 -> lookupSingleInterfaceTarget
    73:73:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> lookupSingleInterfaceTarget
    73:73:com.android.tools.r8.graph.DexEncodedMethod lookupSingleInterfaceTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1281 -> lookupSingleInterfaceTarget
    74:109:com.android.tools.r8.graph.DexEncodedMethod lookupSingleInterfaceTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1282:1317 -> lookupSingleInterfaceTarget
    1:16:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):959:974 -> lookupSingleTarget
    17:17:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):972:972 -> lookupSingleTarget
    18:18:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):970:970 -> lookupSingleTarget
    19:19:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):968:968 -> lookupSingleTarget
    20:20:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):966:966 -> lookupSingleTarget
    1:2:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):1007:1008 -> lookupSingleVirtualTarget
    3:34:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1016:1047 -> lookupSingleVirtualTarget
    35:91:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1046:1102 -> lookupSingleVirtualTarget
    92:98:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1098:1104 -> lookupSingleVirtualTarget
    99:108:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1097:1106 -> lookupSingleVirtualTarget
    109:109:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement):1084:1084 -> lookupSingleVirtualTarget
    1:2:boolean mayPropagateValueFor(com.android.tools.r8.graph.DexReference):804:805 -> mayPropagateValueFor
    1:2:com.android.tools.r8.shaking.AppInfoWithLiveness prunedCopyFrom(com.android.tools.r8.graph.DexApplication,java.util.Collection,java.util.Collection):933:934 -> prunedCopyFrom
    1:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet rewriteItems(java.util.Set,java.util.function.Function):815:819 -> rewriteItems
    1:10:java.util.SortedMap rewriteKeysConservativelyWhileMergingValues(java.util.Map,java.util.function.Function):825:834 -> rewriteKeysConservativelyWhileMergingValues
    1:2:com.android.tools.r8.shaking.AppInfoWithLiveness rewrittenWithLense(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):939:940 -> rewrittenWithLense
    1:9:com.android.tools.r8.graph.DexEncodedMethod validateSingleVirtualTarget(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):982:990 -> validateSingleVirtualTarget
    1:2:boolean wasPruned(com.android.tools.r8.graph.DexType):948:949 -> wasPruned
    1:1:com.android.tools.r8.shaking.AppInfoWithLiveness withLiveness():851:851 -> withLiveness
    1:6:com.android.tools.r8.shaking.AppInfoWithLiveness withStaticFieldWrites(java.util.Map):632:637 -> withStaticFieldWrites
    1:6:com.android.tools.r8.shaking.AppInfoWithLiveness withoutStaticFieldsWrites(java.util.Set):653:658 -> withoutStaticFieldsWrites
com.android.tools.r8.shaking.AppInfoWithLiveness$1 -> com.android.tools.r8.shaking.AppInfoWithLiveness$1:
    1:1:void <clinit>():964:964 -> <clinit>
com.android.tools.r8.shaking.AppInfoWithLiveness$EnumValueInfo -> com.android.tools.r8.shaking.AppInfoWithLiveness$EnumValueInfo:
    1:3:void <init>(com.android.tools.r8.graph.DexType,int):173:175 -> <init>
com.android.tools.r8.shaking.ClassInlineRule -> com.android.tools.r8.shaking.ClassInlineRule:
    1:15:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ClassInlineRule$Type):73:87 -> <init>
    1:1:com.android.tools.r8.shaking.ClassInlineRule$Builder builder():91:91 -> builder
    1:1:com.android.tools.r8.shaking.ClassInlineRule$Type getType():95:95 -> getType
    1:7:java.lang.String typeString():110:116 -> typeString
com.android.tools.r8.shaking.ClassInlineRule$1 -> com.android.tools.r8.shaking.ClassInlineRule$1:
    1:1:void <clinit>():110:110 -> <clinit>
com.android.tools.r8.shaking.ClassInlineRule$Builder -> com.android.tools.r8.shaking.ClassInlineRule$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.ClassInlineRule$1):18:18 -> <init>
    2:2:void <init>():21:21 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():18:18 -> build
    2:4:com.android.tools.r8.shaking.ClassInlineRule build():38:40 -> build
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():18:18 -> self
    1:1:com.android.tools.r8.shaking.ClassInlineRule$Builder setType(com.android.tools.r8.shaking.ClassInlineRule$Type):32:32 -> setType
com.android.tools.r8.shaking.ClassInlineRule$Type -> com.android.tools.r8.shaking.ClassInlineRule$Type:
    1:2:void <clinit>():14:15 -> <clinit>
    3:3:void <clinit>():13:13 -> <clinit>
    1:1:void <init>(java.lang.String,int):13:13 -> <init>
    1:1:com.android.tools.r8.shaking.ClassInlineRule$Type valueOf(java.lang.String):13:13 -> valueOf
    1:1:com.android.tools.r8.shaking.ClassInlineRule$Type[] values():13:13 -> values
com.android.tools.r8.shaking.ClassMergingRule -> com.android.tools.r8.shaking.ClassMergingRule:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ClassMergingRule$Type,com.android.tools.r8.shaking.ClassMergingRule$1):11:11 -> <init>
    2:5:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ClassMergingRule$Type):60:63 -> <init>
    1:1:com.android.tools.r8.shaking.ClassMergingRule$Builder builder():67:67 -> builder
    1:1:com.android.tools.r8.shaking.ClassMergingRule$Type getType():71:71 -> getType
    1:5:java.lang.String typeString():76:80 -> typeString
com.android.tools.r8.shaking.ClassMergingRule$1 -> com.android.tools.r8.shaking.ClassMergingRule$1:
    1:1:void <clinit>():76:76 -> <clinit>
com.android.tools.r8.shaking.ClassMergingRule$Builder -> com.android.tools.r8.shaking.ClassMergingRule$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.ClassMergingRule$1):17:17 -> <init>
    2:2:void <init>():20:20 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():17:17 -> build
    2:2:com.android.tools.r8.shaking.ClassMergingRule build():37:37 -> build
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():17:17 -> self
    1:1:com.android.tools.r8.shaking.ClassMergingRule$Builder setType(com.android.tools.r8.shaking.ClassMergingRule$Type):31:31 -> setType
com.android.tools.r8.shaking.ClassMergingRule$Type -> com.android.tools.r8.shaking.ClassMergingRule$Type:
    1:1:void <clinit>():14:14 -> <clinit>
    2:2:void <clinit>():13:13 -> <clinit>
    1:1:void <init>(java.lang.String,int):13:13 -> <init>
    1:1:com.android.tools.r8.shaking.ClassMergingRule$Type valueOf(java.lang.String):13:13 -> valueOf
    1:1:com.android.tools.r8.shaking.ClassMergingRule$Type[] values():13:13 -> values
com.android.tools.r8.shaking.CollectingGraphConsumer -> com.android.tools.r8.shaking.CollectingGraphConsumer:
    1:1:void <init>(com.android.tools.r8.experimental.graphinfo.GraphConsumer):23:23 -> <init>
    2:5:void <init>(com.android.tools.r8.experimental.graphinfo.GraphConsumer):21:24 -> <init>
    1:1:java.util.Map lambda$acceptEdge$0(com.android.tools.r8.experimental.graphinfo.GraphNode):30:30 -> a
    1:6:void acceptEdge(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo):29:34 -> acceptEdge
    1:1:java.util.Set lambda$acceptEdge$1(com.android.tools.r8.experimental.graphinfo.GraphNode):31:31 -> b
    1:1:java.util.Map getSourcesTargeting(com.android.tools.r8.experimental.graphinfo.GraphNode):43:43 -> getSourcesTargeting
    1:1:java.util.Set getTargets():39:39 -> getTargets
com.android.tools.r8.shaking.ConstantArgumentRule -> com.android.tools.r8.shaking.ConstantArgumentRule:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ConstantArgumentRule$1):10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):57:57 -> <init>
    1:1:com.android.tools.r8.shaking.ConstantArgumentRule$Builder builder():74:74 -> builder
com.android.tools.r8.shaking.ConstantArgumentRule$Builder -> com.android.tools.r8.shaking.ConstantArgumentRule$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.ConstantArgumentRule$1):12:12 -> <init>
    2:2:void <init>():16:16 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
    2:4:com.android.tools.r8.shaking.ConstantArgumentRule build():26:28 -> build
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
com.android.tools.r8.shaking.DefaultEnqueuerUseRegistry -> com.android.tools.r8.shaking.DefaultEnqueuerUseRegistry:
    1:3:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.Enqueuer):25:27 -> <init>
    1:1:com.android.tools.r8.graph.ProgramMethod getContext():31:31 -> getContext
    1:1:com.android.tools.r8.graph.DexProgramClass getContextHolder():35:35 -> getContextHolder
    1:1:com.android.tools.r8.graph.DexEncodedMethod getContextMethod():39:39 -> getContextMethod
    1:2:void registerCallSite(com.android.tools.r8.graph.DexCallSite):115:116 -> registerCallSite
    1:1:boolean registerCheckCast(com.android.tools.r8.graph.DexType):99:99 -> registerCheckCast
    1:1:boolean registerConstClass(com.android.tools.r8.graph.DexType):94:94 -> registerConstClass
    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):74:74 -> registerInstanceFieldRead
    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):69:69 -> registerInstanceFieldWrite
    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):49:49 -> registerInvokeDirect
    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):59:59 -> registerInvokeInterface
    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):54:54 -> registerInvokeStatic
    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):64:64 -> registerInvokeSuper
    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):44:44 -> registerInvokeVirtual
    1:2:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):109:110 -> registerMethodHandle
    1:1:boolean registerNewInstance(com.android.tools.r8.graph.DexType):79:79 -> registerNewInstance
    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):84:84 -> registerStaticFieldRead
    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):89:89 -> registerStaticFieldWrite
    1:1:boolean registerTypeReference(com.android.tools.r8.graph.DexType):104:104 -> registerTypeReference
com.android.tools.r8.shaking.DefaultTreePrunerConfiguration -> com.android.tools.r8.shaking.DefaultTreePrunerConfiguration:
    1:1:void <clinit>():11:11 -> <clinit>
    1:1:void <init>():14:14 -> <init>
    1:1:com.android.tools.r8.shaking.DefaultTreePrunerConfiguration getInstance():17:17 -> getInstance
    1:1:boolean isReachableOrReferencedField(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DexEncodedField):22:22 -> isReachableOrReferencedField
com.android.tools.r8.shaking.DelayedRootSetActionItem -> com.android.tools.r8.shaking.DelayedRootSetActionItem:
    1:1:void <init>():10:10 -> <init>
com.android.tools.r8.shaking.DelayedRootSetActionItem$InterfaceMethodSyntheticBridgeAction -> com.android.tools.r8.shaking.DelayedRootSetActionItem$InterfaceMethodSyntheticBridgeAction:
    1:4:void <init>(com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.graph.ProgramMethod,java.util.function.Consumer):26:29 -> <init>
    1:1:java.util.function.Consumer getAction():41:41 -> getAction
    1:1:com.android.tools.r8.graph.ProgramMethod getMethodToKeep():33:33 -> getMethodToKeep
    1:1:com.android.tools.r8.graph.ProgramMethod getSingleTarget():37:37 -> getSingleTarget
com.android.tools.r8.shaking.DexStringCache -> com.android.tools.r8.shaking.DexStringCache:
    1:2:void <init>():9:10 -> <init>
    1:1:java.lang.String lookupString(com.android.tools.r8.graph.DexString):13:13 -> lookupString
com.android.tools.r8.shaking.DiscardedChecker -> com.android.tools.r8.shaking.DiscardedChecker:
    1:3:void <init>(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.lang.Iterable):20:22 -> <init>
    1:1:void lambda$run$0(java.util.List,com.android.tools.r8.graph.DexEncodedMethod):30:30 -> a
    2:2:void lambda$run$1(java.util.List,com.android.tools.r8.graph.DexEncodedField):31:31 -> a
    1:3:void checkItem(com.android.tools.r8.graph.DexDefinition,java.util.List):37:39 -> checkItem
    1:6:java.util.List run():26:31 -> run
com.android.tools.r8.shaking.Enqueuer -> com.android.tools.r8.shaking.Enqueuer:
    1:1:void <clinit>():112:112 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.shaking.Enqueuer$Mode):303:303 -> <init>
    2:2332:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.shaking.Enqueuer$Mode):140:2470 -> <init>
    2333:2360:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.shaking.Enqueuer$Mode):304:331 -> <init>
    1:1:void com.android.tools.r8.graph.analysis.EnqueuerAnalysis.processNewlyLiveField(com.android.tools.r8.graph.DexEncodedField):0:0 -> a
    1:1:void lambda$markInstanceFieldAsLive$28(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.analysis.EnqueuerAnalysis):1827 -> a
    void lambda$newSetWithoutReasonReporter$2(java.lang.Object,com.android.tools.r8.shaking.KeepReason) -> a
    2:2:com.android.tools.r8.shaking.EnqueuerUseRegistryFactory lambda$createUseRegistryFactory$0(com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteShrinker):345:345 -> a
    3:8:void lambda$getNonPinnedWrittenFields$1(java.util.function.Predicate,java.util.Set,com.android.tools.r8.graph.FieldAccessInfoImpl):391:396 -> a
    9:9:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):180:180 -> a
    9:9:void lambda$getNonPinnedWrittenFields$1(java.util.function.Predicate,java.util.Set,com.android.tools.r8.graph.FieldAccessInfoImpl):396 -> a
    10:16:void lambda$getNonPinnedWrittenFields$1(java.util.function.Predicate,java.util.Set,com.android.tools.r8.graph.FieldAccessInfoImpl):398:404 -> a
    17:17:java.util.Set lambda$registerMethodWithTargetAndContext$4(com.android.tools.r8.graph.DexMethod):539:539 -> a
    18:18:void lambda$traceInvokeDirect$5(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):750:750 -> a
    19:19:java.lang.Boolean lambda$registerDeferredActionForDeadProtoBuilder$7(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.Action,com.android.tools.r8.ir.analysis.proto.GeneratedMessageLiteBuilderShrinker):767:767 -> a
    20:20:boolean lambda$registerDeferredActionForDeadProtoBuilder$6(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.utils.Action):768:768 -> a
    21:21:void lambda$traceNewInstance$8(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.ProgramMethod):908:908 -> a
    22:22:java.lang.Boolean lambda$traceStaticFieldRead$9(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):1034:1034 -> a
    23:23:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$classReferencedFromReporter$11(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):1099:1099 -> a
    24:24:boolean lambda$markTypeAsLive$16(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotation):1239:1239 -> a
    25:25:com.android.tools.r8.shaking.ScopedDexMethodSet lambda$ensureMethodsContinueToWidenAccess$18(com.android.tools.r8.graph.DexType):1251:1251 -> a
    26:26:void lambda$processNewlyInstantiatedClass$22(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.analysis.EnqueuerAnalysis):1511:1511 -> a
    27:27:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markInstanceFieldAsReachable$29(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass):1938:1938 -> a
    28:28:com.android.tools.r8.shaking.Enqueuer$SetWithReason lambda$markInstanceFieldAsReachable$31(com.android.tools.r8.graph.DexProgramClass):1959:1959 -> a
    29:32:void lambda$markFailedResolutionTargets$33(com.android.tools.r8.shaking.KeepReason,com.android.tools.r8.graph.DexEncodedMethod):2134:2137 -> a
    33:33:java.util.Set lambda$markSuperMethodAsReachable$34(com.android.tools.r8.graph.DexEncodedMethod):2195:2195 -> a
    34:34:void lambda$createAppInfo$35(com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder,com.android.tools.r8.graph.DexAnnotation):2258:2258 -> a
    35:35:boolean lambda$createAppInfo$36(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.FieldAccessInfoImpl):2263:2263 -> a
    36:36:java.util.Set lambda$trace$37(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):2368:2368 -> a
    37:37:void lambda$trace$38(com.android.tools.r8.graph.analysis.EnqueuerAnalysis):2401:2401 -> a
    38:38:void lambda$addConsequentRootSet$39(com.android.tools.r8.graph.DexReference,java.util.Map):2447:2447 -> a
    39:39:void lambda$addConsequentRootSet$40(com.android.tools.r8.graph.DexType,java.util.Set):2452:2452 -> a
    40:40:boolean com.android.tools.r8.graph.DexType.isDexType():0:0 -> a
    40:40:void lambda$addConsequentRootSet$40(com.android.tools.r8.graph.DexType,java.util.Set):2452 -> a
    41:41:void lambda$addConsequentRootSet$40(com.android.tools.r8.graph.DexType,java.util.Set):2453:2453 -> a
    42:42:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    42:42:void lambda$addConsequentRootSet$40(com.android.tools.r8.graph.DexType,java.util.Set):2453 -> a
    43:43:void lambda$addConsequentRootSet$40(com.android.tools.r8.graph.DexType,java.util.Set):2454:2454 -> a
    44:44:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexType.asDexType():0:0 -> a
    44:44:void lambda$addConsequentRootSet$40(com.android.tools.r8.graph.DexType,java.util.Set):2453 -> a
    45:45:void lambda$markMethodAsLive$41(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexAnnotation):2629:2629 -> a
    46:46:void lambda$markMethodAsLive$42(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.analysis.EnqueuerAnalysis):2636:2636 -> a
    1:1:void access$1000(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):112:112 -> access$1000
    1:1:void access$1100(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):112:112 -> access$1100
    1:1:void access$1200(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):112:112 -> access$1200
    1:1:void access$1300(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):112:112 -> access$1300
    1:1:void access$500(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexProgramClass):112:112 -> access$500
    1:1:com.android.tools.r8.graph.AppView access$600(com.android.tools.r8.shaking.Enqueuer):112:112 -> access$600
    1:1:void access$700(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):112:112 -> access$700
    1:1:com.android.tools.r8.utils.InternalOptions access$800(com.android.tools.r8.shaking.Enqueuer):112:112 -> access$800
    1:1:com.android.tools.r8.graph.DexProgramClass access$900(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexType):112:112 -> access$900
    1:8:void addConsequentRootSet(com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet,boolean):2443:2450 -> addConsequentRootSet
    1:1:void com.android.tools.r8.graph.analysis.EnqueuerAnalysis.processNewlyLiveField(com.android.tools.r8.graph.DexEncodedField):0:0 -> b
    1:1:void lambda$markStaticFieldAsLive$27(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.analysis.EnqueuerAnalysis):1809 -> b
    2:2:java.lang.Boolean lambda$traceStaticFieldWrite$10(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.analysis.proto.GeneratedExtensionRegistryShrinker):1079:1079 -> b
    3:3:void lambda$markTypeAsLive$17(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotation):1240:1240 -> b
    4:4:java.util.Set lambda$markInterfaceTypeAsLiveViaInheritanceClause$19(com.android.tools.r8.graph.DexProgramClass):1286:1286 -> b
    5:5:java.util.Set lambda$handleAnnotation$20(com.android.tools.r8.graph.DexType):1316:1316 -> b
    6:6:void lambda$markMethodAsTargeted$21(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexAnnotation):1485:1485 -> b
    7:7:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markFieldAsTargeted$23(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):1770:1770 -> b
    8:8:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markInstanceFieldAsReachable$30(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass):1940:1940 -> b
    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet lambda$markTypeAsLive$12(com.android.tools.r8.graph.DexType):1153:1153 -> c
    2:2:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markFieldAsTargeted$24(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):1771:1771 -> c
    3:3:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markStaticFieldAsLive$25(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass):1778:1778 -> c
    4:4:com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet lambda$markPossibleTargetsAsReachable$32(com.android.tools.r8.graph.DexProgramClass):2048:2048 -> c
    1:1:java.util.function.Function classReferencedFromReporter(com.android.tools.r8.graph.DexEncodedMethod):1099:1099 -> classReferencedFromReporter
    1:4:void compatEnqueueHolderIfDependentNonStaticMember(com.android.tools.r8.graph.DexClass,java.util.Set):523:526 -> compatEnqueueHolderIfDependentNonStaticMember
    1:5:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet computeDelayedInterfaceMethodSyntheticBridges():2460:2464 -> computeDelayedInterfaceMethodSyntheticBridges
    6:10:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet computeDelayedInterfaceMethodSyntheticBridges():2463:2467 -> computeDelayedInterfaceMethodSyntheticBridges
    1:23:com.android.tools.r8.shaking.AppInfoWithLiveness createAppInfo(com.android.tools.r8.graph.AppInfoWithSubtyping):2256:2278 -> createAppInfo
    24:63:com.android.tools.r8.shaking.AppInfoWithLiveness createAppInfo(com.android.tools.r8.graph.AppInfoWithSubtyping):2277:2316 -> createAppInfo
    64:67:com.android.tools.r8.shaking.AppInfoWithLiveness createAppInfo(com.android.tools.r8.graph.AppInfoWithSubtyping):2315:2318 -> createAppInfo
    1:5:com.android.tools.r8.shaking.EnqueuerUseRegistryFactory createUseRegistryFactory():343:347 -> createUseRegistryFactory
    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet lambda$markTypeAsLive$13(com.android.tools.r8.graph.DexType):1172:1172 -> d
    2:2:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markStaticFieldAsLive$26(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass):1780:1780 -> d
    3:3:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markParameterAndReturnTypesAsLive$44(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):2649:2649 -> d
    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet lambda$markTypeAsLive$14(com.android.tools.r8.graph.DexType):1179:1179 -> e
    2:2:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markParameterAndReturnTypesAsLive$45(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):2653:2653 -> e
    1:1:void enqueueDependentItem(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexDefinition,java.util.Set):1294:1294 -> enqueueDependentItem
    1:11:void enqueueFirstNonSerializableClassInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):495:505 -> enqueueFirstNonSerializableClassInitializer
    12:12:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():742:742 -> enqueueFirstNonSerializableClassInitializer
    12:12:void enqueueFirstNonSerializableClassInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):506 -> enqueueFirstNonSerializableClassInitializer
    13:13:void enqueueFirstNonSerializableClassInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):506:506 -> enqueueFirstNonSerializableClassInitializer
    1:3:boolean enqueueMarkMethodLiveAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):513:515 -> enqueueMarkMethodLiveAction
    1:1:void enqueueRootItem(java.util.Map$Entry):424:424 -> enqueueRootItem
    2:2:com.android.tools.r8.graph.DexDefinition com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexReference):175:175 -> enqueueRootItem
    2:2:void enqueueRootItem(java.util.Map$Entry):424 -> enqueueRootItem
    3:3:void enqueueRootItem(java.util.Map$Entry):426:426 -> enqueueRootItem
    4:4:void enqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set):434:434 -> enqueueRootItem
    1:1:void enqueueRootItems(java.util.Map):420:420 -> enqueueRootItems
    1:13:void ensureFromLibraryOrThrow(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):1428:1440 -> ensureFromLibraryOrThrow
    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> ensureFromLibraryOrThrow
    14:14:void ensureFromLibraryOrThrow(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):1440 -> ensureFromLibraryOrThrow
    15:26:void ensureFromLibraryOrThrow(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass):1441:1452 -> ensureFromLibraryOrThrow
    1:4:void ensureMethodsContinueToWidenAccess(com.android.tools.r8.graph.DexClass):1249:1252 -> ensureMethodsContinueToWidenAccess
    5:9:void ensureMethodsContinueToWidenAccess(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.KeepReason):1257:1261 -> ensureMethodsContinueToWidenAccess
    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet lambda$markTypeAsLive$15(com.android.tools.r8.graph.DexType):1202:1202 -> f
    2:2:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$markReferencedTypesAsLive$43(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):2641:2641 -> f
    1:4:void finalizeLibraryMethodOverrideInformation():2237:2240 -> finalizeLibraryMethodOverrideInformation
    1:33:com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget findAndMarkResolutionTarget(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.shaking.KeepReason):2094:2126 -> findAndMarkResolutionTarget
    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness lambda$registerMethodWithTargetAndContext$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):538:538 -> g
    1:5:com.android.tools.r8.graph.DexMethod generatedEnumValuesMethod(com.android.tools.r8.graph.DexClass):2143:2147 -> generatedEnumValuesMethod
    6:11:com.android.tools.r8.graph.DexMethod generatedEnumValuesMethod(com.android.tools.r8.graph.DexClass):2146:2151 -> generatedEnumValuesMethod
    1:1:com.android.tools.r8.shaking.GraphReporter getGraphReporter():339:339 -> getGraphReporter
    1:1:com.android.tools.r8.graph.DexMethod getInvokeSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1110:1110 -> getInvokeSuperTarget
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> getInvokeSuperTarget
    2:2:com.android.tools.r8.graph.DexMethod getInvokeSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1110 -> getInvokeSuperTarget
    3:6:com.android.tools.r8.graph.DexMethod getInvokeSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1111:1114 -> getInvokeSuperTarget
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> getInvokeSuperTarget
    7:7:com.android.tools.r8.graph.DexMethod getInvokeSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1114 -> getInvokeSuperTarget
    8:13:com.android.tools.r8.graph.DexMethod getInvokeSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1115:1120 -> getInvokeSuperTarget
    1:1:com.android.tools.r8.shaking.Enqueuer$Mode getMode():335:335 -> getMode
    1:24:java.util.Set getNonPinnedWrittenFields(java.util.function.Predicate):388:411 -> getNonPinnedWrittenFields
    25:25:java.util.Set getNonPinnedWrittenFields(java.util.function.Predicate):407:407 -> getNonPinnedWrittenFields
    1:1:com.android.tools.r8.graph.DexProgramClass getProgramClassOrNull(com.android.tools.r8.graph.DexType):364:364 -> getProgramClassOrNull
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> getProgramClassOrNull
    2:2:com.android.tools.r8.graph.DexProgramClass getProgramClassOrNull(com.android.tools.r8.graph.DexType):364 -> getProgramClassOrNull
    3:11:com.android.tools.r8.graph.DexProgramClass getProgramClassOrNull(com.android.tools.r8.graph.DexType):366:374 -> getProgramClassOrNull
    1:1:com.android.tools.r8.shaking.EnqueuerUseRegistryFactory getUseRegistryFactory():351:351 -> getUseRegistryFactory
    1:3:void handleAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):1308:1310 -> handleAnnotation
    4:4:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> handleAnnotation
    4:4:void handleAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):1310 -> handleAnnotation
    5:18:void handleAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):1311:1324 -> handleAnnotation
    1:19:void handleInterfaceMethodSyntheticBridgeAction(com.android.tools.r8.shaking.DelayedRootSetActionItem$InterfaceMethodSyntheticBridgeAction,com.android.tools.r8.shaking.RootSetBuilder):2474:2492 -> handleInterfaceMethodSyntheticBridgeAction
    20:26:void handleInterfaceMethodSyntheticBridgeAction(com.android.tools.r8.shaking.DelayedRootSetActionItem$InterfaceMethodSyntheticBridgeAction,com.android.tools.r8.shaking.RootSetBuilder):2488:2494 -> handleInterfaceMethodSyntheticBridgeAction
    27:31:void handleInterfaceMethodSyntheticBridgeAction(com.android.tools.r8.shaking.DelayedRootSetActionItem$InterfaceMethodSyntheticBridgeAction,com.android.tools.r8.shaking.RootSetBuilder):2493:2497 -> handleInterfaceMethodSyntheticBridgeAction
    1:29:void handleInvokeOfDirectTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):1395:1423 -> handleInvokeOfDirectTarget
    1:15:void handleInvokeOfStaticTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):1337:1351 -> handleInvokeOfStaticTarget
    1:8:void handleJavaLangClassNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2790:2797 -> handleJavaLangClassNewInstance
    9:17:void handleJavaLangClassNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2796:2804 -> handleJavaLangClassNewInstance
    18:18:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():742:742 -> handleJavaLangClassNewInstance
    18:18:void handleJavaLangClassNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2808 -> handleJavaLangClassNewInstance
    19:22:void handleJavaLangClassNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2810:2813 -> handleJavaLangClassNewInstance
    1:6:void handleJavaLangEnumValueOf(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2965:2970 -> handleJavaLangEnumValueOf
    1:21:void handleJavaLangReflectConstructorNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2820:2840 -> handleJavaLangReflectConstructorNewInstance
    22:48:void handleJavaLangReflectConstructorNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2839:2865 -> handleJavaLangReflectConstructorNewInstance
    49:49:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():742:742 -> handleJavaLangReflectConstructorNewInstance
    49:49:void handleJavaLangReflectConstructorNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2867 -> handleJavaLangReflectConstructorNewInstance
    50:94:void handleJavaLangReflectConstructorNewInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2869:2913 -> handleJavaLangReflectConstructorNewInstance
    1:32:void handleJavaLangReflectProxyNewProxyInstance(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2923:2954 -> handleJavaLangReflectProxyNewProxyInstance
    1:7:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):2683:2689 -> handleReflectiveBehavior
    8:50:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):2694:2736 -> handleReflectiveBehavior
    51:51:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():742:742 -> handleReflectiveBehavior
    51:51:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):2737 -> handleReflectiveBehavior
    52:63:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):2738:2749 -> handleReflectiveBehavior
    64:64:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):180:180 -> handleReflectiveBehavior
    64:64:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):2749 -> handleReflectiveBehavior
    65:81:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):2758:2774 -> handleReflectiveBehavior
    82:82:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> handleReflectiveBehavior
    82:82:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):2774 -> handleReflectiveBehavior
    83:88:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):2778:2783 -> handleReflectiveBehavior
    89:90:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):2780:2781 -> handleReflectiveBehavior
    1:13:void handleServiceInstantiation(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):3009:3021 -> handleServiceInstantiation
    1:19:void handleServiceLoaderInvocation(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2976:2994 -> handleServiceLoaderInvocation
    20:36:void handleServiceLoaderInvocation(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):2987:3003 -> handleServiceLoaderInvocation
    1:8:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):439:446 -> internalEnqueueRootItem
    9:9:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():742:742 -> internalEnqueueRootItem
    9:9:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):447 -> internalEnqueueRootItem
    10:14:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):448:452 -> internalEnqueueRootItem
    15:20:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):449:454 -> internalEnqueueRootItem
    21:21:boolean com.android.tools.r8.graph.DexClass.isExternalizable(com.android.tools.r8.graph.AppView):782:782 -> internalEnqueueRootItem
    21:21:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):454 -> internalEnqueueRootItem
    22:33:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):455:466 -> internalEnqueueRootItem
    34:46:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):463:475 -> internalEnqueueRootItem
    47:55:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):472:480 -> internalEnqueueRootItem
    56:56:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set,com.android.tools.r8.graph.DexDefinition):478:478 -> internalEnqueueRootItem
    1:1:boolean isFieldLive(com.android.tools.r8.graph.DexEncodedField):1900:1900 -> isFieldLive
    1:2:boolean isFieldRead(com.android.tools.r8.graph.DexEncodedField):1904:1905 -> isFieldRead
    1:2:boolean isFieldWrittenInMethodSatisfying(com.android.tools.r8.graph.DexEncodedField,java.util.function.Predicate):1910:1911 -> isFieldWrittenInMethodSatisfying
    1:5:boolean isFieldWrittenOutsideDefaultConstructor(com.android.tools.r8.graph.DexEncodedField):1915:1919 -> isFieldWrittenOutsideDefaultConstructor
    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> isFieldWrittenOutsideDefaultConstructor
    6:6:boolean isFieldWrittenOutsideDefaultConstructor(com.android.tools.r8.graph.DexEncodedField):1919 -> isFieldWrittenOutsideDefaultConstructor
    7:7:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():742:742 -> isFieldWrittenOutsideDefaultConstructor
    7:7:boolean isFieldWrittenOutsideDefaultConstructor(com.android.tools.r8.graph.DexEncodedField):1920 -> isFieldWrittenOutsideDefaultConstructor
    8:9:boolean isFieldWrittenOutsideDefaultConstructor(com.android.tools.r8.graph.DexEncodedField):1922:1923 -> isFieldWrittenOutsideDefaultConstructor
    10:10:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():742:742 -> isFieldWrittenOutsideDefaultConstructor
    10:10:boolean isFieldWrittenOutsideDefaultConstructor(com.android.tools.r8.graph.DexEncodedField):1920 -> isFieldWrittenOutsideDefaultConstructor
    1:1:boolean isInstantiatedOrHasInstantiatedSubtype(com.android.tools.r8.graph.DexProgramClass):1927:1927 -> isInstantiatedOrHasInstantiatedSubtype
    1:1:boolean isProgramClass(com.android.tools.r8.graph.DexType):360:360 -> isProgramClass
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap joinIdentifierNameStrings(java.util.Set,java.util.Set):2334:2339 -> joinIdentifierNameStrings
    1:6:void markClassAsInstantiatedWithCompatRule(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):2665:2670 -> markClassAsInstantiatedWithCompatRule
    7:7:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():742:742 -> markClassAsInstantiatedWithCompatRule
    7:7:void markClassAsInstantiatedWithCompatRule(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):2671 -> markClassAsInstantiatedWithCompatRule
    8:10:void markClassAsInstantiatedWithCompatRule(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):2672:2674 -> markClassAsInstantiatedWithCompatRule
    11:11:void markClassAsInstantiatedWithCompatRule(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):2672:2672 -> markClassAsInstantiatedWithCompatRule
    1:3:void markClassAsInstantiatedWithReason(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):2657:2659 -> markClassAsInstantiatedWithReason
    4:4:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():742:742 -> markClassAsInstantiatedWithReason
    4:4:void markClassAsInstantiatedWithReason(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):2659 -> markClassAsInstantiatedWithReason
    5:5:void markClassAsInstantiatedWithReason(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):2659:2659 -> markClassAsInstantiatedWithReason
    1:1:void markDirectAndIndirectClassInitializersAsLive(com.android.tools.r8.graph.DexProgramClass):1356:1356 -> markDirectAndIndirectClassInitializersAsLive
    2:3:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Object):16:17 -> markDirectAndIndirectClassInitializersAsLive
    2:3:void markDirectAndIndirectClassInitializersAsLive(com.android.tools.r8.graph.DexProgramClass):1357 -> markDirectAndIndirectClassInitializersAsLive
    4:16:void markDirectAndIndirectClassInitializersAsLive(com.android.tools.r8.graph.DexProgramClass):1358:1370 -> markDirectAndIndirectClassInitializersAsLive
    1:7:boolean markDirectClassInitializerAsLive(com.android.tools.r8.graph.DexProgramClass):1378:1384 -> markDirectClassInitializerAsLive
    1:13:void markDirectStaticOrConstructorMethodAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1869:1881 -> markDirectStaticOrConstructorMethodAsLive
    14:14:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markDirectStaticOrConstructorMethodAsLive
    14:14:void markDirectStaticOrConstructorMethodAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1880 -> markDirectStaticOrConstructorMethodAsLive
    1:7:void markEnumValuesAsReachable(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):2155:2161 -> markEnumValuesAsReachable
    1:2:void markFailedResolutionTargets(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ResolutionResult$FailedResolutionResult,com.android.tools.r8.shaking.KeepReason):2131:2132 -> markFailedResolutionTargets
    1:5:void markFieldAsKept(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):2544:2548 -> markFieldAsKept
    1:2:void markFieldAsTargeted(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1770:1771 -> markFieldAsTargeted
    1:6:void markInstanceFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1813:1818 -> markInstanceFieldAsLive
    7:7:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markInstanceFieldAsLive
    7:7:void markInstanceFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1818 -> markInstanceFieldAsLive
    8:15:void markInstanceFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1820:1827 -> markInstanceFieldAsLive
    1:3:void markInstanceFieldAsReachable(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1932:1934 -> markInstanceFieldAsReachable
    4:4:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markInstanceFieldAsReachable
    4:4:void markInstanceFieldAsReachable(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1934 -> markInstanceFieldAsReachable
    5:28:void markInstanceFieldAsReachable(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1937:1960 -> markInstanceFieldAsReachable
    1:2:void markInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1832:1833 -> markInstantiated
    3:3:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markInstantiated
    3:3:void markInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1833 -> markInstantiated
    4:4:void markInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1835:1835 -> markInstantiated
    1:7:void markInterfaceAsInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):484:490 -> markInterfaceAsInstantiated
    1:20:void markInterfaceTypeAsLiveViaInheritanceClause(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):1268:1287 -> markInterfaceTypeAsLiveViaInheritanceClause
    21:21:void markInterfaceTypeAsLiveViaInheritanceClause(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):1274:1274 -> markInterfaceTypeAsLiveViaInheritanceClause
    1:1:void markLambdaInstantiated(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):1839:1839 -> markLambdaInstantiated
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> markLambdaInstantiated
    2:2:void markLambdaInstantiated(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):1839 -> markLambdaInstantiated
    3:24:void markLambdaInstantiated(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):1841:1862 -> markLambdaInstantiated
    1:25:void markLibraryAndClasspathMethodOverridesAsLive(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass):1634:1658 -> markLibraryAndClasspathMethodOverridesAsLive
    1:23:void markMethodAsKept(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2510:2532 -> markMethodAsKept
    24:33:void markMethodAsKept(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2529:2538 -> markMethodAsKept
    1:16:void markMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2599:2614 -> markMethodAsLive
    17:17:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markMethodAsLive
    17:17:void markMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2614 -> markMethodAsLive
    18:22:void markMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2616:2620 -> markMethodAsLive
    23:26:void markMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2619:2622 -> markMethodAsLive
    27:42:void markMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):2621:2636 -> markMethodAsLive
    1:1:void markMethodAsLiveWithCompatRule(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):2679:2679 -> markMethodAsLiveWithCompatRule
    1:12:void markMethodAsTargeted(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1477:1488 -> markMethodAsTargeted
    13:13:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markMethodAsTargeted
    13:13:void markMethodAsTargeted(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1488 -> markMethodAsTargeted
    14:18:void markMethodAsTargeted(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1490:1494 -> markMethodAsTargeted
    1:1:void markNonStaticDirectMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):1391:1391 -> markNonStaticDirectMethodAsReachable
    1:2:java.util.Set com.android.tools.r8.utils.SetUtils.newIdentityHashSet(java.lang.Object):16:17 -> markOverridesAsLibraryMethodOverrides
    1:2:void markOverridesAsLibraryMethodOverrides(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):1676 -> markOverridesAsLibraryMethodOverrides
    3:17:void markOverridesAsLibraryMethodOverrides(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass):1677:1691 -> markOverridesAsLibraryMethodOverrides
    1:5:void markParameterAndReturnTypesAsLive(com.android.tools.r8.graph.DexEncodedMethod):2647:2651 -> markParameterAndReturnTypesAsLive
    1:2:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,com.android.tools.r8.graph.DexEncodedMethod):2040:2041 -> markPossibleTargetsAsReachable
    3:3:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():290:290 -> markPossibleTargetsAsReachable
    3:3:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,com.android.tools.r8.graph.DexEncodedMethod):2041 -> markPossibleTargetsAsReachable
    4:47:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,com.android.tools.r8.graph.DexEncodedMethod):2041:2084 -> markPossibleTargetsAsReachable
    48:54:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,com.android.tools.r8.graph.DexEncodedMethod):2081:2087 -> markPossibleTargetsAsReachable
    55:58:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,com.android.tools.r8.graph.DexEncodedMethod):2064:2067 -> markPossibleTargetsAsReachable
    59:59:void markPossibleTargetsAsReachable(com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget,com.android.tools.r8.graph.DexEncodedMethod):2064:2064 -> markPossibleTargetsAsReachable
    1:3:void markReferencedTypesAsLive(com.android.tools.r8.graph.DexEncodedMethod):2640:2642 -> markReferencedTypesAsLive
    1:7:void markResolutionAsLive(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.ResolutionResult):1663:1669 -> markResolutionAsLive
    8:8:void markResolutionAsLive(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.ResolutionResult):1668:1668 -> markResolutionAsLive
    1:19:void markStaticFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1776:1794 -> markStaticFieldAsLive
    20:20:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markStaticFieldAsLive
    20:20:void markStaticFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1794 -> markStaticFieldAsLive
    21:22:void markStaticFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1797:1798 -> markStaticFieldAsLive
    23:23:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markStaticFieldAsLive
    23:23:void markStaticFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1798 -> markStaticFieldAsLive
    24:31:void markStaticFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1802:1809 -> markStaticFieldAsLive
    1:9:void markSuperMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):2167:2175 -> markSuperMethodAsReachable
    10:27:void markSuperMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):2174:2191 -> markSuperMethodAsReachable
    28:28:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markSuperMethodAsReachable
    28:28:void markSuperMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):2191 -> markSuperMethodAsReachable
    29:34:void markSuperMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):2194:2199 -> markSuperMethodAsReachable
    1:16:void markTypeAsLive(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):1139:1154 -> markTypeAsLive
    17:17:void markTypeAsLive(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):1151:1151 -> markTypeAsLive
    18:33:void markTypeAsLive(com.android.tools.r8.graph.DexType,java.util.function.Function):1158:1173 -> markTypeAsLive
    34:34:void markTypeAsLive(com.android.tools.r8.graph.DexType,java.util.function.Function):1170:1170 -> markTypeAsLive
    35:37:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1177:1179 -> markTypeAsLive
    38:38:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1177:1177 -> markTypeAsLive
    39:44:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1185:1190 -> markTypeAsLive
    45:45:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markTypeAsLive
    45:45:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1190 -> markTypeAsLive
    46:97:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1193:1244 -> markTypeAsLive
    98:98:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> markTypeAsLive
    98:98:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1245 -> markTypeAsLive
    99:99:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1245:1245 -> markTypeAsLive
    100:100:void markTypeAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):1244:1244 -> markTypeAsLive
    1:5:void markVirtualMethodAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1887:1891 -> markVirtualMethodAsLive
    6:11:void markVirtualMethodAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1889:1894 -> markVirtualMethodAsLive
    12:12:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markVirtualMethodAsLive
    12:12:void markVirtualMethodAsLive(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1894 -> markVirtualMethodAsLive
    1:28:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):1967:1994 -> markVirtualMethodAsReachable
    29:29:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markVirtualMethodAsReachable
    29:29:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):1994 -> markVirtualMethodAsReachable
    30:54:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):1998:2022 -> markVirtualMethodAsReachable
    55:55:java.util.Set com.android.tools.r8.graph.ResolutionResult.lookupVirtualDispatchTargets(boolean,com.android.tools.r8.graph.AppInfoWithSubtyping):80:80 -> markVirtualMethodAsReachable
    55:55:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):2025 -> markVirtualMethodAsReachable
    56:59:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):2026:2029 -> markVirtualMethodAsReachable
    60:60:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():290:290 -> markVirtualMethodAsReachable
    60:60:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):2030 -> markVirtualMethodAsReachable
    61:61:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):2033:2033 -> markVirtualMethodAsReachable
    1:1:com.android.tools.r8.shaking.Enqueuer$SetWithReason newSetWithoutReasonReporter():416:416 -> newSetWithoutReasonReporter
    1:13:void populateInstantiatedTypesCache(com.android.tools.r8.graph.DexProgramClass):1536:1548 -> populateInstantiatedTypesCache
    1:1:void processAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):1304:1304 -> processAnnotation
    1:2:void processAnnotations(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation[]):1298:1299 -> processAnnotations
    1:15:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1506:1520 -> processNewlyInstantiatedClass
    16:16:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> processNewlyInstantiatedClass
    16:16:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1520 -> processNewlyInstantiatedClass
    17:26:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1523:1532 -> processNewlyInstantiatedClass
    1:1:com.android.tools.r8.shaking.Enqueuer registerAnalysis(com.android.tools.r8.graph.analysis.EnqueuerAnalysis):355:355 -> registerAnalysis
    1:7:boolean registerDeferredActionForDeadProtoBuilder(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.Action):763:769 -> registerDeferredActionForDeadProtoBuilder
    8:8:boolean registerDeferredActionForDeadProtoBuilder(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.Action):765:765 -> registerDeferredActionForDeadProtoBuilder
    1:2:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):553:554 -> registerFieldAccess
    3:31:boolean registerFieldAccess(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod,boolean):559:587 -> registerFieldAccess
    1:1:boolean registerFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):545:545 -> registerFieldRead
    1:1:boolean registerFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):549:549 -> registerFieldWrite
    1:4:boolean registerMethodWithTargetAndContext(java.util.Map,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):536:539 -> registerMethodWithTargetAndContext
    1:2:void reportMissingClass(com.android.tools.r8.graph.DexType):1458:1459 -> reportMissingClass
    3:3:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> reportMissingClass
    3:3:void reportMissingClass(com.android.tools.r8.graph.DexType):1459 -> reportMissingClass
    1:2:void reportMissingField(com.android.tools.r8.graph.DexField):1470:1471 -> reportMissingField
    3:3:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> reportMissingField
    3:3:void reportMissingField(com.android.tools.r8.graph.DexField):1471 -> reportMissingField
    1:2:void reportMissingMethod(com.android.tools.r8.graph.DexMethod):1464:1465 -> reportMissingMethod
    3:3:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> reportMissingMethod
    3:3:void reportMissingMethod(com.android.tools.r8.graph.DexMethod):1465 -> reportMissingMethod
    1:4:com.android.tools.r8.graph.ResolutionResult resolveMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):1328:1331 -> resolveMethod
    1:1:boolean shouldMarkLibraryMethodOverrideAsReachable(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):2554:2554 -> shouldMarkLibraryMethodOverrideAsReachable
    2:2:boolean com.android.tools.r8.graph.DexEncodedMethod.isAbstract():290:290 -> shouldMarkLibraryMethodOverrideAsReachable
    2:2:boolean shouldMarkLibraryMethodOverrideAsReachable(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):2556 -> shouldMarkLibraryMethodOverrideAsReachable
    3:19:boolean shouldMarkLibraryMethodOverrideAsReachable(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):2556:2572 -> shouldMarkLibraryMethodOverrideAsReachable
    20:20:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> shouldMarkLibraryMethodOverrideAsReachable
    20:20:boolean shouldMarkLibraryMethodOverrideAsReachable(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):2572 -> shouldMarkLibraryMethodOverrideAsReachable
    21:33:boolean shouldMarkLibraryMethodOverrideAsReachable(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):2577:2589 -> shouldMarkLibraryMethodOverrideAsReachable
    1:6:java.util.SortedSet toSortedDescriptorSet(java.util.Set):2324:2329 -> toSortedDescriptorSet
    1:84:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):2345:2428 -> trace
    85:96:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):2427:2438 -> trace
    97:97:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):2436:2436 -> trace
    1:10:com.android.tools.r8.shaking.AppInfoWithLiveness traceApplication(com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.shaking.ProguardClassFilter,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):2224:2233 -> traceApplication
    1:62:void traceCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.ProgramMethod):591:652 -> traceCallSite
    63:63:void traceCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.ProgramMethod):649:649 -> traceCallSite
    64:64:void traceCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.ProgramMethod):646:646 -> traceCallSite
    65:65:void traceCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.ProgramMethod):643:643 -> traceCallSite
    66:66:void traceCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.ProgramMethod):640:640 -> traceCallSite
    67:106:void traceCallSite(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.ProgramMethod):637:676 -> traceCallSite
    1:1:boolean traceCheckCast(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):682:682 -> traceCheckCast
    1:8:boolean traceConstClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):688:695 -> traceConstClass
    1:10:boolean traceConstClassOrCheckCast(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):699:708 -> traceConstClassOrCheckCast
    11:11:boolean traceConstClassOrCheckCast(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):707:707 -> traceConstClassOrCheckCast
    1:20:boolean traceInstanceFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):934:953 -> traceInstanceFieldRead
    21:21:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceInstanceFieldRead
    21:21:boolean traceInstanceFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):953 -> traceInstanceFieldRead
    22:30:boolean traceInstanceFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):958:966 -> traceInstanceFieldRead
    31:31:boolean traceInstanceFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):965:965 -> traceInstanceFieldRead
    1:20:boolean traceInstanceFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):971:990 -> traceInstanceFieldWrite
    21:21:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceInstanceFieldWrite
    21:21:boolean traceInstanceFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):990 -> traceInstanceFieldWrite
    22:30:boolean traceInstanceFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):995:1003 -> traceInstanceFieldWrite
    1:15:boolean traceInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):743:757 -> traceInvokeDirect
    16:16:boolean traceInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):756:756 -> traceInvokeDirect
    17:22:boolean traceInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):781:786 -> traceInvokeDirect
    23:23:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceInvokeDirect
    23:23:boolean traceInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):786 -> traceInvokeDirect
    24:24:boolean traceInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):788:788 -> traceInvokeDirect
    1:2:boolean traceInvokeDirectFromLambda(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):775:776 -> traceInvokeDirectFromLambda
    3:3:boolean traceInvokeDirectFromLambda(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):775:775 -> traceInvokeDirectFromLambda
    1:2:boolean traceInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):793:794 -> traceInvokeInterface
    3:3:boolean traceInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):793:793 -> traceInvokeInterface
    4:9:boolean traceInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):804:809 -> traceInvokeInterface
    10:10:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceInvokeInterface
    10:10:boolean traceInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):809 -> traceInvokeInterface
    11:11:boolean traceInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):811:811 -> traceInvokeInterface
    1:2:boolean traceInvokeInterfaceFromLambda(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):798:799 -> traceInvokeInterfaceFromLambda
    3:3:boolean traceInvokeInterfaceFromLambda(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):798:798 -> traceInvokeInterfaceFromLambda
    1:2:boolean traceInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):816:817 -> traceInvokeStatic
    3:3:boolean traceInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):816:816 -> traceInvokeStatic
    4:28:boolean traceInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):827:851 -> traceInvokeStatic
    29:29:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceInvokeStatic
    29:29:boolean traceInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):851 -> traceInvokeStatic
    30:30:boolean traceInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):853:853 -> traceInvokeStatic
    1:2:boolean traceInvokeStaticFromLambda(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):821:822 -> traceInvokeStaticFromLambda
    3:3:boolean traceInvokeStaticFromLambda(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):821:821 -> traceInvokeStaticFromLambda
    1:10:boolean traceInvokeSuper(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):858:867 -> traceInvokeSuper
    11:11:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceInvokeSuper
    11:11:boolean traceInvokeSuper(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):867 -> traceInvokeSuper
    12:12:boolean traceInvokeSuper(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):869:869 -> traceInvokeSuper
    1:2:boolean traceInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):874:875 -> traceInvokeVirtual
    3:3:boolean traceInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):874:874 -> traceInvokeVirtual
    4:11:boolean traceInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):885:892 -> traceInvokeVirtual
    12:23:boolean traceInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):887:898 -> traceInvokeVirtual
    24:24:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceInvokeVirtual
    24:24:boolean traceInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):898 -> traceInvokeVirtual
    25:25:boolean traceInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):900:900 -> traceInvokeVirtual
    1:2:boolean traceInvokeVirtualFromLambda(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):879:880 -> traceInvokeVirtualFromLambda
    3:3:boolean traceInvokeVirtualFromLambda(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ProgramMethod):879:879 -> traceInvokeVirtualFromLambda
    1:8:java.util.Set traceMainDex(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):2208:2215 -> traceMainDex
    1:1:boolean com.android.tools.r8.graph.DexMethodHandle.isMethodHandle():297:297 -> traceMethodHandle
    1:1:void traceMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse,com.android.tools.r8.graph.DexEncodedMethod):723 -> traceMethodHandle
    2:10:void traceMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse,com.android.tools.r8.graph.DexEncodedMethod):723:731 -> traceMethodHandle
    1:9:boolean traceNewInstance(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.ProgramMethod):905:913 -> traceNewInstance
    10:16:boolean traceNewInstance(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.KeepReason):921:927 -> traceNewInstance
    1:1:boolean traceNewInstanceFromLambda(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.ProgramMethod):917:917 -> traceNewInstanceFromLambda
    1:19:boolean traceStaticFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1008:1026 -> traceStaticFieldRead
    20:20:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceStaticFieldRead
    20:20:boolean traceStaticFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1026 -> traceStaticFieldRead
    21:28:boolean traceStaticFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1029:1036 -> traceStaticFieldRead
    29:45:boolean traceStaticFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1032:1048 -> traceStaticFieldRead
    1:19:boolean traceStaticFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1053:1071 -> traceStaticFieldWrite
    20:20:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> traceStaticFieldWrite
    20:20:boolean traceStaticFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1071 -> traceStaticFieldWrite
    21:28:boolean traceStaticFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1074:1081 -> traceStaticFieldWrite
    29:45:boolean traceStaticFieldWrite(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):1077:1093 -> traceStaticFieldWrite
    1:1:boolean traceTypeReference(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):738:738 -> traceTypeReference
    1:8:void transitionDefaultMethodsForInstantiatedClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ScopedDexMethodSet):1699:1706 -> transitionDefaultMethodsForInstantiatedClass
    1:4:void transitionDependentItemsForInstantiatedClass(com.android.tools.r8.graph.DexClass):1747:1750 -> transitionDependentItemsForInstantiatedClass
    5:5:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> transitionDependentItemsForInstantiatedClass
    5:5:void transitionDependentItemsForInstantiatedClass(com.android.tools.r8.graph.DexClass):1750 -> transitionDependentItemsForInstantiatedClass
    6:7:void transitionDependentItemsForInstantiatedClass(com.android.tools.r8.graph.DexClass):1752:1753 -> transitionDependentItemsForInstantiatedClass
    1:9:void transitionFieldsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1732:1740 -> transitionFieldsForInstantiatedClass
    1:22:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1569:1590 -> transitionMethodsForInstantiatedClass
    23:23:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> transitionMethodsForInstantiatedClass
    23:23:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1590 -> transitionMethodsForInstantiatedClass
    24:50:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1592:1618 -> transitionMethodsForInstantiatedClass
    51:51:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> transitionMethodsForInstantiatedClass
    51:51:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1618 -> transitionMethodsForInstantiatedClass
    52:56:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1620:1624 -> transitionMethodsForInstantiatedClass
    57:57:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> transitionMethodsForInstantiatedClass
    57:57:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1624 -> transitionMethodsForInstantiatedClass
    58:58:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexProgramClass):1626:1626 -> transitionMethodsForInstantiatedClass
    1:9:void transitionNonAbstractMethodsToLiveAndShadow(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet,com.android.tools.r8.shaking.ScopedDexMethodSet):1712:1720 -> transitionNonAbstractMethodsToLiveAndShadow
    10:10:void transitionNonAbstractMethodsToLiveAndShadow(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet,com.android.tools.r8.shaking.ScopedDexMethodSet):1719:1719 -> transitionNonAbstractMethodsToLiveAndShadow
    11:11:void transitionNonAbstractMethodsToLiveAndShadow(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet,com.android.tools.r8.shaking.ScopedDexMethodSet):1716:1716 -> transitionNonAbstractMethodsToLiveAndShadow
    1:3:void transitionReachableVirtualMethods(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ScopedDexMethodSet):1103:1105 -> transitionReachableVirtualMethods
    1:9:void transitionUnusedInterfaceToLive(com.android.tools.r8.graph.DexProgramClass):1757:1765 -> transitionUnusedInterfaceToLive
    1:5:void unpinLambdaMethods():2501:2505 -> unpinLambdaMethods
    1:3:boolean verifyKeptGraph():2247:2249 -> verifyKeptGraph
    1:2:boolean verifyMethodIsTargeted(com.android.tools.r8.graph.DexEncodedMethod):1128:1129 -> verifyMethodIsTargeted
    1:1:boolean verifyTypeIsLive(com.android.tools.r8.graph.DexProgramClass):1134:1134 -> verifyTypeIsLive
    1:5:void warnIfLibraryTypeInheritsFromProgramType(com.android.tools.r8.graph.DexLibraryClass):379:383 -> warnIfLibraryTypeInheritsFromProgramType
com.android.tools.r8.shaking.Enqueuer$1 -> com.android.tools.r8.shaking.Enqueuer$1:
    1:1:void <clinit>():635:635 -> <clinit>
com.android.tools.r8.shaking.Enqueuer$AnnotationReferenceMarker -> com.android.tools.r8.shaking.Enqueuer$AnnotationReferenceMarker:
    1:1:void <init>(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.KeepReason,com.android.tools.r8.shaking.Enqueuer$1):3200:3200 -> <init>
    2:5:void <init>(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.KeepReason):3207:3210 -> <init>
    1:1:boolean addField(com.android.tools.r8.graph.DexField):3220:3220 -> addField
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> addField
    2:2:boolean addField(com.android.tools.r8.graph.DexField):3220 -> addField
    3:13:boolean addField(com.android.tools.r8.graph.DexField):3224:3234 -> addField
    14:14:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> addField
    14:14:boolean addField(com.android.tools.r8.graph.DexField):3234 -> addField
    15:27:boolean addField(com.android.tools.r8.graph.DexField):3234:3246 -> addField
    1:10:boolean addMethod(com.android.tools.r8.graph.DexMethod):3254:3263 -> addMethod
    11:18:boolean addMethod(com.android.tools.r8.graph.DexMethod):3262:3269 -> addMethod
    1:2:boolean addType(com.android.tools.r8.graph.DexType):3299:3300 -> addType
    1:1:com.android.tools.r8.graph.DexString com.android.tools.r8.dex.IndexedItemCollection.getRenamedDescriptor(com.android.tools.r8.graph.DexType):111:111 -> getRenamedDescriptor
    1:1:com.android.tools.r8.graph.DexString getRenamedDescriptor(com.android.tools.r8.graph.DexType):0 -> getRenamedDescriptor
    1:1:com.android.tools.r8.graph.DexString com.android.tools.r8.dex.IndexedItemCollection.getRenamedName(com.android.tools.r8.graph.DexMethod):103:103 -> getRenamedName
    1:1:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexMethod):0 -> getRenamedName
    2:2:com.android.tools.r8.graph.DexString com.android.tools.r8.dex.IndexedItemCollection.getRenamedName(com.android.tools.r8.graph.DexField):107:107 -> getRenamedName
    2:2:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexField):0 -> getRenamedName
com.android.tools.r8.shaking.Enqueuer$LiveMethodsSet -> com.android.tools.r8.shaking.Enqueuer$LiveMethodsSet:
    1:1:void <init>(com.android.tools.r8.shaking.Enqueuer,java.util.function.BiConsumer):3063:3063 -> <init>
    2:7:void <init>(com.android.tools.r8.shaking.Enqueuer,java.util.function.BiConsumer):3059:3064 -> <init>
    1:1:java.util.Set access$400(com.android.tools.r8.shaking.Enqueuer$LiveMethodsSet):3057:3057 -> access$400
    1:3:boolean add(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):3068:3070 -> add
    1:1:boolean contains(com.android.tools.r8.graph.DexEncodedMethod):3074:3074 -> contains
    1:1:java.util.Set getItems():3078:3078 -> getItems
com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget -> com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget:
    1:3:void <clinit>():3106:3108 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):3117:3120 -> <init>
    1:2:boolean equals(java.lang.Object):3136:3137 -> equals
    1:1:int hashCode():3130:3130 -> hashCode
    1:1:boolean isUnresolved():3124:3124 -> isUnresolved
    1:1:com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget unresolved():3114:3114 -> unresolved
com.android.tools.r8.shaking.Enqueuer$Mode -> com.android.tools.r8.shaking.Enqueuer$Mode:
    1:4:void <clinit>():115:118 -> <clinit>
    5:5:void <clinit>():114:114 -> <clinit>
    1:1:void <init>(java.lang.String,int):114:114 -> <init>
    1:1:boolean isFinalTreeShaking():125:125 -> isFinalTreeShaking
    1:1:boolean isInitialOrFinalTreeShaking():129:129 -> isInitialOrFinalTreeShaking
    1:1:boolean isInitialTreeShaking():121:121 -> isInitialTreeShaking
    1:1:boolean isTracingMainDex():133:133 -> isTracingMainDex
    1:1:com.android.tools.r8.shaking.Enqueuer$Mode valueOf(java.lang.String):114:114 -> valueOf
    1:1:com.android.tools.r8.shaking.Enqueuer$Mode[] values():114:114 -> values
com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet -> com.android.tools.r8.shaking.Enqueuer$ReachableVirtualMethodsSet:
    1:4:void <init>():3141:3144 -> <init>
    5:5:void <init>(com.android.tools.r8.shaking.Enqueuer$1):3141:3141 -> <init>
    1:8:boolean add(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget):3155:3162 -> add
    1:1:java.util.Set getMethods():3147:3147 -> getMethods
    1:1:java.util.Set getReasons(com.android.tools.r8.graph.DexEncodedMethod):3151:3151 -> getReasons
com.android.tools.r8.shaking.Enqueuer$SetWithReason -> com.android.tools.r8.shaking.Enqueuer$SetWithReason:
    1:1:void <init>(java.util.function.BiConsumer):3088:3088 -> <init>
    2:7:void <init>(java.util.function.BiConsumer):3084:3089 -> <init>
    1:1:java.util.Set access$200(com.android.tools.r8.shaking.Enqueuer$SetWithReason):3082:3082 -> access$200
    1:2:boolean add(java.lang.Object,com.android.tools.r8.shaking.KeepReason):3093:3094 -> add
    1:1:boolean contains(java.lang.Object):3098:3098 -> contains
    1:1:java.util.Set getItems():3102:3102 -> getItems
com.android.tools.r8.shaking.Enqueuer$SetWithReportedReason -> com.android.tools.r8.shaking.Enqueuer$SetWithReportedReason:
    1:1:void <clinit>():3026:3026 -> <clinit>
    1:4:void <init>():3026:3029 -> <init>
    5:5:void <init>(com.android.tools.r8.shaking.Enqueuer$1):3026:3026 -> <init>
    1:1:java.util.List lambda$registerDeferredAction$0(java.lang.Object):3046:3046 -> a
    1:1:java.util.Set access$300(com.android.tools.r8.shaking.Enqueuer$SetWithReportedReason):3026:3026 -> access$300
    1:3:boolean add(java.lang.Object,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):3032:3034 -> add
    1:1:boolean contains(java.lang.Object):3041:3041 -> contains
    1:1:java.util.Set getItems():3053:3053 -> getItems
    1:2:boolean registerDeferredAction(java.lang.Object,com.android.tools.r8.utils.Action):3045:3046 -> registerDeferredAction
com.android.tools.r8.shaking.Enqueuer$TargetWithContext -> com.android.tools.r8.shaking.Enqueuer$TargetWithContext:
    1:3:void <init>(com.android.tools.r8.graph.Descriptor,com.android.tools.r8.graph.DexEncodedMethod):3172:3174 -> <init>
    1:5:boolean equals(java.lang.Object):3192:3196 -> equals
    1:1:com.android.tools.r8.graph.DexEncodedMethod getContext():3182:3182 -> getContext
    1:1:com.android.tools.r8.graph.Descriptor getTarget():3178:3178 -> getTarget
    1:1:int hashCode():3187:3187 -> hashCode
com.android.tools.r8.shaking.EnqueuerFactory -> com.android.tools.r8.shaking.EnqueuerFactory:
    1:1:void <init>():12:12 -> <init>
    1:1:com.android.tools.r8.shaking.Enqueuer createForFinalTreeShaking(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer):21:21 -> createForFinalTreeShaking
    1:1:com.android.tools.r8.shaking.Enqueuer createForInitialTreeShaking(com.android.tools.r8.graph.AppView):16:16 -> createForInitialTreeShaking
    1:1:com.android.tools.r8.shaking.Enqueuer createForMainDexTracing(com.android.tools.r8.graph.AppView):25:25 -> createForMainDexTracing
    2:2:com.android.tools.r8.shaking.Enqueuer createForMainDexTracing(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer):30:30 -> createForMainDexTracing
    1:1:com.android.tools.r8.shaking.Enqueuer createForWhyAreYouKeeping(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer):35:35 -> createForWhyAreYouKeeping
com.android.tools.r8.shaking.EnqueuerUtils -> com.android.tools.r8.shaking.EnqueuerUtils:
    1:1:void <init>():11:11 -> <init>
    1:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedMap toImmutableSortedMap(java.util.Map,java.util.Comparator):15:17 -> toImmutableSortedMap
com.android.tools.r8.shaking.EnqueuerWorklist -> com.android.tools.r8.shaking.EnqueuerWorklist:
    1:1:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):205:205 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView):203:206 -> <init>
    1:1:com.android.tools.r8.shaking.EnqueuerWorklist createWorklist(com.android.tools.r8.graph.AppView):210:210 -> createWorklist
    1:2:void enqueueMarkFieldKeptAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):257:258 -> enqueueMarkFieldKeptAction
    1:2:void enqueueMarkInstantiatedAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):239:240 -> enqueueMarkInstantiatedAction
    1:2:void enqueueMarkMethodKeptAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):251:252 -> enqueueMarkMethodKeptAction
    1:2:void enqueueMarkMethodLiveAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):245:246 -> enqueueMarkMethodLiveAction
    1:1:void enqueueMarkReachableDirectAction(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):222:222 -> enqueueMarkReachableDirectAction
    1:2:void enqueueMarkReachableFieldAction(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):231:232 -> enqueueMarkReachableFieldAction
    1:1:void enqueueMarkReachableSuperAction(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):226:226 -> enqueueMarkReachableSuperAction
    1:2:void enqueueTraceConstClassAction(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):262:263 -> enqueueTraceConstClassAction
    1:2:void enqueueTraceInvokeDirectAction(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):268:269 -> enqueueTraceInvokeDirectAction
    1:1:void enqueueTraceNewInstanceAction(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.ProgramMethod):273:273 -> enqueueTraceNewInstanceAction
    1:2:void enqueueTraceStaticFieldRead(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):277:278 -> enqueueTraceStaticFieldRead
    1:1:boolean isEmpty():214:214 -> isEmpty
    1:1:com.android.tools.r8.shaking.EnqueuerWorklist$EnqueuerAction poll():218:218 -> poll
com.android.tools.r8.shaking.EnqueuerWorklist$EnqueuerAction -> com.android.tools.r8.shaking.EnqueuerWorklist$EnqueuerAction:
    1:1:void <init>():21:21 -> <init>
com.android.tools.r8.shaking.EnqueuerWorklist$MarkFieldKeptAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkFieldKeptAction:
    1:4:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness):127:130 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):135:135 -> run
com.android.tools.r8.shaking.EnqueuerWorklist$MarkInstantiatedAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkInstantiatedAction:
    1:4:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):76:79 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):84:84 -> run
com.android.tools.r8.shaking.EnqueuerWorklist$MarkMethodKeptAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkMethodKeptAction:
    1:4:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):109:112 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):117:117 -> run
com.android.tools.r8.shaking.EnqueuerWorklist$MarkMethodLiveAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkMethodLiveAction:
    1:3:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):92:94 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):99:99 -> run
com.android.tools.r8.shaking.EnqueuerWorklist$MarkReachableDirectAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkReachableDirectAction:
    1:3:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):29:31 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):36:36 -> run
com.android.tools.r8.shaking.EnqueuerWorklist$MarkReachableFieldAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkReachableFieldAction:
    1:3:void <init>(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):59:61 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):66:66 -> run
com.android.tools.r8.shaking.EnqueuerWorklist$MarkReachableSuperAction -> com.android.tools.r8.shaking.EnqueuerWorklist$MarkReachableSuperAction:
    1:3:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):44:46 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):51:51 -> run
com.android.tools.r8.shaking.EnqueuerWorklist$TraceConstClassAction -> com.android.tools.r8.shaking.EnqueuerWorklist$TraceConstClassAction:
    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):143:145 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):150:150 -> run
com.android.tools.r8.shaking.EnqueuerWorklist$TraceInvokeDirectAction -> com.android.tools.r8.shaking.EnqueuerWorklist$TraceInvokeDirectAction:
    1:4:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):160:163 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):168:168 -> run
com.android.tools.r8.shaking.EnqueuerWorklist$TraceNewInstanceAction -> com.android.tools.r8.shaking.EnqueuerWorklist$TraceNewInstanceAction:
    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.ProgramMethod):176:178 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):183:183 -> run
com.android.tools.r8.shaking.EnqueuerWorklist$TraceStaticFieldReadAction -> com.android.tools.r8.shaking.EnqueuerWorklist$TraceStaticFieldReadAction:
    1:3:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedMethod):191:193 -> <init>
    1:1:void run(com.android.tools.r8.shaking.Enqueuer):198:198 -> run
com.android.tools.r8.shaking.FilteredClassPath -> com.android.tools.r8.shaking.FilteredClassPath:
    1:5:void <init>(java.nio.file.Path,java.util.List,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):27:31 -> <init>
    6:6:void <init>(java.nio.file.Path):35:35 -> <init>
    1:1:boolean containsFileSeparator(java.lang.String):71:71 -> containsFileSeparator
    1:1:com.android.tools.r8.origin.Origin getOrigin():47:47 -> getOrigin
    1:1:java.nio.file.Path getPath():43:43 -> getPath
    1:1:com.android.tools.r8.position.Position getPosition():51:51 -> getPosition
    1:1:boolean isUnfiltered():123:123 -> isUnfiltered
    1:41:boolean matchAgainstFileName(java.lang.String,int,java.lang.String,int):76:116 -> matchAgainstFileName
    1:7:boolean matchesFile(java.lang.String):55:61 -> matchesFile
    1:16:java.lang.String toString():128:143 -> toString
    1:1:com.android.tools.r8.shaking.FilteredClassPath unfiltered(java.nio.file.Path):39:39 -> unfiltered
com.android.tools.r8.shaking.GraphReporter -> com.android.tools.r8.shaking.GraphReporter:
    1:1:void <clinit>():45:45 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer):59:59 -> <init>
    2:16:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.experimental.graphinfo.GraphConsumer):52:66 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo lambda$getEdgeInfo$0(com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind):413:413 -> a
    2:6:com.android.tools.r8.experimental.graphinfo.AnnotationGraphNode lambda$getAnnotationGraphNode$1(com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexItem):420:424 -> a
    7:7:com.android.tools.r8.experimental.graphinfo.ClassGraphNode lambda$getClassGraphNode$2(com.android.tools.r8.graph.DexType):432:432 -> a
    8:8:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    8:8:com.android.tools.r8.experimental.graphinfo.ClassGraphNode lambda$getClassGraphNode$2(com.android.tools.r8.graph.DexType):432 -> a
    9:11:com.android.tools.r8.experimental.graphinfo.ClassGraphNode lambda$getClassGraphNode$2(com.android.tools.r8.graph.DexType):433:435 -> a
    12:12:com.android.tools.r8.experimental.graphinfo.MethodGraphNode lambda$getMethodGraphNode$3(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):443:443 -> a
    13:13:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    13:13:com.android.tools.r8.experimental.graphinfo.MethodGraphNode lambda$getMethodGraphNode$3(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):443 -> a
    14:26:com.android.tools.r8.experimental.graphinfo.MethodGraphNode lambda$getMethodGraphNode$3(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):444:456 -> a
    27:27:com.android.tools.r8.experimental.graphinfo.MethodGraphNode lambda$getMethodGraphNode$3(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):450:450 -> a
    28:28:com.android.tools.r8.experimental.graphinfo.FieldGraphNode lambda$getFieldGraphNode$4(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):464:464 -> a
    29:29:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    29:29:com.android.tools.r8.experimental.graphinfo.FieldGraphNode lambda$getFieldGraphNode$4(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):464 -> a
    30:35:com.android.tools.r8.experimental.graphinfo.FieldGraphNode lambda$getFieldGraphNode$4(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):465:470 -> a
    36:36:com.android.tools.r8.experimental.graphinfo.FieldGraphNode lambda$getFieldGraphNode$4(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):467:467 -> a
    37:37:com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode lambda$getKeepRuleGraphNode$5(com.android.tools.r8.shaking.ProguardKeepRuleBase,java.util.Set,com.android.tools.r8.shaking.ProguardKeepRuleBase):488:488 -> a
    38:42:com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode lambda$getKeepRuleGraphNode$6(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.shaking.ProguardKeepRuleBase):496:500 -> a
    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness fakeReportShouldNotBeUsed():71:71 -> fakeReportShouldNotBeUsed
    1:1:com.android.tools.r8.experimental.graphinfo.AnnotationGraphNode getAnnotationGraphNode(com.android.tools.r8.graph.DexItem):417:417 -> getAnnotationGraphNode
    1:1:com.android.tools.r8.experimental.graphinfo.ClassGraphNode getClassGraphNode(com.android.tools.r8.graph.DexType):429:429 -> getClassGraphNode
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo getEdgeInfo(com.android.tools.r8.shaking.KeepReason):409:409 -> getEdgeInfo
    2:2:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo getEdgeInfo(com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind):413:413 -> getEdgeInfo
    1:1:com.android.tools.r8.experimental.graphinfo.FieldGraphNode getFieldGraphNode(com.android.tools.r8.graph.DexField):461:461 -> getFieldGraphNode
    1:10:com.android.tools.r8.experimental.graphinfo.GraphNode getGraphNode(com.android.tools.r8.graph.DexReference):396:405 -> getGraphNode
    1:21:com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode getKeepRuleGraphNode(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardKeepRuleBase):483:503 -> getKeepRuleGraphNode
    1:1:com.android.tools.r8.experimental.graphinfo.MethodGraphNode getMethodGraphNode(com.android.tools.r8.graph.DexMethod):440:440 -> getMethodGraphNode
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.KeepReason):392:392 -> getSourceNode
    1:1:boolean isNonProgramClass(com.android.tools.r8.graph.DexType):387:387 -> isNonProgramClass
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> isNonProgramClass
    2:2:boolean isNonProgramClass(com.android.tools.r8.graph.DexType):387 -> isNonProgramClass
    3:3:boolean isNonProgramClass(com.android.tools.r8.graph.DexType):388:388 -> isNonProgramClass
    1:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.shaking.KeepReason):350:353 -> registerAnnotation
    1:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):343:346 -> registerClass
    1:8:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerEdge(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.shaking.KeepReason):376:383 -> registerEdge
    1:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):369:372 -> registerField
    1:5:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerInterface(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.KeepReason):335:339 -> registerInterface
    1:9:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness registerMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):357:365 -> registerMethod
    1:6:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportClassReferencedFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):207:212 -> reportClassReferencedFrom
    7:12:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportClassReferencedFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):217:222 -> reportClassReferencedFrom
    13:18:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportClassReferencedFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField):226:231 -> reportClassReferencedFrom
    1:7:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompanionClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):274:280 -> reportCompanionClass
    8:8:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompanionClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):279:279 -> reportCompanionClass
    1:7:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompanionMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):285:291 -> reportCompanionMethod
    8:8:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompanionMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):289:289 -> reportCompanionMethod
    1:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):196:199 -> reportCompatInstantiated
    5:10:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatInstantiated(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):197:202 -> reportCompatInstantiated
    1:2:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepDefaultInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):174:175 -> reportCompatKeepDefaultInitializer
    3:3:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():742:742 -> reportCompatKeepDefaultInitializer
    3:3:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepDefaultInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):175 -> reportCompatKeepDefaultInitializer
    4:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepDefaultInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):175:175 -> reportCompatKeepDefaultInitializer
    5:5:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexClass.getDefaultInitializer():742:742 -> reportCompatKeepDefaultInitializer
    5:5:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepDefaultInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):175 -> reportCompatKeepDefaultInitializer
    6:9:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepDefaultInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):176:179 -> reportCompatKeepDefaultInitializer
    10:15:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepDefaultInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):177:182 -> reportCompatKeepDefaultInitializer
    1:6:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportCompatKeepMethod(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):186:191 -> reportCompatKeepMethod
    1:3:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportEdge(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind):296:298 -> reportEdge
    1:6:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportKeepClass(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardKeepRuleBase,com.android.tools.r8.graph.DexProgramClass):111:116 -> reportKeepClass
    7:13:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportKeepClass(com.android.tools.r8.graph.DexDefinition,java.util.Collection,com.android.tools.r8.graph.DexProgramClass):121:127 -> reportKeepClass
    1:6:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportKeepField(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardKeepRuleBase,com.android.tools.r8.graph.DexEncodedField):153:158 -> reportKeepField
    7:13:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportKeepField(com.android.tools.r8.graph.DexDefinition,java.util.Collection,com.android.tools.r8.graph.DexEncodedField):163:169 -> reportKeepField
    1:6:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportKeepMethod(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardKeepRuleBase,com.android.tools.r8.graph.DexEncodedMethod):132:137 -> reportKeepMethod
    7:13:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportKeepMethod(com.android.tools.r8.graph.DexDefinition,java.util.Collection,com.android.tools.r8.graph.DexEncodedMethod):142:148 -> reportKeepMethod
    1:7:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind reportPrecondition(com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode):100:106 -> reportPrecondition
    1:11:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportReachableClassInitializer(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):237:247 -> reportReachableClassInitializer
    1:4:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportReachableMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget):252:255 -> reportReachableMethodAsLive
    5:10:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportReachableMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.Enqueuer$MarkedResolutionTarget):253:258 -> reportReachableMethodAsLive
    11:18:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness reportReachableMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):263:270 -> reportReachableMethodAsLive
    1:6:boolean skipReporting(com.android.tools.r8.shaking.KeepReason):326:331 -> skipReporting
    1:21:boolean verifyRootedPath(com.android.tools.r8.graph.DexProgramClass):75:95 -> verifyRootedPath
com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness -> com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness:
    1:1:void <clinit>():308:308 -> <clinit>
    1:1:void <init>():310:310 -> <init>
    1:1:com.android.tools.r8.shaking.GraphReporter$KeepReasonWitness access$000():306:306 -> access$000
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():316:316 -> edgeKind
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):321:321 -> getSourceNode
com.android.tools.r8.shaking.IfRuleClassPartEquivalence -> com.android.tools.r8.shaking.IfRuleClassPartEquivalence:
    1:1:void <init>():11:11 -> <init>
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):11:11 -> doEquivalent
    2:22:boolean doEquivalent(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.shaking.ProguardIfRule):15:35 -> doEquivalent
    1:1:int doHash(java.lang.Object):11:11 -> doHash
    2:19:int doHash(com.android.tools.r8.shaking.ProguardIfRule):43:60 -> doHash
com.android.tools.r8.shaking.IfRuleEvaluator -> com.android.tools.r8.shaking.IfRuleEvaluator:
    1:1:void <clinit>():34:34 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,java.util.Map,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.shaking.Enqueuer$Mode,com.android.tools.r8.shaking.RootSetBuilder,java.util.Set):56:56 -> <init>
    2:29:void <init>(com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,java.util.Map,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.shaking.Enqueuer$Mode,com.android.tools.r8.shaking.RootSetBuilder,java.util.Set):38:65 -> <init>
    1:9:boolean lambda$run$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ProguardIfRule):102:110 -> a
    10:19:boolean lambda$run$1(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.ProguardIfRule):136:145 -> a
    20:21:boolean lambda$evaluateIfRuleMembersAndMaterialize$2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):246:247 -> a
    22:25:boolean lambda$evaluateIfRuleMembersAndMaterialize$3(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):253:256 -> a
    26:27:boolean lambda$evaluateIfRuleMembersAndMaterialize$4(java.util.Collection,java.util.Collection,com.android.tools.r8.shaking.ProguardMemberRule):280:281 -> a
    1:1:boolean canRemoveSubsequentKeepRule(com.android.tools.r8.shaking.ProguardIfRule):166:166 -> canRemoveSubsequentKeepRule
    2:5:boolean com.android.tools.r8.com.google.common.collect.Iterables.isEmpty(java.lang.Iterable):1023:1026 -> canRemoveSubsequentKeepRule
    2:5:boolean canRemoveSubsequentKeepRule(com.android.tools.r8.shaking.ProguardIfRule):166 -> canRemoveSubsequentKeepRule
    6:7:boolean canRemoveSubsequentKeepRule(com.android.tools.r8.shaking.ProguardIfRule):166:167 -> canRemoveSubsequentKeepRule
    1:15:boolean evaluateClassForIfRule(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):214:228 -> evaluateClassForIfRule
    1:2:boolean evaluateIfRuleMembersAndMaterialize(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):235:236 -> evaluateIfRuleMembersAndMaterialize
    3:3:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> evaluateIfRuleMembersAndMaterialize
    3:3:com.android.tools.r8.graph.DexReference com.android.tools.r8.graph.DexClass.toReference():653 -> evaluateIfRuleMembersAndMaterialize
    3:3:boolean evaluateIfRuleMembersAndMaterialize(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):237 -> evaluateIfRuleMembersAndMaterialize
    4:11:boolean evaluateIfRuleMembersAndMaterialize(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):237:244 -> evaluateIfRuleMembersAndMaterialize
    12:21:boolean evaluateIfRuleMembersAndMaterialize(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):242:251 -> evaluateIfRuleMembersAndMaterialize
    22:51:boolean evaluateIfRuleMembersAndMaterialize(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):249:278 -> evaluateIfRuleMembersAndMaterialize
    52:52:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> evaluateIfRuleMembersAndMaterialize
    52:52:com.android.tools.r8.graph.DexReference com.android.tools.r8.graph.DexClass.toReference():653 -> evaluateIfRuleMembersAndMaterialize
    52:52:boolean evaluateIfRuleMembersAndMaterialize(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):284 -> evaluateIfRuleMembersAndMaterialize
    53:54:boolean evaluateIfRuleMembersAndMaterialize(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):284:285 -> evaluateIfRuleMembersAndMaterialize
    1:10:boolean isEffectivelyLive(com.android.tools.r8.graph.DexProgramClass):191:200 -> isEffectivelyLive
    1:26:void materializeIfRule(com.android.tools.r8.shaking.ProguardIfRule,java.util.Set):294:319 -> materializeIfRule
    1:5:void registerClassCapture(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):179:183 -> registerClassCapture
    1:55:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet run():69:123 -> run
    56:56:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> run
    56:56:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet run():123 -> run
    57:93:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet run():124:160 -> run
    94:94:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet run():158:158 -> run
com.android.tools.r8.shaking.InlineRule -> com.android.tools.r8.shaking.InlineRule:
    1:3:void <clinit>():11:13 -> <clinit>
    1:4:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.InlineRule$Type):67:70 -> <init>
    1:14:com.android.tools.r8.shaking.ProguardCheckDiscardRule asProguardCheckDiscardRule():82:95 -> asProguardCheckDiscardRule
    1:1:com.android.tools.r8.shaking.InlineRule$Builder builder():74:74 -> builder
    1:1:com.android.tools.r8.shaking.InlineRule$Type getType():78:78 -> getType
    1:9:java.lang.String typeString():100:108 -> typeString
com.android.tools.r8.shaking.InlineRule$1 -> com.android.tools.r8.shaking.InlineRule$1:
    1:1:void <init>(com.android.tools.r8.origin.Origin):13:13 -> <init>
com.android.tools.r8.shaking.InlineRule$2 -> com.android.tools.r8.shaking.InlineRule$2:
    1:1:void <clinit>():100:100 -> <clinit>
com.android.tools.r8.shaking.InlineRule$Builder -> com.android.tools.r8.shaking.InlineRule$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.InlineRule$1):24:24 -> <init>
    2:2:void <init>():27:27 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():24:24 -> build
    2:2:com.android.tools.r8.shaking.InlineRule build():44:44 -> build
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():24:24 -> self
    1:1:com.android.tools.r8.shaking.InlineRule$Builder setType(com.android.tools.r8.shaking.InlineRule$Type):38:38 -> setType
com.android.tools.r8.shaking.InlineRule$Type -> com.android.tools.r8.shaking.InlineRule$Type:
    1:1:void <clinit>():21:21 -> <clinit>
    2:2:void <clinit>():20:20 -> <clinit>
    1:1:void <init>(java.lang.String,int):20:20 -> <init>
    1:1:com.android.tools.r8.shaking.InlineRule$Type valueOf(java.lang.String):20:20 -> valueOf
    1:1:com.android.tools.r8.shaking.InlineRule$Type[] values():20:20 -> values
com.android.tools.r8.shaking.KeepReason -> com.android.tools.r8.shaking.KeepReason:
    1:1:void <init>():17:17 -> <init>
    1:1:com.android.tools.r8.shaking.KeepReason annotatedOn(com.android.tools.r8.graph.DexDefinition):24:24 -> annotatedOn
    1:1:com.android.tools.r8.shaking.KeepReason fieldReferencedIn(com.android.tools.r8.graph.DexEncodedMethod):52:52 -> fieldReferencedIn
    1:1:com.android.tools.r8.shaking.KeepReason instantiatedIn(com.android.tools.r8.graph.DexEncodedMethod):28:28 -> instantiatedIn
    1:1:com.android.tools.r8.shaking.KeepReason invokedFrom(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):40:40 -> invokedFrom
    1:1:com.android.tools.r8.shaking.KeepReason invokedFromLambdaCreatedIn(com.android.tools.r8.graph.DexEncodedMethod):44:44 -> invokedFromLambdaCreatedIn
    1:1:com.android.tools.r8.shaking.KeepReason invokedViaSuperFrom(com.android.tools.r8.graph.DexEncodedMethod):32:32 -> invokedViaSuperFrom
    1:1:com.android.tools.r8.shaking.KeepReason isLibraryMethod(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):48:48 -> isLibraryMethod
    1:1:com.android.tools.r8.shaking.KeepReason methodHandleReferencedIn(com.android.tools.r8.graph.DexEncodedMethod):76:76 -> methodHandleReferencedIn
    1:1:com.android.tools.r8.shaking.KeepReason reachableFromLiveType(com.android.tools.r8.graph.DexType):36:36 -> reachableFromLiveType
    1:1:com.android.tools.r8.shaking.KeepReason referencedInAnnotation(com.android.tools.r8.graph.DexItem):56:56 -> referencedInAnnotation
    1:1:com.android.tools.r8.shaking.KeepReason reflectiveUseIn(com.android.tools.r8.graph.DexEncodedMethod):72:72 -> reflectiveUseIn
    1:1:com.android.tools.r8.shaking.KeepReason targetedBySuperFrom(com.android.tools.r8.graph.DexEncodedMethod):68:68 -> targetedBySuperFrom
com.android.tools.r8.shaking.KeepReason$AnnotatedOn -> com.android.tools.r8.shaking.KeepReason$AnnotatedOn:
    1:1:void <clinit>():261:261 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.KeepReason$1):261:261 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.DexDefinition):265:266 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():271:271 -> edgeKind
    1:7:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):276:282 -> getSourceNode
com.android.tools.r8.shaking.KeepReason$BasedOnOtherMethod -> com.android.tools.r8.shaking.KeepReason$BasedOnOtherMethod:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):79:79 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.DexEncodedMethod):83:84 -> <init>
    1:1:com.android.tools.r8.graph.DexMethod getMethod():90:90 -> getMethod
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):95:95 -> getSourceNode
com.android.tools.r8.shaking.KeepReason$InstatiatedIn -> com.android.tools.r8.shaking.KeepReason$InstatiatedIn:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):99:99 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):102:102 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():107:107 -> edgeKind
    1:1:com.android.tools.r8.graph.DexMethod getMethod():99:99 -> getMethod
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):99:99 -> getSourceNode
com.android.tools.r8.shaking.KeepReason$InvokedFrom -> com.android.tools.r8.shaking.KeepReason$InvokedFrom:
    1:1:void <clinit>():150:150 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):150:150 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedMethod):153:154 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():159:159 -> edgeKind
com.android.tools.r8.shaking.KeepReason$InvokedFromLambdaCreatedIn -> com.android.tools.r8.shaking.KeepReason$InvokedFromLambdaCreatedIn:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):168:168 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):171:171 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():176:176 -> edgeKind
com.android.tools.r8.shaking.KeepReason$InvokedViaSuper -> com.android.tools.r8.shaking.KeepReason$InvokedViaSuper:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):116:116 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):119:119 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():124:124 -> edgeKind
com.android.tools.r8.shaking.KeepReason$IsLibraryMethod -> com.android.tools.r8.shaking.KeepReason$IsLibraryMethod:
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason$1):221:221 -> <init>
    2:4:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):226:228 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():233:233 -> edgeKind
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):238:238 -> getSourceNode
com.android.tools.r8.shaking.KeepReason$MethodHandleReferencedFrom -> com.android.tools.r8.shaking.KeepReason$MethodHandleReferencedFrom:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):309:309 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):312:312 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():317:317 -> edgeKind
com.android.tools.r8.shaking.KeepReason$ReachableFromLiveType -> com.android.tools.r8.shaking.KeepReason$ReachableFromLiveType:
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason$1):202:202 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.DexType):206:207 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():212:212 -> edgeKind
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):217:217 -> getSourceNode
com.android.tools.r8.shaking.KeepReason$ReferencedFrom -> com.android.tools.r8.shaking.KeepReason$ReferencedFrom:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):185:185 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):188:188 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():193:193 -> edgeKind
com.android.tools.r8.shaking.KeepReason$ReferencedInAnnotation -> com.android.tools.r8.shaking.KeepReason$ReferencedInAnnotation:
    1:1:void <init>(com.android.tools.r8.graph.DexItem,com.android.tools.r8.shaking.KeepReason$1):242:242 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.DexItem):246:247 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():252:252 -> edgeKind
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.GraphReporter):257:257 -> getSourceNode
com.android.tools.r8.shaking.KeepReason$ReflectiveUseFrom -> com.android.tools.r8.shaking.KeepReason$ReflectiveUseFrom:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):287:287 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):290:290 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():300:300 -> edgeKind
com.android.tools.r8.shaking.KeepReason$TargetedBySuper -> com.android.tools.r8.shaking.KeepReason$TargetedBySuper:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):133:133 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):136:136 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():141:141 -> edgeKind
com.android.tools.r8.shaking.L8TreePruner -> com.android.tools.r8.shaking.L8TreePruner:
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions):32:32 -> <init>
    2:10:void <init>(com.android.tools.r8.utils.InternalOptions):28:36 -> <init>
    11:11:void <init>(com.android.tools.r8.utils.InternalOptions):35:35 -> <init>
    1:13:boolean interfaceImplementsEmulatedInterface(com.android.tools.r8.graph.DexClass,java.util.Map):62:74 -> interfaceImplementsEmulatedInterface
    1:12:com.android.tools.r8.graph.DexApplication prune(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.desugar.PrefixRewritingMapper):40:51 -> prune
    13:21:com.android.tools.r8.graph.DexApplication prune(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.desugar.PrefixRewritingMapper):49:57 -> prune
com.android.tools.r8.shaking.LibraryMethodOverrideAnalysis -> com.android.tools.r8.shaking.LibraryMethodOverrideAnalysis:
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):40:40 -> <init>
    2:8:void <init>(com.android.tools.r8.graph.AppView):38:44 -> <init>
    9:9:void <init>(com.android.tools.r8.graph.AppView):43:43 -> <init>
    1:3:void lambda$getClassesWithLibraryMethodOverrides$0(java.util.Set,com.android.tools.r8.graph.DexProgramClass):66:68 -> a
    4:4:boolean lambda$finish$1(com.android.tools.r8.graph.DexType):146:146 -> a
    5:8:void lambda$logResults$2(java.lang.Class):174:177 -> a
    9:9:void lambda$logResults$2(java.lang.Class):173:173 -> a
    1:13:void analyze(com.android.tools.r8.ir.code.IRCode):106:118 -> analyze
    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> analyze
    14:14:void analyze(com.android.tools.r8.ir.code.IRCode):118 -> analyze
    15:30:void analyze(com.android.tools.r8.ir.code.IRCode):119:134 -> analyze
    31:31:void analyze(com.android.tools.r8.ir.code.IRCode):133:133 -> analyze
    1:2:void finish():144:145 -> finish
    1:4:java.util.Set getClassesWithLibraryMethodOverrides(com.android.tools.r8.graph.AppView):61:64 -> getClassesWithLibraryMethodOverrides
    5:5:java.util.Set getClassesWithLibraryMethodOverrides(com.android.tools.r8.graph.AppView):63:63 -> getClassesWithLibraryMethodOverrides
    1:5:java.util.Set getInitialNonEscapingClassesWithLibraryMethodOverrides(com.android.tools.r8.graph.AppView):50:54 -> getInitialNonEscapingClassesWithLibraryMethodOverrides
    1:5:boolean hasLibraryMethodOverrideDirectly(com.android.tools.r8.graph.DexProgramClass):81:85 -> hasLibraryMethodOverrideDirectly
    1:2:boolean hasLibraryMethodOverrideDirectlyOrIndirectly(com.android.tools.r8.graph.DexProgramClass,java.util.Set):76:77 -> hasLibraryMethodOverrideDirectlyOrIndirectly
    1:5:boolean hasLibraryMethodOverrideIndirectly(com.android.tools.r8.graph.DexProgramClass,java.util.Set):94:98 -> hasLibraryMethodOverrideIndirectly
    1:5:void logResults():160:164 -> logResults
    6:13:void logResults():161:168 -> logResults
    14:20:void logResults():165:171 -> logResults
    1:5:boolean verifyNoUninstantiatedTypesEscapeIntoLibrary():150:154 -> verifyNoUninstantiatedTypesEscapeIntoLibrary
    6:6:boolean verifyNoUninstantiatedTypesEscapeIntoLibrary():152:152 -> verifyNoUninstantiatedTypesEscapeIntoLibrary
com.android.tools.r8.shaking.LibraryMethodOverrideAnalysis$LibraryEscapeAnalysisConfiguration -> com.android.tools.r8.shaking.LibraryMethodOverrideAnalysis$LibraryEscapeAnalysisConfiguration:
    1:1:void <clinit>():182:182 -> <clinit>
    1:1:void <init>():185:185 -> <init>
    1:1:com.android.tools.r8.shaking.LibraryMethodOverrideAnalysis$LibraryEscapeAnalysisConfiguration getInstance():188:188 -> getInstance
    1:23:boolean isLegitimateConstructorInvocation(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysis,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod):209:231 -> isLegitimateConstructorInvocation
    1:3:boolean isLegitimateEscapeRoute(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysis,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod):197:199 -> isLegitimateEscapeRoute
    4:4:boolean isLegitimateEscapeRoute(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.escape.EscapeAnalysis,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexMethod):198:198 -> isLegitimateEscapeRoute
com.android.tools.r8.shaking.MainDexClasses -> com.android.tools.r8.shaking.MainDexClasses:
    1:3:void <clinit>():18:20 -> <clinit>
    1:1:void <init>(java.util.Set,java.util.Set,com.android.tools.r8.shaking.MainDexClasses$1):18:18 -> <init>
    2:6:void <init>(java.util.Set,java.util.Set):70:74 -> <init>
    1:2:void lambda$collectTypesMatching$0(java.util.function.Predicate,java.util.function.Consumer,com.android.tools.r8.graph.DexType):98:99 -> a
    1:1:com.android.tools.r8.shaking.MainDexClasses$Builder builder(com.android.tools.r8.graph.AppInfo):113:113 -> builder
    1:1:void collectTypesMatching(java.util.Set,java.util.function.Predicate,java.util.function.Consumer):96:96 -> collectTypesMatching
    1:1:java.util.Set getClasses():91:91 -> getClasses
    1:1:java.util.Set getDependencies():87:87 -> getDependencies
    1:1:java.util.Set getRoots():83:83 -> getRoots
    1:2:boolean isEmpty():78:79 -> isEmpty
    1:5:com.android.tools.r8.shaking.MainDexClasses prunedCopy(com.android.tools.r8.shaking.AppInfoWithLiveness):105:109 -> prunedCopy
com.android.tools.r8.shaking.MainDexClasses$Builder -> com.android.tools.r8.shaking.MainDexClasses$Builder:
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.shaking.MainDexClasses$1):22:22 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.AppInfo):27:27 -> <init>
    3:7:void <init>(com.android.tools.r8.graph.AppInfo):24:28 -> <init>
    1:2:com.android.tools.r8.shaking.MainDexClasses$Builder addDependency(com.android.tools.r8.graph.DexType):44:45 -> addDependency
    1:2:com.android.tools.r8.shaking.MainDexClasses$Builder addRoot(com.android.tools.r8.graph.DexType):32:33 -> addRoot
    1:2:com.android.tools.r8.shaking.MainDexClasses$Builder addRoots(java.util.Collection):38:39 -> addRoots
    1:1:com.android.tools.r8.shaking.MainDexClasses build():54:54 -> build
    1:1:boolean contains(com.android.tools.r8.graph.DexType):50:50 -> contains
    1:2:boolean isProgramClass(com.android.tools.r8.graph.DexType):58:59 -> isProgramClass
com.android.tools.r8.shaking.MainDexDirectReferenceTracer -> com.android.tools.r8.shaking.MainDexDirectReferenceTracer:
    1:1:void <clinit>():25:25 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.function.Consumer):33:33 -> <init>
    2:12:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.function.Consumer):26:36 -> <init>
    1:1:void lambda$run$0(com.android.tools.r8.graph.DexEncodedField):47:47 -> a
    2:3:void lambda$run$1(com.android.tools.r8.graph.DexEncodedMethod):49:50 -> a
    4:8:void lambda$hasReferencesOutsideFromCode$2(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.Set,com.android.tools.r8.shaking.MainDexDirectReferenceTracer$BooleanBox,com.android.tools.r8.graph.DexType):71:75 -> a
    1:1:java.util.function.Consumer access$300(com.android.tools.r8.shaking.MainDexDirectReferenceTracer):25:25 -> access$300
    1:1:void access$400(com.android.tools.r8.shaking.MainDexDirectReferenceTracer,com.android.tools.r8.graph.DexMethod,java.util.function.Consumer):25:25 -> access$400
    1:16:boolean hasReferencesOutsideFromCode(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):66:81 -> hasReferencesOutsideFromCode
    1:9:void run(java.util.Set):40:48 -> run
    1:1:void runOnCode(com.android.tools.r8.graph.DexEncodedMethod):56:56 -> runOnCode
    1:1:void traceAnnotationsDirectDependencies(com.android.tools.r8.graph.DexAnnotationSet):85:85 -> traceAnnotationsDirectDependencies
    1:4:void traceMethodDirectDependencies(com.android.tools.r8.graph.DexMethod,java.util.function.Consumer):89:92 -> traceMethodDirectDependencies
com.android.tools.r8.shaking.MainDexDirectReferenceTracer$AnnotationDirectReferenceCollector -> com.android.tools.r8.shaking.MainDexDirectReferenceTracer$AnnotationDirectReferenceCollector:
    1:1:void <init>(com.android.tools.r8.shaking.MainDexDirectReferenceTracer):172:172 -> <init>
    2:2:void <init>(com.android.tools.r8.shaking.MainDexDirectReferenceTracer,com.android.tools.r8.shaking.MainDexDirectReferenceTracer$1):172:172 -> <init>
    1:1:boolean addCallSite(com.android.tools.r8.graph.DexCallSite):216:216 -> addCallSite
    1:1:boolean addClass(com.android.tools.r8.graph.DexProgramClass):176:176 -> addClass
    1:2:boolean addField(com.android.tools.r8.graph.DexField):182:183 -> addField
    1:2:boolean addMethod(com.android.tools.r8.graph.DexMethod):189:190 -> addMethod
    1:1:boolean addMethodHandle(com.android.tools.r8.graph.DexMethodHandle):221:221 -> addMethodHandle
    1:3:boolean addProto(com.android.tools.r8.graph.DexProto):201:203 -> addProto
    1:1:boolean addType(com.android.tools.r8.graph.DexType):210:210 -> addType
    1:1:com.android.tools.r8.graph.DexString com.android.tools.r8.dex.IndexedItemCollection.getRenamedDescriptor(com.android.tools.r8.graph.DexType):111:111 -> getRenamedDescriptor
    1:1:com.android.tools.r8.graph.DexString getRenamedDescriptor(com.android.tools.r8.graph.DexType):0 -> getRenamedDescriptor
    1:1:com.android.tools.r8.graph.DexString com.android.tools.r8.dex.IndexedItemCollection.getRenamedName(com.android.tools.r8.graph.DexMethod):103:103 -> getRenamedName
    1:1:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexMethod):0 -> getRenamedName
    2:2:com.android.tools.r8.graph.DexString com.android.tools.r8.dex.IndexedItemCollection.getRenamedName(com.android.tools.r8.graph.DexField):107:107 -> getRenamedName
    2:2:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexField):0 -> getRenamedName
com.android.tools.r8.shaking.MainDexDirectReferenceTracer$BooleanBox -> com.android.tools.r8.shaking.MainDexDirectReferenceTracer$BooleanBox:
    1:2:void <init>():59:60 -> <init>
    3:3:void <init>(com.android.tools.r8.shaking.MainDexDirectReferenceTracer$1):59:59 -> <init>
com.android.tools.r8.shaking.MainDexDirectReferenceTracer$DirectReferencesCollector -> com.android.tools.r8.shaking.MainDexDirectReferenceTracer$DirectReferencesCollector:
    1:1:void <init>(com.android.tools.r8.shaking.MainDexDirectReferenceTracer,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.MainDexDirectReferenceTracer$1):96:96 -> <init>
    2:3:void <init>(com.android.tools.r8.shaking.MainDexDirectReferenceTracer,com.android.tools.r8.graph.DexItemFactory):98:99 -> <init>
    1:2:boolean registerFieldAccess(com.android.tools.r8.graph.DexField):154:155 -> registerFieldAccess
    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):140:140 -> registerInstanceFieldRead
    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):135:135 -> registerInstanceFieldWrite
    1:2:boolean registerInvoke(com.android.tools.r8.graph.DexMethod):128:129 -> registerInvoke
    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):109:109 -> registerInvokeDirect
    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):119:119 -> registerInvokeInterface
    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):114:114 -> registerInvokeStatic
    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):124:124 -> registerInvokeSuper
    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):104:104 -> registerInvokeVirtual
    1:1:boolean registerNewInstance(com.android.tools.r8.graph.DexType):161:161 -> registerNewInstance
    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):145:145 -> registerStaticFieldRead
    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):150:150 -> registerStaticFieldWrite
    1:1:boolean registerTypeReference(com.android.tools.r8.graph.DexType):167:167 -> registerTypeReference
com.android.tools.r8.shaking.MainDexListBuilder -> com.android.tools.r8.shaking.MainDexListBuilder:
    1:1:void <clinit>():27:27 -> <clinit>
    1:19:void <init>(java.util.Set,com.android.tools.r8.graph.DexApplication):39:57 -> <init>
    20:20:void <init>(java.util.Set,com.android.tools.r8.graph.DexApplication):56:56 -> <init>
    21:21:void <init>(java.util.Set,com.android.tools.r8.graph.DexApplication):52:52 -> <init>
    22:22:void <init>(java.util.Set,com.android.tools.r8.graph.DexApplication):47:47 -> <init>
    1:4:void lambda$traceRuntimeAnnotationsWithEnumForMainDex$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotation):80:83 -> a
    1:8:void addAnnotationsWithEnum(com.android.tools.r8.graph.DexProgramClass):141:148 -> addAnnotationsWithEnum
    1:1:void addClassAnnotatedWithAnnotationWithEnum(com.android.tools.r8.graph.DexType):156:156 -> addClassAnnotatedWithAnnotationWithEnum
    1:12:void addDirectDependency(com.android.tools.r8.graph.DexType):161:172 -> addDirectDependency
    13:20:void addDirectDependency(com.android.tools.r8.graph.DexProgramClass):176:183 -> addDirectDependency
    1:1:boolean isAnnotation(com.android.tools.r8.graph.DexType):126:126 -> isAnnotation
    1:29:boolean isAnnotationWithEnum(com.android.tools.r8.graph.DexType):90:118 -> isAnnotationWithEnum
    1:1:boolean isEnum(com.android.tools.r8.graph.DexType):122:122 -> isEnum
    1:2:boolean isProgramClass(com.android.tools.r8.graph.DexType):130:131 -> isProgramClass
    1:3:com.android.tools.r8.shaking.MainDexClasses run():61:63 -> run
    1:2:void traceMainDexDirectDependencies():135:136 -> traceMainDexDirectDependencies
    1:12:void traceRuntimeAnnotationsWithEnumForMainDex():67:78 -> traceRuntimeAnnotationsWithEnumForMainDex
    13:35:void com.android.tools.r8.graph.DexClass.forEachAnnotation(java.util.function.Consumer):359:381 -> traceRuntimeAnnotationsWithEnumForMainDex
    13:35:void traceRuntimeAnnotationsWithEnumForMainDex():78 -> traceRuntimeAnnotationsWithEnumForMainDex
com.android.tools.r8.shaking.MemberValuePropagationRule -> com.android.tools.r8.shaking.MemberValuePropagationRule:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.MemberValuePropagationRule$Type,com.android.tools.r8.shaking.MemberValuePropagationRule$1):11:11 -> <init>
    2:5:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.MemberValuePropagationRule$Type):61:64 -> <init>
    1:1:com.android.tools.r8.shaking.MemberValuePropagationRule$Builder builder():68:68 -> builder
    1:1:com.android.tools.r8.shaking.MemberValuePropagationRule$Type getType():72:72 -> getType
    1:5:java.lang.String typeString():77:81 -> typeString
com.android.tools.r8.shaking.MemberValuePropagationRule$1 -> com.android.tools.r8.shaking.MemberValuePropagationRule$1:
    1:1:void <clinit>():77:77 -> <clinit>
com.android.tools.r8.shaking.MemberValuePropagationRule$Builder -> com.android.tools.r8.shaking.MemberValuePropagationRule$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.MemberValuePropagationRule$1):17:17 -> <init>
    2:2:void <init>():21:21 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():17:17 -> build
    2:2:com.android.tools.r8.shaking.MemberValuePropagationRule build():38:38 -> build
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():17:17 -> self
    1:1:com.android.tools.r8.shaking.MemberValuePropagationRule$Builder setType(com.android.tools.r8.shaking.MemberValuePropagationRule$Type):32:32 -> setType
com.android.tools.r8.shaking.MemberValuePropagationRule$Type -> com.android.tools.r8.shaking.MemberValuePropagationRule$Type:
    1:1:void <clinit>():14:14 -> <clinit>
    2:2:void <clinit>():13:13 -> <clinit>
    1:1:void <init>(java.lang.String,int):13:13 -> <init>
    1:1:com.android.tools.r8.shaking.MemberValuePropagationRule$Type valueOf(java.lang.String):13:13 -> valueOf
    1:1:com.android.tools.r8.shaking.MemberValuePropagationRule$Type[] values():13:13 -> values
com.android.tools.r8.shaking.ProguardAccessFlags -> com.android.tools.r8.shaking.ProguardAccessFlags:
    1:7:void <clinit>():15:21 -> <clinit>
    1:6:void <init>():13:18 -> <init>
    1:1:boolean containsAll(int):57:57 -> containsAll
    2:2:boolean containsAll(com.android.tools.r8.graph.AccessFlags):69:69 -> containsAll
    1:1:boolean containsNone(int):65:65 -> containsNone
    2:2:boolean containsNone(com.android.tools.r8.graph.AccessFlags):73:73 -> containsNone
    1:4:boolean equals(java.lang.Object):225:228 -> equals
    1:1:java.util.List getPredicates():39:39 -> getPredicates
    1:1:int hashCode():233:233 -> hashCode
    1:1:boolean isAbstract():138:138 -> isAbstract
    1:1:boolean isBridge():194:194 -> isBridge
    1:1:boolean isFinal():130:130 -> isFinal
    1:1:boolean isNative():170:170 -> isNative
    1:1:boolean isPrivate():95:95 -> isPrivate
    1:1:boolean isProtected():104:104 -> isProtected
    1:1:boolean isPublic():86:86 -> isPublic
    1:1:boolean isSet(int):198:198 -> isSet
    1:1:boolean isStatic():122:122 -> isStatic
    1:1:boolean isStrict():178:178 -> isStrict
    1:1:boolean isSynchronized():162:162 -> isSynchronized
    1:1:boolean isSynthetic():186:186 -> isSynthetic
    1:1:boolean isTransient():154:154 -> isTransient
    1:1:boolean isVolatile():146:146 -> isVolatile
    1:1:void set(int):202:202 -> set
    1:1:void setAbstract():134:134 -> setAbstract
    1:1:void setBridge():190:190 -> setBridge
    1:1:void setFinal():126:126 -> setFinal
    1:1:void setFlags(com.android.tools.r8.graph.AccessFlags):77:77 -> setFlags
    1:1:void setNative():166:166 -> setNative
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags setPrivate():90:90 -> setPrivate
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags setProtected():99:99 -> setProtected
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags setPublic():81:81 -> setPublic
    1:1:void setStatic():118:118 -> setStatic
    1:1:void setStrict():174:174 -> setStrict
    1:1:void setSynchronized():158:158 -> setSynchronized
    1:1:void setSynthetic():182:182 -> setSynthetic
    1:1:void setTransient():150:150 -> setTransient
    1:6:void setVisibility(com.android.tools.r8.graph.ClassAccessFlags):108:113 -> setVisibility
    1:1:void setVolatile():142:142 -> setVolatile
    1:14:java.lang.String toString():207:220 -> toString
com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule -> com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule$1):10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):57:57 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule$Builder builder():75:75 -> builder
com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule$Builder -> com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule$1):12:12 -> <init>
    2:2:void <init>():16:16 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
    2:4:com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule build():26:28 -> build
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule -> com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule$1):10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):46:46 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule$Builder builder():55:55 -> builder
com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule$Builder -> com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule$1):12:12 -> <init>
    2:2:void <init>():16:16 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
    2:2:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule build():26:26 -> build
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
com.android.tools.r8.shaking.ProguardAssumeValuesRule -> com.android.tools.r8.shaking.ProguardAssumeValuesRule:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardAssumeValuesRule$1):10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):46:46 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardAssumeValuesRule$Builder builder():55:55 -> builder
com.android.tools.r8.shaking.ProguardAssumeValuesRule$Builder -> com.android.tools.r8.shaking.ProguardAssumeValuesRule$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardAssumeValuesRule$1):12:12 -> <init>
    2:2:void <init>():16:16 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
    2:2:com.android.tools.r8.shaking.ProguardAssumeValuesRule build():26:26 -> build
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
com.android.tools.r8.shaking.ProguardCheckDiscardRule -> com.android.tools.r8.shaking.ProguardCheckDiscardRule:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardCheckDiscardRule$1):10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):46:46 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardCheckDiscardRule$Builder builder():52:52 -> builder
com.android.tools.r8.shaking.ProguardCheckDiscardRule$Builder -> com.android.tools.r8.shaking.ProguardCheckDiscardRule$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardCheckDiscardRule$1):12:12 -> <init>
    2:2:void <init>():16:16 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
    2:2:com.android.tools.r8.shaking.ProguardCheckDiscardRule build():26:26 -> build
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
com.android.tools.r8.shaking.ProguardClassFilter -> com.android.tools.r8.shaking.ProguardClassFilter:
    1:2:void <clinit>():12:13 -> <clinit>
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.shaking.ProguardClassFilter$1):12:12 -> <init>
    2:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):37:38 -> <init>
    1:5:void lambda$filterOutMatches$0(java.util.Set,com.android.tools.r8.shaking.ProguardTypeMatcher):61:65 -> a
    1:1:com.android.tools.r8.shaking.ProguardClassFilter$Builder builder():18:18 -> builder
    1:1:com.android.tools.r8.shaking.ProguardClassFilter empty():42:42 -> empty
    1:2:void filterOutMatches(java.util.Set):59:60 -> filterOutMatches
    1:1:boolean isEmpty():46:46 -> isEmpty
    1:2:boolean matches(com.android.tools.r8.graph.DexType):50:51 -> matches
com.android.tools.r8.shaking.ProguardClassFilter$Builder -> com.android.tools.r8.shaking.ProguardClassFilter$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardClassFilter$1):21:21 -> <init>
    2:2:void <init>():24:24 -> <init>
    3:3:void <init>():22:22 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassFilter$Builder addPattern(com.android.tools.r8.shaking.ProguardClassNameList):28:28 -> addPattern
    1:1:com.android.tools.r8.shaking.ProguardClassFilter build():33:33 -> build
com.android.tools.r8.shaking.ProguardClassNameList -> com.android.tools.r8.shaking.ProguardClassNameList:
    1:1:void <init>():21:21 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassNameList$Builder builder():24:24 -> builder
    1:1:com.android.tools.r8.shaking.ProguardClassNameList emptyList():28:28 -> emptyList
    1:1:java.lang.Iterable getWildcards():87:87 -> getWildcards
    1:1:java.lang.Iterable getWildcardsOrEmpty(com.android.tools.r8.shaking.ProguardClassNameList):91:91 -> getWildcardsOrEmpty
    1:1:com.android.tools.r8.shaking.ProguardClassNameList singletonList(com.android.tools.r8.shaking.ProguardTypeMatcher):32:32 -> singletonList
    1:3:java.lang.String toString():71:73 -> toString
com.android.tools.r8.shaking.ProguardClassNameList$Builder -> com.android.tools.r8.shaking.ProguardClassNameList$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardClassNameList$1):37:37 -> <init>
    2:2:void <init>():44:44 -> <init>
    3:3:void <init>():42:42 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassNameList$Builder addClassName(boolean,com.android.tools.r8.shaking.ProguardTypeMatcher):48:48 -> addClassName
    1:8:com.android.tools.r8.shaking.ProguardClassNameList build():53:60 -> build
com.android.tools.r8.shaking.ProguardClassNameList$EmptyClassNameList -> com.android.tools.r8.shaking.ProguardClassNameList$EmptyClassNameList:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardClassNameList$1):100:100 -> <init>
    2:2:void <init>():102:102 -> <init>
    1:1:boolean equals(java.lang.Object):116:116 -> equals
com.android.tools.r8.shaking.ProguardClassNameList$MixedClassNameList -> com.android.tools.r8.shaking.ProguardClassNameList$MixedClassNameList:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap,com.android.tools.r8.shaking.ProguardClassNameList$1):279:279 -> <init>
    2:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap):283:284 -> <init>
    1:1:java.util.stream.Stream lambda$getWildcards$0(java.lang.Iterable):344:344 -> a
    2:2:void lambda$materialize$1(com.android.tools.r8.shaking.ProguardClassNameList$Builder,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.ProguardTypeMatcher,java.lang.Boolean):352:352 -> a
    3:3:void lambda$forEachTypeMatcher$2(java.util.function.Consumer,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$Entry):358:358 -> a
    1:5:boolean equals(java.lang.Object):312:316 -> equals
    1:1:void forEachTypeMatcher(java.util.function.Consumer):358:358 -> forEachTypeMatcher
    1:3:java.lang.Iterable getWildcards():342:344 -> getWildcards
    1:1:int hashCode():321:321 -> hashCode
    1:4:boolean matches(com.android.tools.r8.graph.DexType):331:334 -> matches
    1:4:com.android.tools.r8.shaking.ProguardClassNameList materialize(com.android.tools.r8.graph.DexItemFactory):350:353 -> materialize
    1:1:int size():289:289 -> size
    1:8:void writeTo(java.lang.StringBuilder):295:302 -> writeTo
com.android.tools.r8.shaking.ProguardClassNameList$PositiveClassNameList -> com.android.tools.r8.shaking.ProguardClassNameList$PositiveClassNameList:
    1:1:void <init>(java.util.Collection,com.android.tools.r8.shaking.ProguardClassNameList$1):201:201 -> <init>
    2:3:void <init>(java.util.Collection):205:206 -> <init>
    1:1:boolean lambda$asSpecificDexTypes$0(com.android.tools.r8.shaking.ProguardTypeMatcher):245:245 -> a
    2:2:boolean lambda$matches$1(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardTypeMatcher):254:254 -> a
    3:3:java.util.stream.Stream lambda$getWildcards$2(java.lang.Iterable):261:261 -> a
    4:4:com.android.tools.r8.shaking.ProguardTypeMatcher lambda$materialize$3(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.ProguardTypeMatcher):269:269 -> a
    1:3:java.util.List asSpecificDexTypes():245:247 -> asSpecificDexTypes
    1:5:boolean equals(java.lang.Object):231:235 -> equals
    1:1:void forEachTypeMatcher(java.util.function.Consumer):275:275 -> forEachTypeMatcher
    1:3:java.lang.Iterable getWildcards():259:261 -> getWildcards
    1:1:int hashCode():240:240 -> hashCode
    1:1:boolean matches(com.android.tools.r8.graph.DexType):254:254 -> matches
    1:1:com.android.tools.r8.shaking.ProguardClassNameList materialize(com.android.tools.r8.graph.DexItemFactory):201:201 -> materialize
    2:5:com.android.tools.r8.shaking.ProguardClassNameList$PositiveClassNameList materialize(com.android.tools.r8.graph.DexItemFactory):267:270 -> materialize
    1:1:int size():211:211 -> size
    1:5:void writeTo(java.lang.StringBuilder):217:221 -> writeTo
com.android.tools.r8.shaking.ProguardClassNameList$SingleClassNameList -> com.android.tools.r8.shaking.ProguardClassNameList$SingleClassNameList:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardClassNameList$1):139:139 -> <init>
    2:3:void <init>(com.android.tools.r8.shaking.ProguardTypeMatcher):143:144 -> <init>
    1:2:java.util.List asSpecificDexTypes():176:177 -> asSpecificDexTypes
    1:5:boolean equals(java.lang.Object):162:166 -> equals
    1:1:void forEachTypeMatcher(java.util.function.Consumer):197:197 -> forEachTypeMatcher
    1:1:java.lang.Iterable getWildcards():187:187 -> getWildcards
    1:1:int hashCode():171:171 -> hashCode
    1:1:boolean matches(com.android.tools.r8.graph.DexType):182:182 -> matches
    1:1:com.android.tools.r8.shaking.ProguardClassNameList materialize(com.android.tools.r8.graph.DexItemFactory):139:139 -> materialize
    2:2:com.android.tools.r8.shaking.ProguardClassNameList$SingleClassNameList materialize(com.android.tools.r8.graph.DexItemFactory):192:192 -> materialize
    1:1:void writeTo(java.lang.StringBuilder):154:154 -> writeTo
com.android.tools.r8.shaking.ProguardClassSpecification -> com.android.tools.r8.shaking.ProguardClassSpecification:
    1:1:void <clinit>():16:16 -> <clinit>
    1:18:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):199:216 -> <init>
    1:3:void lambda$append$0(java.lang.StringBuilder,com.android.tools.r8.shaking.ProguardMemberRule):356:358 -> a
    1:5:java.lang.StringBuilder append(java.lang.StringBuilder,boolean):333:337 -> append
    6:30:java.lang.StringBuilder append(java.lang.StringBuilder,boolean):336:360 -> append
    1:33:boolean equals(java.lang.Object):281:313 -> equals
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getClassAccessFlags():268:268 -> getClassAccessFlags
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getClassAnnotation():276:276 -> getClassAnnotation
    1:1:com.android.tools.r8.shaking.ProguardClassNameList getClassNames():256:256 -> getClassNames
    1:1:com.android.tools.r8.shaking.ProguardClassType getClassType():260:260 -> getClassType
    1:1:boolean getClassTypeNegated():264:264 -> getClassTypeNegated
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getInheritanceAnnotation():252:252 -> getInheritanceAnnotation
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getInheritanceClassName():248:248 -> getInheritanceClassName
    1:1:boolean getInheritanceIsExtends():236:236 -> getInheritanceIsExtends
    1:1:boolean getInheritanceIsImplements():240:240 -> getInheritanceIsImplements
    1:1:java.util.List getMemberRules():232:232 -> getMemberRules
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getNegatedClassAccessFlags():272:272 -> getNegatedClassAccessFlags
    1:1:com.android.tools.r8.origin.Origin getOrigin():220:220 -> getOrigin
    1:1:com.android.tools.r8.position.Position getPosition():224:224 -> getPosition
    1:1:java.lang.String getSource():228:228 -> getSource
    1:1:boolean hasInheritanceClassName():244:244 -> hasInheritanceClassName
    1:10:int hashCode():319:328 -> hashCode
    1:1:java.lang.String toShortString():369:369 -> toShortString
    1:1:java.lang.String toString():374:374 -> toString
com.android.tools.r8.shaking.ProguardClassSpecification$Builder -> com.android.tools.r8.shaking.ProguardClassSpecification$Builder:
    1:1:void <init>():37:37 -> <init>
    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):40:40 -> <init>
    3:19:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):26:42 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getClassAccessFlags():143:143 -> getClassAccessFlags
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getClassAnnotation():159:159 -> getClassAnnotation
    1:1:com.android.tools.r8.shaking.ProguardClassNameList getClassNames():117:117 -> getClassNames
    1:1:com.android.tools.r8.shaking.ProguardClassType getClassType():126:126 -> getClassType
    1:1:boolean getClassTypeNegated():135:135 -> getClassTypeNegated
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getInheritanceAnnotation():109:109 -> getInheritanceAnnotation
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getInheritanceClassName():101:101 -> getInheritanceClassName
    1:1:boolean getInheritanceIsExtends():89:89 -> getInheritanceIsExtends
    1:1:java.util.List getMemberRules():80:80 -> getMemberRules
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getNegatedClassAccessFlags():151:151 -> getNegatedClassAccessFlags
    1:7:com.android.tools.r8.position.Position getPosition():70:76 -> getPosition
    8:8:com.android.tools.r8.position.Position getPosition():74:74 -> getPosition
    1:1:boolean hasInheritanceClassName():97:97 -> hasInheritanceClassName
    1:2:void matchAllSpecification():167:168 -> matchAllSpecification
    1:1:void setClassAccessFlags(com.android.tools.r8.shaking.ProguardAccessFlags):147:147 -> setClassAccessFlags
    1:1:void setClassAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher):163:163 -> setClassAnnotation
    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setClassNames(com.android.tools.r8.shaking.ProguardClassNameList):121:122 -> setClassNames
    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setClassType(com.android.tools.r8.shaking.ProguardClassType):130:131 -> setClassType
    1:1:void setClassTypeNegated(boolean):139:139 -> setClassTypeNegated
    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setEnd(com.android.tools.r8.position.Position):60:61 -> setEnd
    1:1:void setInheritanceAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher):113:113 -> setInheritanceAnnotation
    1:1:void setInheritanceClassName(com.android.tools.r8.shaking.ProguardTypeMatcher):105:105 -> setInheritanceClassName
    1:1:void setInheritanceIsExtends(boolean):93:93 -> setInheritanceIsExtends
    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setMemberRules(java.util.List):84:85 -> setMemberRules
    1:1:void setNegatedClassAccessFlags(com.android.tools.r8.shaking.ProguardAccessFlags):155:155 -> setNegatedClassAccessFlags
    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setOrigin(com.android.tools.r8.origin.Origin):50:51 -> setOrigin
    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setSource(java.lang.String):65:66 -> setSource
    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setStart(com.android.tools.r8.position.Position):55:56 -> setStart
com.android.tools.r8.shaking.ProguardClassType -> com.android.tools.r8.shaking.ProguardClassType:
    1:25:void <clinit>():10:34 -> <clinit>
    26:26:void <clinit>():9:9 -> <clinit>
    1:1:void <init>(java.lang.String,int):9:9 -> <init>
    2:2:void <init>(java.lang.String,int,com.android.tools.r8.shaking.ProguardClassType$1):9:9 -> <init>
    1:9:java.lang.String toString():43:51 -> toString
    1:1:com.android.tools.r8.shaking.ProguardClassType valueOf(java.lang.String):9:9 -> valueOf
    1:1:com.android.tools.r8.shaking.ProguardClassType[] values():9:9 -> values
com.android.tools.r8.shaking.ProguardClassType$1 -> com.android.tools.r8.shaking.ProguardClassType$1:
    1:1:void <init>(java.lang.String,int):10:10 -> <init>
    1:1:boolean matches(com.android.tools.r8.graph.DexClass):13:13 -> matches
com.android.tools.r8.shaking.ProguardClassType$2 -> com.android.tools.r8.shaking.ProguardClassType$2:
    1:1:void <init>(java.lang.String,int):16:16 -> <init>
com.android.tools.r8.shaking.ProguardClassType$3 -> com.android.tools.r8.shaking.ProguardClassType$3:
    1:1:void <init>(java.lang.String,int):22:22 -> <init>
    1:1:boolean matches(com.android.tools.r8.graph.DexClass):25:25 -> matches
com.android.tools.r8.shaking.ProguardClassType$4 -> com.android.tools.r8.shaking.ProguardClassType$4:
    1:1:void <init>(java.lang.String,int):28:28 -> <init>
    1:1:boolean matches(com.android.tools.r8.graph.DexClass):31:31 -> matches
com.android.tools.r8.shaking.ProguardClassType$5 -> com.android.tools.r8.shaking.ProguardClassType$5:
    1:1:void <init>(java.lang.String,int):34:34 -> <init>
com.android.tools.r8.shaking.ProguardClassType$6 -> com.android.tools.r8.shaking.ProguardClassType$6:
    1:1:void <clinit>():43:43 -> <clinit>
com.android.tools.r8.shaking.ProguardConfiguration -> com.android.tools.r8.shaking.ProguardConfiguration:
    1:1:void <init>(java.lang.String,com.android.tools.r8.graph.DexItemFactory,java.util.List,java.util.List,com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode,java.lang.String,boolean,boolean,boolean,boolean,boolean,boolean,java.nio.file.Path,boolean,java.nio.file.Path,boolean,java.nio.file.Path,java.nio.file.Path,boolean,java.lang.String,com.android.tools.r8.shaking.ProguardKeepAttributes,com.android.tools.r8.shaking.ProguardPackageNameList,com.android.tools.r8.shaking.ProguardClassFilter,com.android.tools.r8.shaking.ProguardClassFilter,java.util.Set,boolean,java.nio.file.Path,boolean,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,boolean,com.android.tools.r8.shaking.ProguardClassFilter,com.android.tools.r8.shaking.ProguardPathFilter,com.android.tools.r8.shaking.ProguardPathFilter,com.android.tools.r8.shaking.ProguardPathFilter,boolean,boolean,com.android.tools.r8.shaking.ProguardConfiguration$1):20:20 -> <init>
    2:40:void <init>(java.lang.String,com.android.tools.r8.graph.DexItemFactory,java.util.List,java.util.List,com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode,java.lang.String,boolean,boolean,boolean,boolean,boolean,boolean,java.nio.file.Path,boolean,java.nio.file.Path,boolean,java.nio.file.Path,java.nio.file.Path,boolean,java.lang.String,com.android.tools.r8.shaking.ProguardKeepAttributes,com.android.tools.r8.shaking.ProguardPackageNameList,com.android.tools.r8.shaking.ProguardClassFilter,com.android.tools.r8.shaking.ProguardClassFilter,java.util.Set,boolean,java.nio.file.Path,boolean,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,boolean,com.android.tools.r8.shaking.ProguardClassFilter,com.android.tools.r8.shaking.ProguardPathFilter,com.android.tools.r8.shaking.ProguardPathFilter,com.android.tools.r8.shaking.ProguardPathFilter,boolean,boolean):457:495 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder builder(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):503:503 -> builder
    1:1:com.android.tools.r8.shaking.ProguardClassFilter getAdaptClassStrings():631:631 -> getAdaptClassStrings
    1:1:com.android.tools.r8.shaking.ProguardPathFilter getAdaptResourceFileContents():639:639 -> getAdaptResourceFileContents
    1:1:com.android.tools.r8.shaking.ProguardPathFilter getAdaptResourceFilenames():635:635 -> getAdaptResourceFilenames
    1:1:java.nio.file.Path getApplyMappingFile():547:547 -> getApplyMappingFile
    1:1:java.util.List getClassObfuscationDictionary():619:619 -> getClassObfuscationDictionary
    1:1:com.android.tools.r8.graph.DexItemFactory getDexItemFactory():511:511 -> getDexItemFactory
    1:1:com.android.tools.r8.shaking.ProguardClassFilter getDontNotePatterns():603:603 -> getDontNotePatterns
    1:1:com.android.tools.r8.shaking.ProguardClassFilter getDontWarnPatterns():599:599 -> getDontWarnPatterns
    1:1:java.util.List getInjars():515:515 -> getInjars
    1:1:com.android.tools.r8.shaking.ProguardKeepAttributes getKeepAttributes():591:591 -> getKeepAttributes
    1:1:com.android.tools.r8.shaking.ProguardPathFilter getKeepDirectories():643:643 -> getKeepDirectories
    1:1:com.android.tools.r8.shaking.ProguardPackageNameList getKeepPackageNamesPatterns():595:595 -> getKeepPackageNamesPatterns
    1:1:java.util.List getLibraryjars():519:519 -> getLibraryjars
    1:1:java.util.List getObfuscationDictionary():615:615 -> getObfuscationDictionary
    1:1:java.util.List getPackageObfuscationDictionary():623:623 -> getPackageObfuscationDictionary
    1:1:com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode getPackageObfuscationMode():523:523 -> getPackageObfuscationMode
    1:1:java.lang.String getPackagePrefix():527:527 -> getPackagePrefix
    1:1:java.lang.String getParsedConfiguration():507:507 -> getParsedConfiguration
    1:1:java.nio.file.Path getPrintConfigurationFile():571:571 -> getPrintConfigurationFile
    1:1:java.nio.file.Path getPrintMappingFile():539:539 -> getPrintMappingFile
    1:1:java.nio.file.Path getPrintUsageFile():579:579 -> getPrintUsageFile
    1:1:java.lang.String getRenameSourceFileAttribute():587:587 -> getRenameSourceFileAttribute
    1:1:java.util.List getRules():607:607 -> getRules
    1:1:java.nio.file.Path getSeedFile():651:651 -> getSeedFile
    1:1:boolean hasApplyMappingFile():543:543 -> hasApplyMappingFile
    1:1:boolean hasDontUseMixedCaseClassnames():659:659 -> hasDontUseMixedCaseClassnames
    1:1:boolean isAccessModificationAllowed():531:531 -> isAccessModificationAllowed
    1:1:boolean isConfigurationDebugging():655:655 -> isConfigurationDebugging
    1:1:boolean isIgnoreWarnings():551:551 -> isIgnoreWarnings
    1:1:boolean isKeepParameterNames():627:627 -> isKeepParameterNames
    1:1:boolean isObfuscating():559:559 -> isObfuscating
    1:1:boolean isOptimizing():555:555 -> isOptimizing
    1:1:boolean isOverloadAggressively():611:611 -> isOverloadAggressively
    1:1:boolean isPrintConfiguration():567:567 -> isPrintConfiguration
    1:1:boolean isPrintMapping():535:535 -> isPrintMapping
    1:1:boolean isPrintSeeds():647:647 -> isPrintSeeds
    1:1:boolean isPrintUsage():575:575 -> isPrintUsage
    1:1:boolean isShrinking():563:563 -> isShrinking
    1:1:boolean isVerbose():583:583 -> isVerbose
    1:10:java.lang.String toString():664:673 -> toString
com.android.tools.r8.shaking.ProguardConfiguration$Builder -> com.android.tools.r8.shaking.ProguardConfiguration$Builder:
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter,com.android.tools.r8.shaking.ProguardConfiguration$1):22:22 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):74:74 -> <init>
    3:55:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):24:76 -> <init>
    1:1:java.lang.String[] lambda$synthesizeKeepRulesForRecompilation$0(int):305:305 -> a
    2:4:void lambda$build$1(com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder):366:368 -> a
    1:1:void addAdaptClassStringsPattern(com.android.tools.r8.shaking.ProguardClassNameList):248:248 -> addAdaptClassStringsPattern
    1:1:void addAdaptResourceFileContents(com.android.tools.r8.shaking.ProguardPathList):256:256 -> addAdaptResourceFileContents
    1:1:void addAdaptResourceFilenames(com.android.tools.r8.shaking.ProguardPathList):252:252 -> addAdaptResourceFilenames
    1:1:void addDontNotePattern(com.android.tools.r8.shaking.ProguardClassNameList):200:200 -> addDontNotePattern
    1:1:void addDontWarnPattern(com.android.tools.r8.shaking.ProguardClassNameList):196:196 -> addDontWarnPattern
    1:1:void addInjars(java.util.List):84:84 -> addInjars
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder addKeepAttributePatterns(java.util.List):183:183 -> addKeepAttributePatterns
    1:1:void addKeepDirectories(com.android.tools.r8.shaking.ProguardPathList):264:264 -> addKeepDirectories
    1:1:void addKeepPackageNamesPattern(boolean,com.android.tools.r8.shaking.ProguardPackageMatcher):192:192 -> addKeepPackageNamesPattern
    1:1:void addLibraryJars(java.util.List):88:88 -> addLibraryJars
    1:1:void addParsedConfiguration(java.lang.String):80:80 -> addParsedConfiguration
    1:1:void addRule(com.android.tools.r8.shaking.ProguardConfigurationRule):188:188 -> addRule
    1:20:com.android.tools.r8.shaking.ProguardConfiguration build():357:376 -> build
    1:42:com.android.tools.r8.shaking.ProguardConfiguration buildRaw():310:351 -> buildRaw
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder disableObfuscation():119:119 -> disableObfuscation
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder disableOptimization():114:114 -> disableOptimization
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder disableShrinking():136:136 -> disableShrinking
    1:1:void enableKeepDirectories():260:260 -> enableKeepDirectories
    1:1:void enableKeepRuleSynthesisForRecompilation():276:276 -> enableKeepRuleSynthesisForRecompilation
    1:1:com.android.tools.r8.origin.Origin getKeepParameterNamesOptionOrigin():240:240 -> getKeepParameterNamesOptionOrigin
    1:1:com.android.tools.r8.position.Position getKeepParameterNamesOptionPosition():244:244 -> getKeepParameterNamesOptionPosition
    1:1:com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode getPackageObfuscationMode():92:92 -> getPackageObfuscationMode
    1:1:boolean hasApplyMappingFile():171:171 -> hasApplyMappingFile
    1:1:boolean isConfigurationDebugging():284:284 -> isConfigurationDebugging
    1:1:boolean isKeepParameterNames():236:236 -> isKeepParameterNames
    1:1:boolean isObfuscating():124:124 -> isObfuscating
    1:1:boolean isOptimizing():128:128 -> isOptimizing
    1:1:boolean isOverloadAggressively():224:224 -> isOverloadAggressively
    1:1:boolean isShrinking():132:132 -> isShrinking
    1:1:void setAllowAccessModification(boolean):106:106 -> setAllowAccessModification
    1:1:void setApplyMappingFile(java.nio.file.Path):167:167 -> setApplyMappingFile
    1:1:void setClassObfuscationDictionary(java.nio.file.Path):216:216 -> setClassObfuscationDictionary
    1:1:void setConfigurationDebugging(boolean):280:280 -> setConfigurationDebugging
    1:1:void setDontUseMixedCaseClassnames(boolean):288:288 -> setDontUseMixedCaseClassnames
    1:2:void setFlattenPackagePrefix(java.lang.String):101:102 -> setFlattenPackagePrefix
    1:1:void setForceProguardCompatibility(boolean):268:268 -> setForceProguardCompatibility
    1:1:void setIgnoreWarnings(boolean):110:110 -> setIgnoreWarnings
    1:4:void setKeepParameterNames(boolean,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):229:232 -> setKeepParameterNames
    1:1:void setObfuscationDictionary(java.nio.file.Path):212:212 -> setObfuscationDictionary
    1:1:void setOverloadAggressively(boolean):272:272 -> setOverloadAggressively
    1:1:void setPackageObfuscationDictionary(java.nio.file.Path):220:220 -> setPackageObfuscationDictionary
    1:2:void setPackagePrefix(java.lang.String):96:97 -> setPackagePrefix
    1:1:void setPrintConfiguration(boolean):141:141 -> setPrintConfiguration
    1:2:void setPrintConfigurationFile(java.nio.file.Path):145:146 -> setPrintConfigurationFile
    1:1:void setPrintMapping(boolean):158:158 -> setPrintMapping
    1:2:void setPrintMappingFile(java.nio.file.Path):162:163 -> setPrintMappingFile
    1:1:void setPrintSeeds(boolean):208:208 -> setPrintSeeds
    1:1:void setPrintUsage(boolean):150:150 -> setPrintUsage
    1:1:void setPrintUsageFile(java.nio.file.Path):154:154 -> setPrintUsageFile
    1:1:void setRenameSourceFileAttribute(java.lang.String):179:179 -> setRenameSourceFileAttribute
    1:1:void setSeedFile(java.nio.file.Path):204:204 -> setSeedFile
    1:1:void setVerbose(boolean):175:175 -> setVerbose
    1:10:void synthesizeKeepRulesForRecompilation():296:305 -> synthesizeKeepRulesForRecompilation
    11:11:void synthesizeKeepRulesForRecompilation():302:302 -> synthesizeKeepRulesForRecompilation
    12:12:void synthesizeKeepRulesForRecompilation():301:301 -> synthesizeKeepRulesForRecompilation
com.android.tools.r8.shaking.ProguardConfigurationParser -> com.android.tools.r8.shaking.ProguardConfigurationParser:
    1:51:void <clinit>():55:105 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):109:109 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter,boolean):113:118 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder access$000(com.android.tools.r8.shaking.ProguardConfigurationParser):46:46 -> access$000
    1:1:com.android.tools.r8.utils.Reporter access$100(com.android.tools.r8.shaking.ProguardConfigurationParser):46:46 -> access$100
    1:1:java.util.List access$1000():46:46 -> access$1000
    1:1:java.util.List access$1100():46:46 -> access$1100
    1:1:com.android.tools.r8.graph.DexItemFactory access$1200(com.android.tools.r8.shaking.ProguardConfigurationParser):46:46 -> access$1200
    1:1:java.lang.String access$1300(com.android.tools.r8.shaking.ProguardConfigurationParser,java.lang.String,com.android.tools.r8.position.TextPosition,com.android.tools.r8.position.TextPosition):46:46 -> access$1300
    1:1:boolean access$200(com.android.tools.r8.shaking.ProguardConfigurationParser):46:46 -> access$200
    1:1:java.util.List access$300():46:46 -> access$300
    1:1:java.util.List access$400():46:46 -> access$400
    1:1:java.util.List access$500():46:46 -> access$500
    1:1:java.util.List access$600():46:46 -> access$600
    1:1:java.util.List access$700():46:46 -> access$700
    1:1:java.util.List access$800():46:46 -> access$800
    1:1:java.util.List access$900():46:46 -> access$900
    1:2:com.android.tools.r8.shaking.ProguardConfiguration getConfig():154:155 -> getConfig
    1:2:com.android.tools.r8.shaking.ProguardConfiguration getConfigRawForTesting():163:164 -> getConfigRawForTesting
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder getConfigurationBuilder():122:122 -> getConfigurationBuilder
    1:7:java.lang.String getTextSourceSnippet(java.lang.String,com.android.tools.r8.position.TextPosition,com.android.tools.r8.position.TextPosition):2042:2048 -> getTextSourceSnippet
    1:1:void parse(java.nio.file.Path):168:168 -> parse
    2:2:void parse(com.android.tools.r8.shaking.ProguardConfigurationSource):172:172 -> parse
    3:10:void parse(java.util.List):176:183 -> parse
    11:12:void parse(java.util.List):180:181 -> parse
    13:19:void parse(java.util.List):180:186 -> parse
    1:7:void validate():126:132 -> validate
    8:10:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> validate
    8:10:void validate():129 -> validate
    11:22:void validate():134:145 -> validate
com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards -> com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards:
    1:3:void <init>(java.lang.String,java.util.List):2056:2058 -> <init>
    1:2:boolean hasBackreference():2070:2071 -> hasBackreference
    1:15:boolean hasUnusualCharacters():2075:2089 -> hasUnusualCharacters
    1:1:boolean isMatchAllNames():2066:2066 -> isMatchAllNames
    1:1:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards withoutWildcards(java.lang.String):2062:2062 -> withoutWildcards
com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation -> com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation:
    1:3:void <init>(java.lang.String,java.util.List,boolean):2100:2102 -> <init>
com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType -> com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType:
    1:3:void <clinit>():190:192 -> <clinit>
    4:4:void <clinit>():189:189 -> <clinit>
    1:1:void <init>(java.lang.String,int):189:189 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType valueOf(java.lang.String):189:189 -> valueOf
    1:1:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType[] values():189:189 -> values
com.android.tools.r8.shaking.ProguardConfigurationParser$ProguardConfigurationSourceParser -> com.android.tools.r8.shaking.ProguardConfigurationParser$ProguardConfigurationSourceParser:
    1:1:void <clinit>():195:195 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser,com.android.tools.r8.shaking.ProguardConfigurationSource):205:205 -> <init>
    2:1408:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser,com.android.tools.r8.shaking.ProguardConfigurationSource):198:1604 -> <init>
    1409:1412:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser,com.android.tools.r8.shaking.ProguardConfigurationSource):207:210 -> <init>
    1:4:boolean lambda$parseFileName$1(boolean,char,boolean,java.lang.Integer):1353:1356 -> a
    5:5:boolean lambda$acceptQuotedOrUnquotedString$4(char,java.lang.Integer):1579:1579 -> a
    6:9:boolean lambda$acceptPattern$7(java.lang.Integer):1804:1807 -> a
    1:7:boolean acceptArobaseInclude():543:549 -> acceptArobaseInclude
    1:2:boolean acceptChar(char):1513:1514 -> acceptChar
    1:1:java.lang.String acceptClassName():1612:1612 -> acceptClassName
    1:22:java.lang.String acceptFieldNameOrIntegerForReturn():1744:1765 -> acceptFieldNameOrIntegerForReturn
    1:6:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType):1617:1622 -> acceptIdentifierWithBackreference
    7:33:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1627:1653 -> acceptIdentifierWithBackreference
    34:35:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1648:1649 -> acceptIdentifierWithBackreference
    36:38:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> acceptIdentifierWithBackreference
    36:38:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1648 -> acceptIdentifierWithBackreference
    39:41:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1656:1658 -> acceptIdentifierWithBackreference
    42:44:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> acceptIdentifierWithBackreference
    42:44:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1656 -> acceptIdentifierWithBackreference
    45:51:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1662:1668 -> acceptIdentifierWithBackreference
    52:54:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> acceptIdentifierWithBackreference
    52:54:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1667 -> acceptIdentifierWithBackreference
    55:98:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1679:1722 -> acceptIdentifierWithBackreference
    99:101:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> acceptIdentifierWithBackreference
    99:101:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1718 -> acceptIdentifierWithBackreference
    102:102:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1712:1712 -> acceptIdentifierWithBackreference
    103:130:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1707:1734 -> acceptIdentifierWithBackreference
    131:133:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> acceptIdentifierWithBackreference
    131:133:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1733 -> acceptIdentifierWithBackreference
    134:135:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1739:1740 -> acceptIdentifierWithBackreference
    1:5:java.lang.Integer acceptInteger():1587:1591 -> acceptInteger
    1:1:java.lang.String acceptPattern():1802:1802 -> acceptPattern
    1:28:java.util.List acceptPatternList():1769:1796 -> acceptPatternList
    1:1:char acceptQuoteIfPresent():1522:1522 -> acceptQuoteIfPresent
    1:4:java.lang.String acceptQuotedOrUnquotedString():1578:1581 -> acceptQuotedOrUnquotedString
    1:9:boolean acceptString(java.lang.String):1561:1569 -> acceptString
    10:10:java.lang.String acceptString():1574:1574 -> acceptString
    11:25:java.lang.String acceptString(java.util.function.Predicate):1811:1825 -> acceptString
    1:1:boolean lambda$acceptString$3(java.lang.Integer):1574:1574 -> b
    1:7:boolean lambda$new$5(java.lang.Integer):1596:1602 -> c
    1:10:void checkConstructorPattern(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.position.TextPosition):1266:1275 -> checkConstructorPattern
    11:11:void checkConstructorPattern(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.position.TextPosition):1272:1272 -> checkConstructorPattern
    1:4:boolean lambda$new$6(java.lang.Integer):1606:1609 -> d
    1:2:boolean lambda$parseFileFilter$2(java.lang.Integer):1411:1412 -> e
    1:1:boolean eof():1487:1487 -> eof
    2:2:boolean eof(int):1491:1491 -> eof
    1:2:void expectChar(char):1555:1556 -> expectChar
    1:5:void expectClosingQuote(char):1526:1530 -> expectClosingQuote
    6:6:void expectClosingQuote(char):1528:1528 -> expectClosingQuote
    1:1:boolean lambda$skipOptimizationName$0(java.lang.Integer):635:635 -> f
    1:1:int getColumn():2031:2031 -> getColumn
    1:4:com.android.tools.r8.position.Position getPosition(com.android.tools.r8.position.TextPosition):2019:2022 -> getPosition
    5:5:com.android.tools.r8.position.TextPosition getPosition():2027:2027 -> getPosition
    1:2:java.lang.String getSourceSnippet(java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.position.Position):2035:2036 -> getSourceSnippet
    1:4:boolean hasNextChar(char):1495:1498 -> hasNextChar
    5:8:boolean hasNextChar(java.util.function.Predicate):1502:1505 -> hasNextChar
    1:2:void infoIgnoringModifier(java.lang.String,com.android.tools.r8.position.TextPosition):2014:2015 -> infoIgnoringModifier
    3:3:void infoIgnoringModifier(java.lang.String,com.android.tools.r8.position.TextPosition):2014:2014 -> infoIgnoringModifier
    1:2:void infoIgnoringOptions(java.lang.String,com.android.tools.r8.position.TextPosition):1989:1990 -> infoIgnoringOptions
    3:3:void infoIgnoringOptions(java.lang.String,com.android.tools.r8.position.TextPosition):1989:1989 -> infoIgnoringOptions
    1:2:boolean isInteger(java.lang.String):1478:1479 -> isInteger
    1:1:boolean isOptionalArgumentGiven():1509:1509 -> isOptionalArgumentGiven
    1:6:void parse():215:220 -> parse
    7:12:void parse():219:224 -> parse
    1:13:com.android.tools.r8.shaking.ProguardTypeMatcher parseAnnotation():909:921 -> parseAnnotation
    14:14:com.android.tools.r8.shaking.ProguardTypeMatcher parseAnnotation():920:920 -> parseAnnotation
    1:12:java.util.List parseArgumentList():1281:1292 -> parseArgumentList
    13:22:java.util.List parseArgumentList():1289:1298 -> parseArgumentList
    23:25:java.util.List parseArgumentList():1297:1299 -> parseArgumentList
    26:33:java.util.List parseArgumentList():1296:1303 -> parseArgumentList
    1:6:com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule parseAssumeMayHaveSideEffectsRule(com.android.tools.r8.position.Position):1434:1439 -> parseAssumeMayHaveSideEffectsRule
    1:8:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule parseAssumeNoSideEffectsRule(com.android.tools.r8.position.Position):1421:1428 -> parseAssumeNoSideEffectsRule
    1:8:com.android.tools.r8.shaking.ProguardAssumeValuesRule parseAssumeValuesRule(com.android.tools.r8.position.Position):1444:1451 -> parseAssumeValuesRule
    1:8:com.android.tools.r8.shaking.ProguardCheckDiscardRule parseCheckDiscardRule(com.android.tools.r8.position.Position):686:693 -> parseCheckDiscardRule
    1:6:void parseClassFilter(java.util.function.Consumer):1857:1862 -> parseClassFilter
    7:7:void parseClassFilter(java.util.function.Consumer):1861:1861 -> parseClassFilter
    1:23:void parseClassFlagsAndAnnotations(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):934:956 -> parseClassFlagsAndAnnotations
    1:6:com.android.tools.r8.shaking.ClassInlineRule parseClassInlineRule(com.android.tools.r8.shaking.ClassInlineRule$Type,com.android.tools.r8.position.Position):699:704 -> parseClassInlineRule
    1:6:com.android.tools.r8.shaking.ClassMergingRule parseClassMergingRule(com.android.tools.r8.shaking.ClassMergingRule$Type,com.android.tools.r8.position.Position):710:715 -> parseClassMergingRule
    1:3:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards parseClassName():1889:1891 -> parseClassName
    4:7:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation parseClassName(boolean):1896:1899 -> parseClassName
    1:4:void parseClassNameAddToBuilder(com.android.tools.r8.shaking.ProguardClassNameList$Builder):1868:1871 -> parseClassNameAddToBuilder
    5:8:void parseClassNameAddToBuilder(com.android.tools.r8.shaking.ProguardClassNameList$Builder):1869:1872 -> parseClassNameAddToBuilder
    1:5:com.android.tools.r8.shaking.ProguardClassNameList parseClassNames():1876:1880 -> parseClassNames
    1:10:java.util.List parseClassPath():1373:1382 -> parseClassPath
    1:14:com.android.tools.r8.com.google.common.collect.ImmutableList parseClassPathFilters():1388:1401 -> parseClassPathFilters
    15:20:com.android.tools.r8.com.google.common.collect.ImmutableList parseClassPathFilters():1398:1403 -> parseClassPathFilters
    1:5:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):842:846 -> parseClassSpec
    1:20:void parseClassType(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):969:988 -> parseClassType
    1:2:com.android.tools.r8.utils.StringDiagnostic parseClassTypeUnexpected(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.TextPosition):964:965 -> parseClassTypeUnexpected
    1:6:com.android.tools.r8.shaking.ConstantArgumentRule parseConstantArgumentRule(com.android.tools.r8.position.Position):783:788 -> parseConstantArgumentRule
    1:1:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String):1969:1969 -> parseError
    2:2:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String,java.lang.Throwable):1973:1973 -> parseError
    3:4:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String,com.android.tools.r8.position.TextPosition,java.lang.Throwable):1979:1980 -> parseError
    5:6:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String,com.android.tools.r8.position.TextPosition):1984:1985 -> parseError
    1:7:java.lang.String parseFileFilter():1408:1414 -> parseFileFilter
    1:22:java.nio.file.Path parseFileName(boolean):1343:1364 -> parseFileName
    23:30:java.nio.file.Path parseFileName(boolean):1362:1369 -> parseFileName
    31:31:java.nio.file.Path parseFileName(boolean):1358:1358 -> parseFileName
    32:32:java.nio.file.Path parseFileName(boolean):1347:1347 -> parseFileName
    1:8:com.android.tools.r8.shaking.ProguardIdentifierNameStringRule parseIdentifierNameStringRule(com.android.tools.r8.position.Position):746:753 -> parseIdentifierNameStringRule
    1:20:com.android.tools.r8.shaking.ProguardIfRule parseIfRule(com.android.tools.r8.position.TextPosition):758:777 -> parseIfRule
    21:23:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> parseIfRule
    21:23:com.android.tools.r8.shaking.ProguardIfRule parseIfRule(com.android.tools.r8.position.TextPosition):776 -> parseIfRule
    1:3:boolean parseIgnoredOption(com.android.tools.r8.position.TextPosition):519:521 -> parseIgnoredOption
    4:8:boolean parseIgnoredOption(com.android.tools.r8.position.TextPosition):520:524 -> parseIgnoredOption
    1:8:boolean parseIgnoredOptionAndWarn(com.android.tools.r8.position.TextPosition):499:506 -> parseIgnoredOptionAndWarn
    9:17:boolean parseIgnoredOptionAndWarn(com.android.tools.r8.position.TextPosition):505:513 -> parseIgnoredOptionAndWarn
    1:10:void parseInclude():528:537 -> parseInclude
    11:11:void parseInclude():534:534 -> parseInclude
    1:11:void parseInheritance(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):994:1004 -> parseInheritance
    12:12:void parseInheritance(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):1003:1003 -> parseInheritance
    1:9:com.android.tools.r8.shaking.InlineRule parseInlineRule(com.android.tools.r8.shaking.InlineRule$Type,com.android.tools.r8.position.Position):732:740 -> parseInlineRule
    1:5:void parseKeepAttributes():554:558 -> parseKeepAttributes
    6:6:void parseKeepAttributes():556:556 -> parseKeepAttributes
    1:11:com.android.tools.r8.shaking.ProguardKeepRule parseKeepRule(com.android.tools.r8.position.Position):651:661 -> parseKeepRule
    12:21:com.android.tools.r8.shaking.ProguardKeepRule parseKeepRule(com.android.tools.r8.position.Position):660:669 -> parseKeepRule
    1:50:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1036:1085 -> parseMemberAccessFlags
    51:68:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1073:1090 -> parseMemberAccessFlags
    69:74:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1064:1069 -> parseMemberAccessFlags
    75:76:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1059:1060 -> parseMemberAccessFlags
    77:78:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1054:1055 -> parseMemberAccessFlags
    79:80:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1049:1050 -> parseMemberAccessFlags
    81:137:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1044:1100 -> parseMemberAccessFlags
    1:46:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1108:1153 -> parseMemberPattern
    47:63:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1148:1164 -> parseMemberPattern
    64:86:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1159:1181 -> parseMemberPattern
    87:101:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1180:1194 -> parseMemberPattern
    102:134:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1193:1225 -> parseMemberPattern
    135:135:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1224:1224 -> parseMemberPattern
    136:148:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1222:1234 -> parseMemberPattern
    149:149:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1233:1233 -> parseMemberPattern
    150:155:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1232:1237 -> parseMemberPattern
    156:179:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1236:1259 -> parseMemberPattern
    1:6:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):1026:1031 -> parseMemberRule
    1:8:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):1013:1020 -> parseMemberRules
    1:6:com.android.tools.r8.shaking.MemberValuePropagationRule parseMemberValuePropagationRule(com.android.tools.r8.shaking.MemberValuePropagationRule$Type,com.android.tools.r8.position.Position):722:727 -> parseMemberValuePropagationRule
    1:2:boolean parseNegation():927:928 -> parseNegation
    1:9:boolean parseOptimizationOption(com.android.tools.r8.position.TextPosition):615:623 -> parseOptimizationOption
    1:51:boolean parseOption():228:278 -> parseOption
    52:53:boolean parseOption():275:276 -> parseOption
    54:56:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> parseOption
    54:56:boolean parseOption():275 -> parseOption
    57:139:boolean parseOption():279:361 -> parseOption
    140:189:boolean parseOption():360:409 -> parseOption
    1:10:void parsePackageFilter(java.util.function.BiConsumer):1838:1847 -> parsePackageFilter
    11:14:void parsePackageFilter(java.util.function.BiConsumer):1846:1849 -> parsePackageFilter
    15:22:void parsePackageFilter(java.util.function.BiConsumer):1844:1851 -> parsePackageFilter
    1:1:java.lang.String parsePackageNameOrEmptyString():1884:1884 -> parsePackageNameOrEmptyString
    1:5:void parsePathFilter(java.util.function.Consumer):1910:1914 -> parsePathFilter
    6:25:com.android.tools.r8.shaking.ProguardPathList parsePathFilter():1919:1938 -> parsePathFilter
    26:31:com.android.tools.r8.shaking.ProguardPathList parsePathFilter():1935:1940 -> parsePathFilter
    32:32:com.android.tools.r8.shaking.ProguardPathList parsePathFilter():1925:1925 -> parsePathFilter
    1:18:void parseRuleModifiers(com.android.tools.r8.shaking.ProguardKeepRule$Builder):887:904 -> parseRuleModifiers
    1:34:void parseRuleTypeAndModifiers(com.android.tools.r8.shaking.ProguardKeepRule$Builder):850:883 -> parseRuleTypeAndModifiers
    1:54:boolean parseTestingOption(com.android.tools.r8.position.TextPosition):416:469 -> parseTestingOption
    1:4:boolean parseUnsupportedOptionAndErr(com.android.tools.r8.position.TextPosition):488:491 -> parseUnsupportedOptionAndErr
    5:5:boolean parseUnsupportedOptionAndErr(com.android.tools.r8.position.TextPosition):490:490 -> parseUnsupportedOptionAndErr
    1:6:com.android.tools.r8.shaking.UnusedArgumentRule parseUnusedArgumentRule(com.android.tools.r8.position.Position):794:799 -> parseUnusedArgumentRule
    1:8:com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule parseWhyAreYouKeepingRule(com.android.tools.r8.position.Position):674:681 -> parseWhyAreYouKeepingRule
    1:6:com.android.tools.r8.shaking.WhyAreYouNotInliningRule parseWhyAreYouNotInliningRule(com.android.tools.r8.position.Position):805:810 -> parseWhyAreYouNotInliningRule
    1:1:boolean pathFilterMatcher(java.lang.Integer):1905:1905 -> pathFilterMatcher
    1:1:char peekChar():1538:1538 -> peekChar
    1:2:char peekCharAt(int):1542:1543 -> peekCharAt
    1:1:char readChar():1547:1547 -> readChar
    1:1:int remainingChars():1551:1551 -> remainingChars
    1:21:java.lang.String replaceSystemPropertyReferences(java.lang.String):1309:1329 -> replaceSystemPropertyReferences
    22:34:java.lang.String replaceSystemPropertyReferences(java.lang.String):1327:1339 -> replaceSystemPropertyReferences
    1:8:void skipComment():1466:1473 -> skipComment
    1:3:boolean skipFlag(java.lang.String):562:564 -> skipFlag
    1:11:void skipOptimizationName():628:638 -> skipOptimizationName
    1:10:boolean skipOptionWithClassSpec(java.lang.String):597:606 -> skipOptionWithClassSpec
    1:7:boolean skipOptionWithOptionalSingleArg(java.lang.String):583:589 -> skipOptionWithOptionalSingleArg
    1:5:boolean skipOptionWithSingleArg(java.lang.String):572:576 -> skipOptionWithSingleArg
    1:3:void skipSingleArgument():643:645 -> skipSingleArgument
    1:8:void skipWhitespace():1455:1462 -> skipWhitespace
    1:10:java.lang.String snippetForPosition():1945:1954 -> snippetForPosition
    11:17:java.lang.String snippetForPosition():1950:1956 -> snippetForPosition
    18:21:java.lang.String snippetForPosition(com.android.tools.r8.position.TextPosition):1961:1964 -> snippetForPosition
    1:4:void unacceptString(java.lang.String):1829:1832 -> unacceptString
    1:1:java.lang.RuntimeException unknownOption(java.lang.String,com.android.tools.r8.position.TextPosition):477:477 -> unknownOption
    2:4:java.lang.RuntimeException unknownOption(java.lang.String,com.android.tools.r8.position.TextPosition,java.lang.String):482:484 -> unknownOption
    5:7:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> unknownOption
    5:7:java.lang.RuntimeException unknownOption(java.lang.String,com.android.tools.r8.position.TextPosition,java.lang.String):482 -> unknownOption
    1:13:void verifyAndLinkBackReferences(java.lang.Iterable):814:826 -> verifyAndLinkBackReferences
    14:17:void verifyAndLinkBackReferences(java.lang.Iterable):821:824 -> verifyAndLinkBackReferences
    18:20:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> verifyAndLinkBackReferences
    18:20:void verifyAndLinkBackReferences(java.lang.Iterable):821 -> verifyAndLinkBackReferences
    21:23:void verifyAndLinkBackReferences(java.lang.Iterable):828:830 -> verifyAndLinkBackReferences
    1:2:void warnIgnoringOptions(java.lang.String,com.android.tools.r8.position.TextPosition):1994:1995 -> warnIgnoringOptions
    3:3:void warnIgnoringOptions(java.lang.String,com.android.tools.r8.position.TextPosition):1994:1994 -> warnIgnoringOptions
    1:2:void warnOverridingOptions(java.lang.String,java.lang.String,com.android.tools.r8.position.TextPosition):1999:2000 -> warnOverridingOptions
    3:3:void warnOverridingOptions(java.lang.String,java.lang.String,com.android.tools.r8.position.TextPosition):1999:1999 -> warnOverridingOptions
    1:6:void warnUnusualCharacters(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.position.TextPosition):2005:2010 -> warnUnusualCharacters
    7:7:void warnUnusualCharacters(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.position.TextPosition):2005:2005 -> warnUnusualCharacters
com.android.tools.r8.shaking.ProguardConfigurationRule -> com.android.tools.r8.shaking.ProguardConfigurationRule:
    1:1:void <clinit>():21:21 -> <clinit>
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):39:39 -> <init>
    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):23:23 -> <init>
    1:1:java.util.stream.Stream lambda$getWildcards$0(java.lang.Iterable):107:107 -> a
    1:5:java.lang.StringBuilder append(java.lang.StringBuilder,boolean):142:146 -> append
    1:14:boolean equals(java.lang.Object):115:128 -> equals
    1:12:java.lang.Iterable getWildcards():98:109 -> getWildcards
    13:13:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable[]):487:487 -> getWildcards
    13:13:java.lang.Iterable getWildcards():99 -> getWildcards
    1:5:int hashCode():133:137 -> hashCode
    1:1:boolean isUsed():45:45 -> isUsed
    1:1:void markAsUsed():49:49 -> markAsUsed
    1:5:java.lang.Iterable relevantCandidatesForRule(com.android.tools.r8.graph.AppView,java.lang.Iterable):70:74 -> relevantCandidatesForRule
    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> relevantCandidatesForRule
    6:6:java.lang.Iterable relevantCandidatesForRule(com.android.tools.r8.graph.AppView,java.lang.Iterable):75 -> relevantCandidatesForRule
    7:10:java.lang.Iterable relevantCandidatesForRule(com.android.tools.r8.graph.AppView,java.lang.Iterable):76:79 -> relevantCandidatesForRule
    11:11:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> relevantCandidatesForRule
    11:11:java.lang.Iterable relevantCandidatesForRule(com.android.tools.r8.graph.AppView,java.lang.Iterable):77 -> relevantCandidatesForRule
    12:12:java.lang.Iterable relevantCandidatesForRule(com.android.tools.r8.graph.AppView,java.lang.Iterable):81:81 -> relevantCandidatesForRule
com.android.tools.r8.shaking.ProguardConfigurationSourceBytes -> com.android.tools.r8.shaking.ProguardConfigurationSourceBytes:
    1:3:void <init>(byte[],com.android.tools.r8.origin.Origin):18:20 -> <init>
    4:4:void <init>(java.io.InputStream,com.android.tools.r8.origin.Origin):24:24 -> <init>
    1:1:java.lang.String get():29:29 -> get
    1:1:java.lang.String getName():40:40 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():45:45 -> getOrigin
com.android.tools.r8.shaking.ProguardConfigurationSourceFile -> com.android.tools.r8.shaking.ProguardConfigurationSourceFile:
    1:2:void <init>(java.nio.file.Path):18:19 -> <init>
    1:1:java.lang.String get():24:24 -> get
    1:5:java.nio.file.Path getBaseDirectory():29:33 -> getBaseDirectory
    1:1:java.lang.String getName():40:40 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():45:45 -> getOrigin
com.android.tools.r8.shaking.ProguardConfigurationSourceStrings -> com.android.tools.r8.shaking.ProguardConfigurationSourceStrings:
    1:4:void <init>(java.util.List,java.nio.file.Path,com.android.tools.r8.origin.Origin):24:27 -> <init>
    5:5:void <init>(java.util.List):31:31 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardConfigurationSourceStrings createConfigurationForTesting(java.util.List):37:37 -> createConfigurationForTesting
    1:1:java.lang.String get():42:42 -> get
    1:1:java.nio.file.Path getBaseDirectory():47:47 -> getBaseDirectory
    1:1:com.android.tools.r8.origin.Origin getOrigin():57:57 -> getOrigin
com.android.tools.r8.shaking.ProguardConfigurationUtils -> com.android.tools.r8.shaking.ProguardConfigurationUtils:
    1:12:void <clinit>():19:30 -> <clinit>
    1:1:void <init>():19:19 -> <init>
    1:19:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule buildAssumeNoSideEffectsRuleForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):90:108 -> buildAssumeNoSideEffectsRuleForApiLevel
    20:20:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule buildAssumeNoSideEffectsRuleForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):107:107 -> buildAssumeNoSideEffectsRuleForApiLevel
    21:33:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule buildAssumeNoSideEffectsRuleForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):106:118 -> buildAssumeNoSideEffectsRuleForApiLevel
    34:37:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule buildAssumeNoSideEffectsRuleForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):116:119 -> buildAssumeNoSideEffectsRuleForApiLevel
    38:38:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule buildAssumeNoSideEffectsRuleForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):110:110 -> buildAssumeNoSideEffectsRuleForApiLevel
    39:50:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule buildAssumeNoSideEffectsRuleForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):109:120 -> buildAssumeNoSideEffectsRuleForApiLevel
    1:9:com.android.tools.r8.shaking.ProguardKeepRule buildDefaultInitializerKeepRule(com.android.tools.r8.graph.DexClass):38:46 -> buildDefaultInitializerKeepRule
    10:19:com.android.tools.r8.shaking.ProguardKeepRule buildDefaultInitializerKeepRule(com.android.tools.r8.graph.DexClass):45:54 -> buildDefaultInitializerKeepRule
    1:14:com.android.tools.r8.shaking.ProguardKeepRule buildMethodKeepRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):60:73 -> buildMethodKeepRule
    15:21:com.android.tools.r8.shaking.ProguardKeepRule buildMethodKeepRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):72:78 -> buildMethodKeepRule
    22:30:com.android.tools.r8.shaking.ProguardKeepRule buildMethodKeepRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):77:85 -> buildMethodKeepRule
    1:39:boolean hasExplicitAssumeValuesOrAssumeNoSideEffectsRuleForMinSdk(com.android.tools.r8.graph.DexItemFactory,java.util.List):129:167 -> hasExplicitAssumeValuesOrAssumeNoSideEffectsRuleForMinSdk
    1:10:void synthesizeKeepRulesForRecompilation(com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.List):178:187 -> synthesizeKeepRulesForRecompilation
    11:16:void synthesizeKeepRulesForRecompilation(com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.List):184:189 -> synthesizeKeepRulesForRecompilation
    17:17:void synthesizeKeepRulesForRecompilation(com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.List):180:180 -> synthesizeKeepRulesForRecompilation
com.android.tools.r8.shaking.ProguardConfigurationUtils$1 -> com.android.tools.r8.shaking.ProguardConfigurationUtils$1:
    1:1:void <init>(com.android.tools.r8.origin.Origin):22:22 -> <init>
com.android.tools.r8.shaking.ProguardConfigurationUtils$2 -> com.android.tools.r8.shaking.ProguardConfigurationUtils$2:
    1:1:void <init>(com.android.tools.r8.origin.Origin):30:30 -> <init>
com.android.tools.r8.shaking.ProguardConfigurationUtils$3 -> com.android.tools.r8.shaking.ProguardConfigurationUtils$3:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.utils.AndroidApiLevel):91:91 -> <init>
    1:1:java.lang.String part():94:94 -> part
com.android.tools.r8.shaking.ProguardIdentifierNameStringRule -> com.android.tools.r8.shaking.ProguardIdentifierNameStringRule:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardIdentifierNameStringRule$1):10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):45:45 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardIdentifierNameStringRule$Builder builder():51:51 -> builder
com.android.tools.r8.shaking.ProguardIdentifierNameStringRule$Builder -> com.android.tools.r8.shaking.ProguardIdentifierNameStringRule$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardIdentifierNameStringRule$1):12:12 -> <init>
    2:2:void <init>():15:15 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
    2:2:com.android.tools.r8.shaking.ProguardIdentifierNameStringRule build():25:25 -> build
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
com.android.tools.r8.shaking.ProguardIfRule -> com.android.tools.r8.shaking.ProguardIfRule:
    1:2:void <clinit>():18:19 -> <clinit>
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRule,java.util.Set,com.android.tools.r8.shaking.ProguardIfRule$1):16:16 -> <init>
    2:5:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRule,java.util.Set):88:91 -> <init>
    6:11:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRule,java.util.Set):88:93 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardMemberRule lambda$materialize$0(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.ProguardMemberRule):127:127 -> a
    2:2:boolean lambda$neverInlineRuleForCondition$1(com.android.tools.r8.shaking.ProguardMemberRule):199:199 -> a
    1:1:com.android.tools.r8.shaking.ProguardMemberRule lambda$neverInlineRuleForCondition$2(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.ProguardMemberRule):200:200 -> b
    1:1:com.android.tools.r8.shaking.ProguardIfRule$Builder builder():97:97 -> builder
    1:8:boolean equals(java.lang.Object):207:214 -> equals
    1:1:java.util.Set getPreconditions():30:30 -> getPreconditions
    1:1:java.lang.Iterable getWildcards():102:102 -> getWildcards
    2:2:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> getWildcards
    2:2:java.lang.Iterable getWildcards():102 -> getWildcards
    1:1:int hashCode():219:219 -> hashCode
    1:23:com.android.tools.r8.shaking.ProguardIfRule materialize(com.android.tools.r8.graph.DexItemFactory,java.util.Set):107:129 -> materialize
    1:18:com.android.tools.r8.shaking.ClassInlineRule neverClassInlineRuleForCondition(com.android.tools.r8.graph.DexItemFactory):134:151 -> neverClassInlineRuleForCondition
    1:24:com.android.tools.r8.shaking.InlineRule neverInlineRuleForCondition(com.android.tools.r8.graph.DexItemFactory):178:201 -> neverInlineRuleForCondition
com.android.tools.r8.shaking.ProguardIfRule$1 -> com.android.tools.r8.shaking.ProguardIfRule$1:
    1:1:void <init>(com.android.tools.r8.origin.Origin):19:19 -> <init>
com.android.tools.r8.shaking.ProguardIfRule$Builder -> com.android.tools.r8.shaking.ProguardIfRule$Builder:
    1:1:void <clinit>():33:33 -> <clinit>
    1:1:void <init>():38:38 -> <init>
    2:2:void <init>():35:35 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():33:33 -> build
    2:5:com.android.tools.r8.shaking.ProguardIfRule build():52:55 -> build
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():33:33 -> self
    1:1:void setSubsequentRule(com.android.tools.r8.shaking.ProguardKeepRule):47:47 -> setSubsequentRule
com.android.tools.r8.shaking.ProguardKeepAttributes -> com.android.tools.r8.shaking.ProguardKeepAttributes:
    1:1:void <clinit>():36:36 -> <clinit>
    1:1:void <init>():58:58 -> <init>
    2:20:void <init>():38:56 -> <init>
    1:53:java.lang.StringBuilder append(java.lang.StringBuilder):238:290 -> append
    1:25:void applyPatterns(java.util.List):116:140 -> applyPatterns
    1:7:void ensureValid(boolean):144:150 -> ensureValid
    8:8:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> ensureValid
    8:8:void ensureValid(boolean):150 -> ensureValid
    9:12:void ensureValid(boolean):150:153 -> ensureValid
    13:13:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> ensureValid
    13:13:void ensureValid(boolean):153 -> ensureValid
    14:17:void ensureValid(boolean):153:156 -> ensureValid
    18:18:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> ensureValid
    18:18:void ensureValid(boolean):156 -> ensureValid
    19:27:void ensureValid(boolean):156:164 -> ensureValid
    28:28:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> ensureValid
    28:28:void ensureValid(boolean):164 -> ensureValid
    29:29:void ensureValid(boolean):164:164 -> ensureValid
    1:5:boolean equals(java.lang.Object):176:180 -> equals
    1:3:com.android.tools.r8.shaking.ProguardKeepAttributes filterOnlySignatures():62:64 -> filterOnlySignatures
    1:2:com.android.tools.r8.shaking.ProguardKeepAttributes fromPatterns(java.util.List):110:111 -> fromPatterns
    1:16:int hashCode():200:215 -> hashCode
    1:1:boolean isEmpty():219:219 -> isEmpty
    1:17:boolean matches(java.lang.String,int,java.lang.String,int):90:106 -> matches
    1:1:java.lang.String toString():298:298 -> toString
    1:10:boolean update(boolean,java.lang.String,java.util.List):74:83 -> update
com.android.tools.r8.shaking.ProguardKeepRule -> com.android.tools.r8.shaking.ProguardKeepRule:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRuleType,com.android.tools.r8.shaking.ProguardKeepRuleModifiers):50:50 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardMemberRule lambda$materialize$0(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.ProguardMemberRule):83:83 -> a
    1:8:void appendNonEmpty(java.lang.StringBuilder,java.lang.String,java.lang.Object,java.lang.String):102:109 -> appendNonEmpty
    1:1:com.android.tools.r8.shaking.ProguardKeepRule$Builder builder():59:59 -> builder
    1:3:com.android.tools.r8.shaking.ProguardKeepRule defaultKeepAllRule(java.util.function.Consumer):116:118 -> defaultKeepAllRule
    4:15:com.android.tools.r8.shaking.ProguardKeepRule defaultKeepAllRule(java.util.function.Consumer):117:128 -> defaultKeepAllRule
    1:5:boolean equals(java.lang.Object):91:95 -> equals
    1:24:com.android.tools.r8.shaking.ProguardKeepRule materialize(com.android.tools.r8.graph.DexItemFactory):63:86 -> materialize
com.android.tools.r8.shaking.ProguardKeepRule$1 -> com.android.tools.r8.shaking.ProguardKeepRule$1:
    1:1:void <init>(com.android.tools.r8.origin.Origin):118:118 -> <init>
com.android.tools.r8.shaking.ProguardKeepRule$Builder -> com.android.tools.r8.shaking.ProguardKeepRule$Builder:
    1:1:void <init>():18:18 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():15:15 -> build
    2:4:com.android.tools.r8.shaking.ProguardKeepRule build():28:30 -> build
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():15:15 -> self
com.android.tools.r8.shaking.ProguardKeepRuleBase -> com.android.tools.r8.shaking.ProguardKeepRuleBase:
    1:5:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRuleType,com.android.tools.r8.shaking.ProguardKeepRuleModifiers):58:62 -> <init>
    1:8:void appendNonEmpty(java.lang.StringBuilder,java.lang.String,java.lang.Object,java.lang.String):102:109 -> appendNonEmpty
    1:12:boolean equals(java.lang.Object):75:86 -> equals
    1:1:com.android.tools.r8.shaking.ProguardKeepRuleModifiers getModifiers():70:70 -> getModifiers
    1:1:com.android.tools.r8.shaking.ProguardKeepRuleType getType():66:66 -> getType
    1:3:int hashCode():92:94 -> hashCode
    1:1:java.lang.String modifierString():121:121 -> modifierString
    1:1:java.lang.String typeString():116:116 -> typeString
com.android.tools.r8.shaking.ProguardKeepRuleBase$Builder -> com.android.tools.r8.shaking.ProguardKeepRuleBase$Builder:
    1:1:void <init>():21:21 -> <init>
    2:2:void <init>():18:18 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder getModifiersBuilder():30:30 -> getModifiersBuilder
    1:2:com.android.tools.r8.shaking.ProguardKeepRuleBase$Builder setType(com.android.tools.r8.shaking.ProguardKeepRuleType):25:26 -> setType
    1:2:com.android.tools.r8.shaking.ProguardKeepRuleBase$Builder updateModifiers(java.util.function.Consumer):34:35 -> updateModifiers
com.android.tools.r8.shaking.ProguardKeepRuleModifiers -> com.android.tools.r8.shaking.ProguardKeepRuleModifiers:
    1:1:void <init>(boolean,boolean,boolean,boolean,com.android.tools.r8.shaking.ProguardKeepRuleModifiers$1):6:6 -> <init>
    2:6:void <init>(boolean,boolean,boolean,boolean):48:52 -> <init>
    1:4:void appendWithComma(java.lang.StringBuilder,boolean,java.lang.String):97:100 -> appendWithComma
    1:1:com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder builder():58:58 -> builder
    1:6:boolean equals(java.lang.Object):63:68 -> equals
    1:4:int hashCode():76:79 -> hashCode
    1:6:java.lang.String toString():84:89 -> toString
com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder -> com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardKeepRuleModifiers$1):7:7 -> <init>
    2:2:void <init>():14:14 -> <init>
    3:6:void <init>():9:12 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardKeepRuleModifiers build():34:34 -> build
    1:1:com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder setAllowsObfuscation(boolean):25:25 -> setAllowsObfuscation
    1:1:void setAllowsOptimization(boolean):21:21 -> setAllowsOptimization
    1:1:void setAllowsShrinking(boolean):17:17 -> setAllowsShrinking
    1:1:void setIncludeDescriptorClasses(boolean):30:30 -> setIncludeDescriptorClasses
com.android.tools.r8.shaking.ProguardKeepRuleType -> com.android.tools.r8.shaking.ProguardKeepRuleType:
    1:4:void <clinit>():9:12 -> <clinit>
    5:5:void <clinit>():8:8 -> <clinit>
    1:1:void <init>(java.lang.String,int):8:8 -> <init>
    1:11:java.lang.String toString():16:26 -> toString
    1:1:com.android.tools.r8.shaking.ProguardKeepRuleType valueOf(java.lang.String):8:8 -> valueOf
    1:1:com.android.tools.r8.shaking.ProguardKeepRuleType[] values():8:8 -> values
com.android.tools.r8.shaking.ProguardKeepRuleType$1 -> com.android.tools.r8.shaking.ProguardKeepRuleType$1:
    1:1:void <clinit>():16:16 -> <clinit>
com.android.tools.r8.shaking.ProguardMemberRule -> com.android.tools.r8.shaking.ProguardMemberRule:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardMemberType,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardNameMatcher,java.util.List,com.android.tools.r8.shaking.ProguardMemberRuleReturnValue,com.android.tools.r8.shaking.ProguardMemberRule$1):22:22 -> <init>
    2:10:void <init>(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardMemberType,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardNameMatcher,java.util.List,com.android.tools.r8.shaking.ProguardMemberRuleReturnValue):114:122 -> <init>
    1:1:java.util.stream.Stream lambda$getWildcards$0(java.lang.Iterable):297:297 -> a
    2:2:com.android.tools.r8.shaking.ProguardTypeMatcher lambda$materialize$1(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.ProguardTypeMatcher):314:314 -> a
    1:1:com.android.tools.r8.shaking.ProguardMemberRule$Builder builder():129:129 -> builder
    1:3:com.android.tools.r8.shaking.ProguardMemberRule defaultKeepAllRule():407:409 -> defaultKeepAllRule
    1:25:boolean equals(java.lang.Object):321:345 -> equals
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getAccessFlags():137:137 -> getAccessFlags
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getAnnotation():133:133 -> getAnnotation
    1:1:java.util.List getArguments():157:157 -> getArguments
    1:1:com.android.tools.r8.shaking.ProguardNameMatcher getName():153:153 -> getName
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getNegatedAccessFlags():141:141 -> getNegatedAccessFlags
    1:1:com.android.tools.r8.shaking.ProguardMemberRuleReturnValue getReturnValue():165:165 -> getReturnValue
    1:1:com.android.tools.r8.shaking.ProguardMemberType getRuleType():145:145 -> getRuleType
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getType():149:149 -> getType
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getTypeMatcher():169:169 -> getTypeMatcher
    1:10:java.lang.Iterable getWildcards():290:299 -> getWildcards
    11:11:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable,java.lang.Iterable):469:469 -> getWildcards
    11:11:java.lang.Iterable getWildcards():290 -> getWildcards
    1:1:boolean hasReturnValue():161:161 -> hasReturnValue
    1:7:int hashCode():350:356 -> hashCode
    1:9:boolean isSpecific():277:285 -> isSpecific
    1:28:boolean matches(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.DexStringCache):173:200 -> matches
    29:77:boolean matches(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.DexStringCache):215:263 -> matches
    78:89:boolean matches(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.DexStringCache):218:229 -> matches
    1:13:com.android.tools.r8.shaking.ProguardMemberRule materialize(com.android.tools.r8.graph.DexItemFactory):304:316 -> materialize
    1:37:java.lang.String toString():362:398 -> toString
    38:47:java.lang.String toString():375:384 -> toString
    48:66:java.lang.String toString():372:390 -> toString
    67:101:java.lang.String toString():369:403 -> toString
com.android.tools.r8.shaking.ProguardMemberRule$1 -> com.android.tools.r8.shaking.ProguardMemberRule$1:
    1:1:void <clinit>():174:174 -> <clinit>
com.android.tools.r8.shaking.ProguardMemberRule$Builder -> com.android.tools.r8.shaking.ProguardMemberRule$Builder:
    1:1:void <clinit>():24:24 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardMemberRule$1):24:24 -> <init>
    2:2:void <init>():35:35 -> <init>
    3:4:void <init>():27:28 -> <init>
    1:2:com.android.tools.r8.shaking.ProguardMemberRule build():91:92 -> build
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getAccessFlags():42:42 -> getAccessFlags
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getNegatedAccessFlags():51:51 -> getNegatedAccessFlags
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getTypeMatcher():64:64 -> getTypeMatcher
    1:1:boolean isValid():87:87 -> isValid
    1:1:com.android.tools.r8.shaking.ProguardMemberRule$Builder setAccessFlags(com.android.tools.r8.shaking.ProguardAccessFlags):46:46 -> setAccessFlags
    1:1:void setAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher):38:38 -> setAnnotation
    1:1:void setArguments(java.util.List):78:78 -> setArguments
    1:1:com.android.tools.r8.shaking.ProguardMemberRule$Builder setName(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards):73:73 -> setName
    1:1:void setNegatedAccessFlags(com.android.tools.r8.shaking.ProguardAccessFlags):55:55 -> setNegatedAccessFlags
    1:1:com.android.tools.r8.shaking.ProguardMemberRule$Builder setReturnValue(com.android.tools.r8.shaking.ProguardMemberRuleReturnValue):82:82 -> setReturnValue
    1:1:com.android.tools.r8.shaking.ProguardMemberRule$Builder setRuleType(com.android.tools.r8.shaking.ProguardMemberType):59:59 -> setRuleType
    1:1:com.android.tools.r8.shaking.ProguardMemberRule$Builder setTypeMatcher(com.android.tools.r8.shaking.ProguardTypeMatcher):68:68 -> setTypeMatcher
com.android.tools.r8.shaking.ProguardMemberRuleReturnValue -> com.android.tools.r8.shaking.ProguardMemberRuleReturnValue:
    1:1:void <clinit>():10:10 -> <clinit>
    1:5:void <init>(boolean):23:27 -> <init>
    6:10:void <init>(com.android.tools.r8.utils.LongInterval):30:34 -> <init>
    11:15:void <init>(com.android.tools.r8.graph.DexField):37:41 -> <init>
    16:20:void <init>():44:48 -> <init>
    1:2:boolean getBoolean():68:69 -> getBoolean
    1:2:com.android.tools.r8.graph.DexField getField():105:106 -> getField
    1:8:long getSingleValue():89:96 -> getSingleValue
    1:2:com.android.tools.r8.utils.LongInterval getValueRange():100:101 -> getValueRange
    1:1:boolean isBoolean():52:52 -> isBoolean
    1:1:boolean isField():60:60 -> isField
    1:1:boolean isNull():64:64 -> isNull
    1:1:boolean isSingleValue():78:78 -> isSingleValue
    1:1:boolean isValueRange():56:56 -> isValueRange
    1:17:java.lang.String toString():111:127 -> toString
com.android.tools.r8.shaking.ProguardMemberRuleReturnValue$Type -> com.android.tools.r8.shaking.ProguardMemberRuleReturnValue$Type:
    1:4:void <clinit>():12:15 -> <clinit>
    5:5:void <clinit>():11:11 -> <clinit>
    1:1:void <init>(java.lang.String,int):11:11 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardMemberRuleReturnValue$Type valueOf(java.lang.String):11:11 -> valueOf
    1:1:com.android.tools.r8.shaking.ProguardMemberRuleReturnValue$Type[] values():11:11 -> values
com.android.tools.r8.shaking.ProguardMemberType -> com.android.tools.r8.shaking.ProguardMemberType:
    1:8:void <clinit>():8:15 -> <clinit>
    9:9:void <clinit>():6:6 -> <clinit>
    1:1:void <init>(java.lang.String,int):6:6 -> <init>
    1:1:boolean includesFields():18:18 -> includesFields
    1:1:boolean includesMethods():22:22 -> includesMethods
    1:1:com.android.tools.r8.shaking.ProguardMemberType valueOf(java.lang.String):6:6 -> valueOf
    1:1:com.android.tools.r8.shaking.ProguardMemberType[] values():6:6 -> values
com.android.tools.r8.shaking.ProguardNameMatcher -> com.android.tools.r8.shaking.ProguardNameMatcher:
    1:3:void <clinit>():14:16 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardNameMatcher$1):14:14 -> <init>
    2:2:void <init>():18:18 -> <init>
    1:1:boolean access$100(java.lang.String,int,java.lang.String,int,java.util.List,int):14:14 -> access$100
    1:6:com.android.tools.r8.shaking.ProguardNameMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards):23:28 -> create
    1:1:java.lang.Iterable getWildcards():93:93 -> getWildcards
    1:1:java.lang.Iterable getWildcardsOrEmpty(com.android.tools.r8.shaking.ProguardNameMatcher):97:97 -> getWildcardsOrEmpty
    1:43:boolean matchFieldOrMethodNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int):39:81 -> matchFieldOrMethodNameImpl
    44:66:boolean matchFieldOrMethodNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int):56:78 -> matchFieldOrMethodNameImpl
    67:111:boolean matchFieldOrMethodNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int):43:87 -> matchFieldOrMethodNameImpl
com.android.tools.r8.shaking.ProguardNameMatcher$MatchAllNames -> com.android.tools.r8.shaking.ProguardNameMatcher$MatchAllNames:
    1:1:void <init>():108:108 -> <init>
    2:3:void <init>(com.android.tools.r8.shaking.ProguardWildcard):111:112 -> <init>
    1:1:java.lang.Iterable getWildcards():123:123 -> getWildcards
    1:1:boolean matches(java.lang.String):117:117 -> matches
    1:1:com.android.tools.r8.shaking.ProguardNameMatcher materialize():104:104 -> materialize
    2:2:com.android.tools.r8.shaking.ProguardNameMatcher$MatchAllNames materialize():128:128 -> materialize
com.android.tools.r8.shaking.ProguardNameMatcher$MatchNamePattern -> com.android.tools.r8.shaking.ProguardNameMatcher$MatchNamePattern:
    1:3:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards):142:144 -> <init>
    1:1:boolean equals(java.lang.Object):180:180 -> equals
    1:1:java.lang.Iterable getWildcards():158:158 -> getWildcards
    1:1:int hashCode():185:185 -> hashCode
    1:3:boolean matches(java.lang.String):149:151 -> matches
    1:1:com.android.tools.r8.shaking.ProguardNameMatcher materialize():137:137 -> materialize
    2:6:com.android.tools.r8.shaking.ProguardNameMatcher$MatchNamePattern materialize():163:167 -> materialize
    1:1:java.lang.String toString():172:172 -> toString
com.android.tools.r8.shaking.ProguardNameMatcher$MatchSpecificName -> com.android.tools.r8.shaking.ProguardNameMatcher$MatchSpecificName:
    1:2:void <init>(java.lang.String):193:194 -> <init>
    1:1:boolean equals(java.lang.Object):209:209 -> equals
    1:1:int hashCode():214:214 -> hashCode
    1:1:boolean matches(java.lang.String):199:199 -> matches
    1:1:java.lang.String toString():204:204 -> toString
com.android.tools.r8.shaking.ProguardPackageMatcher -> com.android.tools.r8.shaking.ProguardPackageMatcher:
    1:2:void <init>(java.lang.String):12:13 -> <init>
    1:1:boolean containsSeparatorsStartingAt(java.lang.String,int):77:77 -> containsSeparatorsStartingAt
    1:5:boolean equals(java.lang.Object):85:89 -> equals
    1:1:int hashCode():94:94 -> hashCode
    1:46:boolean matchPackageNameImpl(java.lang.String,int,java.lang.String,int):22:67 -> matchPackageNameImpl
    47:47:boolean matchPackageNameImpl(java.lang.String,int,java.lang.String,int):60:60 -> matchPackageNameImpl
    48:92:boolean matchPackageNameImpl(java.lang.String,int,java.lang.String,int):29:73 -> matchPackageNameImpl
    1:1:boolean matches(com.android.tools.r8.graph.DexType):17:17 -> matches
com.android.tools.r8.shaking.ProguardPackageNameList -> com.android.tools.r8.shaking.ProguardPackageNameList:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap,com.android.tools.r8.shaking.ProguardPackageNameList$1):12:12 -> <init>
    2:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap):39:40 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardPackageNameList$Builder builder():15:15 -> builder
    1:15:boolean equals(java.lang.Object):74:88 -> equals
    1:6:int hashCode():98:103 -> hashCode
    1:4:boolean matches(com.android.tools.r8.graph.DexType):60:63 -> matches
    1:8:void writeTo(java.lang.StringBuilder):46:53 -> writeTo
com.android.tools.r8.shaking.ProguardPackageNameList$Builder -> com.android.tools.r8.shaking.ProguardPackageNameList$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardPackageNameList$1):18:18 -> <init>
    2:2:void <init>():24:24 -> <init>
    3:3:void <init>():21:21 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardPackageNameList$Builder addPackageName(boolean,com.android.tools.r8.shaking.ProguardPackageMatcher):28:28 -> addPackageName
    1:1:com.android.tools.r8.shaking.ProguardPackageNameList build():33:33 -> build
com.android.tools.r8.shaking.ProguardPathFilter -> com.android.tools.r8.shaking.ProguardPathFilter:
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,boolean,com.android.tools.r8.shaking.ProguardPathFilter$1):9:9 -> <init>
    2:8:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,boolean):44:50 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardPathFilter$Builder builder():14:14 -> builder
    1:1:boolean isEnabled():55:55 -> isEnabled
    1:3:boolean matches(java.lang.String):59:61 -> matches
com.android.tools.r8.shaking.ProguardPathFilter$Builder -> com.android.tools.r8.shaking.ProguardPathFilter$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardPathFilter$1):17:17 -> <init>
    2:2:void <init>():21:21 -> <init>
    3:4:void <init>():18:19 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardPathFilter$Builder addPattern(com.android.tools.r8.shaking.ProguardPathList):25:25 -> addPattern
    1:1:com.android.tools.r8.shaking.ProguardPathFilter build():40:40 -> build
    1:1:com.android.tools.r8.shaking.ProguardPathFilter$Builder disable():30:30 -> disable
    1:1:com.android.tools.r8.shaking.ProguardPathFilter$Builder enable():35:35 -> enable
com.android.tools.r8.shaking.ProguardPathList -> com.android.tools.r8.shaking.ProguardPathList:
    1:1:void <init>():10:10 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardPathList$Builder builder():13:13 -> builder
    1:1:com.android.tools.r8.shaking.ProguardPathList emptyList():17:17 -> emptyList
com.android.tools.r8.shaking.ProguardPathList$Builder -> com.android.tools.r8.shaking.ProguardPathList$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardPathList$1):22:22 -> <init>
    2:2:void <init>():26:26 -> <init>
    3:3:void <init>():24:24 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardPathList$Builder addFileName(java.lang.String):30:30 -> addFileName
    2:2:com.android.tools.r8.shaking.ProguardPathList$Builder addFileName(java.lang.String,boolean):34:34 -> addFileName
    1:5:com.android.tools.r8.shaking.ProguardPathList build():39:43 -> build
com.android.tools.r8.shaking.ProguardPathList$EmptyPathList -> com.android.tools.r8.shaking.ProguardPathList$EmptyPathList:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardPathList$1):122:122 -> <init>
    2:2:void <init>():124:124 -> <init>
com.android.tools.r8.shaking.ProguardPathList$FileNameMatcher -> com.android.tools.r8.shaking.ProguardPathList$FileNameMatcher:
    1:3:void <init>(boolean,java.lang.String):52:54 -> <init>
    1:1:boolean access$300(com.android.tools.r8.shaking.ProguardPathList$FileNameMatcher,java.lang.String):48:48 -> access$300
    1:1:boolean containsSeparatorsStartingAt(java.lang.String,int):98:98 -> containsSeparatorsStartingAt
    1:1:boolean match(java.lang.String):58:58 -> match
    1:27:boolean matchImpl(java.lang.String,int,java.lang.String,int):62:88 -> matchImpl
    28:28:boolean matchImpl(java.lang.String,int,java.lang.String,int):83:83 -> matchImpl
    29:57:boolean matchImpl(java.lang.String,int,java.lang.String,int):66:94 -> matchImpl
com.android.tools.r8.shaking.ProguardPathList$PathList -> com.android.tools.r8.shaking.ProguardPathList$PathList:
    1:1:void <init>(java.util.List,com.android.tools.r8.shaking.ProguardPathList$1):103:103 -> <init>
    2:3:void <init>(java.util.List):106:107 -> <init>
    1:4:boolean matches(java.lang.String):112:115 -> matches
com.android.tools.r8.shaking.ProguardRuleParserException -> com.android.tools.r8.shaking.ProguardRuleParserException:
    1:5:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):18:22 -> <init>
    6:7:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.Throwable):27:28 -> <init>
    1:1:java.lang.String getDiagnosticMessage():43:43 -> getDiagnosticMessage
    1:1:java.lang.String getMessage():48:48 -> getMessage
    1:1:com.android.tools.r8.origin.Origin getOrigin():33:33 -> getOrigin
    1:1:java.lang.String getParseError():52:52 -> getParseError
    1:1:com.android.tools.r8.position.Position getPosition():38:38 -> getPosition
    1:1:java.lang.String getSnippet():56:56 -> getSnippet
com.android.tools.r8.shaking.ProguardTypeMatcher -> com.android.tools.r8.shaking.ProguardTypeMatcher:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardTypeMatcher$1):23:23 -> <init>
    2:2:void <init>():31:31 -> <init>
    1:18:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):77:94 -> create
    19:19:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):93:93 -> create
    20:20:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):90:90 -> create
    21:21:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):88:88 -> create
    22:22:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):86:86 -> create
    23:23:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):84:84 -> create
    24:38:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):82:96 -> create
    39:39:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.graph.DexType):101:101 -> create
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher defaultAllMatcher():105:105 -> defaultAllMatcher
    1:1:java.lang.Iterable getWildcards():55:55 -> getWildcards
    1:1:java.lang.Iterable getWildcardsOrEmpty(com.android.tools.r8.shaking.ProguardTypeMatcher):59:59 -> getWildcardsOrEmpty
    1:5:boolean matches(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):45:49 -> matches
    1:1:boolean matchesSpecificType():123:123 -> matchesSpecificType
com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType -> com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType:
    1:2:void <clinit>():35:36 -> <clinit>
    3:3:void <clinit>():34:34 -> <clinit>
    1:1:void <init>(java.lang.String,int):34:34 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType valueOf(java.lang.String):34:34 -> valueOf
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType[] values():34:34 -> values
com.android.tools.r8.shaking.ProguardTypeMatcher$MatchAllTypes -> com.android.tools.r8.shaking.ProguardTypeMatcher$MatchAllTypes:
    1:1:void <clinit>():128:128 -> <clinit>
    1:1:void <init>():133:133 -> <init>
    2:3:void <init>(com.android.tools.r8.shaking.ProguardWildcard):136:137 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher access$000():126:126 -> access$000
    1:1:boolean equals(java.lang.Object):163:163 -> equals
    1:1:java.lang.Iterable getWildcards():148:148 -> getWildcards
    1:1:int hashCode():168:168 -> hashCode
    1:1:boolean matches(com.android.tools.r8.graph.DexType):142:142 -> matches
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher materialize(com.android.tools.r8.graph.DexItemFactory):126:126 -> materialize
    2:2:com.android.tools.r8.shaking.ProguardTypeMatcher$MatchAllTypes materialize(com.android.tools.r8.graph.DexItemFactory):153:153 -> materialize
com.android.tools.r8.shaking.ProguardTypeMatcher$MatchAnyArgSequence -> com.android.tools.r8.shaking.ProguardTypeMatcher$MatchAnyArgSequence:
    1:1:void <clinit>():174:174 -> <clinit>
    1:1:void <init>():172:172 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher access$100():172:172 -> access$100
    1:1:boolean equals(java.lang.Object):193:193 -> equals
    1:1:int hashCode():198:198 -> hashCode
com.android.tools.r8.shaking.ProguardTypeMatcher$MatchBasicTypes -> com.android.tools.r8.shaking.ProguardTypeMatcher$MatchBasicTypes:
    1:1:void <clinit>():259:259 -> <clinit>
    1:1:void <init>():264:264 -> <init>
    2:3:void <init>(com.android.tools.r8.shaking.ProguardWildcard):267:268 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher access$400():257:257 -> access$400
    1:1:boolean equals(java.lang.Object):297:297 -> equals
    1:1:java.lang.Iterable getWildcards():282:282 -> getWildcards
    1:1:int hashCode():302:302 -> hashCode
    1:2:boolean matches(com.android.tools.r8.graph.DexType):273:274 -> matches
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher materialize(com.android.tools.r8.graph.DexItemFactory):257:257 -> materialize
    2:2:com.android.tools.r8.shaking.ProguardTypeMatcher$MatchBasicTypes materialize(com.android.tools.r8.graph.DexItemFactory):287:287 -> materialize
com.android.tools.r8.shaking.ProguardTypeMatcher$MatchClassTypes -> com.android.tools.r8.shaking.ProguardTypeMatcher$MatchClassTypes:
    1:5:void <clinit>():202:206 -> <clinit>
    1:1:void <init>(java.lang.String):213:213 -> <init>
    2:5:void <init>(java.lang.String,com.android.tools.r8.shaking.ProguardWildcard):216:219 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher access$200():202:202 -> access$200
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher access$300():202:202 -> access$300
    1:1:boolean equals(java.lang.Object):248:248 -> equals
    1:1:java.lang.Iterable getWildcards():233:233 -> getWildcards
    1:1:int hashCode():253:253 -> hashCode
    1:2:boolean matches(com.android.tools.r8.graph.DexType):224:225 -> matches
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher materialize(com.android.tools.r8.graph.DexItemFactory):202:202 -> materialize
    2:2:com.android.tools.r8.shaking.ProguardTypeMatcher$MatchClassTypes materialize(com.android.tools.r8.graph.DexItemFactory):238:238 -> materialize
    1:1:java.lang.String toString():243:243 -> toString
com.android.tools.r8.shaking.ProguardTypeMatcher$MatchSpecificType -> com.android.tools.r8.shaking.ProguardTypeMatcher$MatchSpecificType:
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardTypeMatcher$1):306:306 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.DexType):310:311 -> <init>
    1:2:boolean equals(java.lang.Object):326:327 -> equals
    1:1:com.android.tools.r8.graph.DexType getSpecificType():344:344 -> getSpecificType
    1:1:int hashCode():334:334 -> hashCode
    1:1:boolean matches(com.android.tools.r8.graph.DexType):316:316 -> matches
    1:1:java.lang.String toString():321:321 -> toString
com.android.tools.r8.shaking.ProguardTypeMatcher$MatchTypePattern -> com.android.tools.r8.shaking.ProguardTypeMatcher$MatchTypePattern:
    1:1:void <clinit>():348:348 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.shaking.ProguardTypeMatcher$1):348:348 -> <init>
    2:5:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):355:358 -> <init>
    1:1:boolean containsSeparatorsStartingAt(java.lang.String,int):571:571 -> containsSeparatorsStartingAt
    1:3:boolean equals(java.lang.Object):589:591 -> equals
    1:1:java.lang.Iterable getWildcards():374:374 -> getWildcards
    1:1:int hashCode():598:598 -> hashCode
    1:5:boolean isArrayType(java.lang.String):575:579 -> isArrayType
    1:92:boolean matchClassOrTypeNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):470:561 -> matchClassOrTypeNameImpl
    93:116:boolean matchClassOrTypeNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):534:557 -> matchClassOrTypeNameImpl
    117:174:boolean matchClassOrTypeNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):474:531 -> matchClassOrTypeNameImpl
    175:212:boolean matchClassOrTypeNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):530:567 -> matchClassOrTypeNameImpl
    1:4:boolean matches(com.android.tools.r8.graph.DexType):364:367 -> matches
    1:8:com.android.tools.r8.shaking.ProguardTypeMatcher materialize(com.android.tools.r8.graph.DexItemFactory):379:386 -> materialize
    9:32:com.android.tools.r8.shaking.ProguardTypeMatcher materialize(com.android.tools.r8.graph.DexItemFactory):385:408 -> materialize
    1:47:java.lang.String removeMaterializedBackReferencesFromPattern(java.lang.String,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):413:459 -> removeMaterializedBackReferencesFromPattern
    1:1:java.lang.String toString():584:584 -> toString
com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule -> com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule$1):10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):46:46 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule$Builder builder():52:52 -> builder
com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule$Builder -> com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule$1):12:12 -> <init>
    2:2:void <init>():16:16 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
    2:2:com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule build():26:26 -> build
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
com.android.tools.r8.shaking.ProguardWildcard -> com.android.tools.r8.shaking.ProguardWildcard:
    1:1:void <init>():8:8 -> <init>
com.android.tools.r8.shaking.ProguardWildcard$BackReference -> com.android.tools.r8.shaking.ProguardWildcard$BackReference:
    1:2:void <init>(int):85:86 -> <init>
    1:1:java.lang.String getCaptured():105:105 -> getCaptured
    1:1:com.android.tools.r8.shaking.ProguardWildcard materialize():80:80 -> materialize
    2:6:com.android.tools.r8.shaking.ProguardWildcard$BackReference materialize():110:114 -> materialize
    1:1:void setCaptured(java.lang.String):95:95 -> setCaptured
    1:1:void setReference(com.android.tools.r8.shaking.ProguardWildcard$Pattern):90:90 -> setReference
    1:1:java.lang.String toString():130:130 -> toString
com.android.tools.r8.shaking.ProguardWildcard$Pattern -> com.android.tools.r8.shaking.ProguardWildcard$Pattern:
    1:1:void <init>(java.lang.String):35:35 -> <init>
    2:5:void <init>(java.lang.String):33:36 -> <init>
    1:1:void clearCaptured():46:46 -> clearCaptured
    1:1:java.lang.String getCaptured():51:51 -> getCaptured
    1:1:com.android.tools.r8.shaking.ProguardWildcard materialize():31:31 -> materialize
    2:6:com.android.tools.r8.shaking.ProguardWildcard$Pattern materialize():56:60 -> materialize
    1:1:void setCaptured(java.lang.String):41:41 -> setCaptured
    1:1:java.lang.String toString():76:76 -> toString
com.android.tools.r8.shaking.RootSetBuilder -> com.android.tools.r8.shaking.RootSetBuilder:
    1:1:void <clinit>():69:69 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,java.lang.Iterable):108:108 -> <init>
    2:40:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,java.lang.Iterable):74:112 -> <init>
    41:41:void <init>(com.android.tools.r8.graph.AppView,java.util.Collection):117:117 -> <init>
    42:42:void <init>(com.android.tools.r8.graph.AppView):121:121 -> <init>
    boolean lambda$process$0(com.android.tools.r8.graph.DexDefinition) -> a
    1:6:void lambda$runPerRule$4(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):263:268 -> a
    7:8:void lambda$markMatchingVisibleMethods$5(java.util.Map,java.util.Collection,java.util.Set,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexEncodedMethod):447:448 -> a
    9:10:void lambda$markMatchingMethods$8(java.util.Map,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexEncodedMethod):632:633 -> a
    11:12:void lambda$markMatchingFields$10(java.util.Map,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexEncodedField):665:666 -> a
    13:13:boolean lambda$anySourceMatchesInheritanceRuleDirectly$11(boolean,com.android.tools.r8.graph.DexType):823:823 -> a
    14:14:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    14:14:boolean lambda$anySourceMatchesInheritanceRuleDirectly$11(boolean,com.android.tools.r8.graph.DexType):823 -> a
    15:15:boolean lambda$anySourceMatchesInheritanceRuleDirectly$11(boolean,com.android.tools.r8.graph.DexType):823:823 -> a
    16:16:java.util.Set lambda$addItemToSets$14(com.android.tools.r8.graph.DexType):1053:1053 -> a
    17:17:java.util.Map lambda$addItemToSets$15(com.android.tools.r8.graph.DexReference):1061:1061 -> a
    1:1:com.android.tools.r8.graph.AppView access$300(com.android.tools.r8.shaking.RootSetBuilder):69:69 -> access$300
    1:1:com.android.tools.r8.shaking.DexStringCache access$400(com.android.tools.r8.shaking.RootSetBuilder):69:69 -> access$400
    1:1:boolean access$500(com.android.tools.r8.shaking.RootSetBuilder,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):69:69 -> access$500
    1:1:java.util.Queue access$600(com.android.tools.r8.shaking.RootSetBuilder):69:69 -> access$600
    1:1:com.android.tools.r8.graph.DexDefinition access$700(com.android.tools.r8.graph.DexDefinition,java.util.Map):69:69 -> access$700
    1:1:void access$800(com.android.tools.r8.shaking.RootSetBuilder,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):69:69 -> access$800
    1:21:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1000:1020 -> addItemToSets
    22:22:boolean com.android.tools.r8.graph.DexMethod.isLambdaDeserializeMethod(com.android.tools.r8.graph.DexItemFactory):194:194 -> addItemToSets
    22:22:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1020 -> addItemToSets
    23:26:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1026:1029 -> addItemToSets
    27:27:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> addItemToSets
    27:27:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1029 -> addItemToSets
    28:33:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1030:1035 -> addItemToSets
    34:55:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1032:1053 -> addItemToSets
    56:56:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> addItemToSets
    56:56:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1053 -> addItemToSets
    57:113:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1053:1109 -> addItemToSets
    114:114:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1103:1103 -> addItemToSets
    115:133:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1100:1118 -> addItemToSets
    134:157:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1115:1138 -> addItemToSets
    158:166:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1132:1140 -> addItemToSets
    167:195:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1123:1151 -> addItemToSets
    196:240:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):1149:1193 -> addItemToSets
    1:2:boolean allRulesSatisfied(java.util.Collection,com.android.tools.r8.graph.DexClass):829:830 -> allRulesSatisfied
    1:26:boolean anyImplementedInterfaceMatchesImplementsRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):787:812 -> anyImplementedInterfaceMatchesImplementsRule
    1:6:boolean anySourceMatchesInheritanceRuleDirectly(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,boolean):819:824 -> anySourceMatchesInheritanceRuleDirectly
    1:13:boolean anySuperTypeMatchesExtendsRule(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardConfigurationRule):755:767 -> anySuperTypeMatchesExtendsRule
    1:1:boolean lambda$process$1(com.android.tools.r8.graph.DexDefinition):175:175 -> b
    2:3:void lambda$markMatchingVisibleMethods$6(java.util.Map,java.util.Collection,java.util.Set,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexEncodedMethod):455:456 -> b
    4:5:void lambda$markMatchingOverriddenMethods$7(java.util.Map,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexEncodedMethod):617:618 -> b
    6:7:void lambda$markMatchingVisibleFields$9(java.util.Map,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexEncodedField):650:651 -> b
    8:8:java.util.Set lambda$addItemToSets$16(com.android.tools.r8.graph.DexReference):1062:1062 -> b
    1:9:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet buildConsequentRootSet():394:402 -> buildConsequentRootSet
    boolean lambda$process$2(com.android.tools.r8.graph.DexDefinition) -> c
    1:1:java.util.Set lambda$addItemToSets$17(com.android.tools.r8.graph.DexReference):1065:1065 -> c
    1:1:boolean canInsertForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):584:584 -> canInsertForwardingMethod
    2:3:boolean com.android.tools.r8.utils.ArrayUtils.contains(java.lang.Object[],java.lang.Object):110:111 -> canInsertForwardingMethod
    2:3:boolean canInsertForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):585 -> canInsertForwardingMethod
    1:1:boolean containsAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.graph.DexClass):871:871 -> containsAnnotation
    2:6:boolean containsAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.graph.DexEncodedMethod):875:879 -> containsAnnotation
    7:7:boolean containsAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.graph.DexEncodedField):887:887 -> containsAnnotation
    8:12:boolean containsAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.graph.DexAnnotationSet):895:899 -> containsAnnotation
    com.android.tools.r8.graph.DexReference lambda$addItemToSets$18(com.android.tools.r8.graph.DexReference) -> d
    boolean lambda$process$3(com.android.tools.r8.graph.DexDefinition) -> d
    com.android.tools.r8.graph.DexReference lambda$addItemToSets$19(com.android.tools.r8.graph.DexReference) -> e
    1:1:java.util.Map lambda$includeDescriptor$12(com.android.tools.r8.graph.DexReference):972:972 -> f
    1:1:java.util.Set lambda$includeDescriptor$13(com.android.tools.r8.graph.DexReference):973:973 -> g
    1:10:void includeDescriptor(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardKeepRuleBase):957:966 -> includeDescriptor
    11:11:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> includeDescriptor
    11:11:void includeDescriptor(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardKeepRuleBase):966 -> includeDescriptor
    12:21:void includeDescriptor(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardKeepRuleBase):967:976 -> includeDescriptor
    1:11:void includeDescriptorClasses(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardKeepRuleBase):980:990 -> includeDescriptorClasses
    1:2:void markClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):950:951 -> markClass
    3:3:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markClass
    3:3:void markClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):951 -> markClass
    4:4:void markClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):953:953 -> markClass
    1:4:void markField(com.android.tools.r8.graph.DexEncodedField,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):938:941 -> markField
    5:5:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markField
    5:5:void markField(com.android.tools.r8.graph.DexEncodedField,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):941 -> markField
    6:6:void markField(com.android.tools.r8.graph.DexEncodedField,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):944:944 -> markField
    1:1:void markMatchingFields(com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,com.android.tools.r8.shaking.ProguardIfRule):663:663 -> markMatchingFields
    1:1:void markMatchingMethods(com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,com.android.tools.r8.shaking.ProguardIfRule):630:630 -> markMatchingMethods
    1:11:void markMatchingOverriddenMethods(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,boolean,com.android.tools.r8.shaking.ProguardIfRule):596:606 -> markMatchingOverriddenMethods
    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> markMatchingOverriddenMethods
    12:12:void markMatchingOverriddenMethods(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,boolean,com.android.tools.r8.shaking.ProguardIfRule):606 -> markMatchingOverriddenMethods
    13:23:void markMatchingOverriddenMethods(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,boolean,com.android.tools.r8.shaking.ProguardIfRule):610:620 -> markMatchingOverriddenMethods
    1:9:void markMatchingVisibleFields(com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,boolean,com.android.tools.r8.shaking.ProguardIfRule):645:653 -> markMatchingVisibleFields
    1:40:void markMatchingVisibleMethods(com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,boolean,com.android.tools.r8.shaking.ProguardIfRule):433:472 -> markMatchingVisibleMethods
    1:8:void markMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection,java.util.Set,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):914:921 -> markMethod
    9:9:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> markMethod
    9:9:void markMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection,java.util.Set,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):921 -> markMethod
    10:12:void markMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection,java.util.Set,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardIfRule):925:927 -> markMethod
    1:59:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):129:187 -> process
    60:79:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):164:183 -> process
    80:158:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):157:235 -> process
    159:159:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):224:224 -> process
    160:162:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):212:214 -> process
    163:165:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):213:215 -> process
    166:166:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):194:194 -> process
    1:12:void propagateAssumeRules(com.android.tools.r8.graph.DexClass):337:348 -> propagateAssumeRules
    13:44:void propagateAssumeRules(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,java.util.Set,java.util.Map):358:389 -> propagateAssumeRules
    1:4:boolean ruleSatisfied(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexClass):842:845 -> ruleSatisfied
    1:3:boolean ruleSatisfiedByFields(com.android.tools.r8.shaking.ProguardMemberRule,java.lang.Iterable):860:862 -> ruleSatisfiedByFields
    1:3:boolean ruleSatisfiedByMethods(com.android.tools.r8.shaking.ProguardMemberRule,java.lang.Iterable):849:851 -> ruleSatisfiedByMethods
    1:33:com.android.tools.r8.shaking.RootSetBuilder$RootSet run(java.util.concurrent.ExecutorService):275:307 -> run
    34:61:com.android.tools.r8.shaking.RootSetBuilder$RootSet run(java.util.concurrent.ExecutorService):306:333 -> run
    62:62:com.android.tools.r8.shaking.RootSetBuilder$RootSet run(java.util.concurrent.ExecutorService):291:291 -> run
    1:16:void runPerRule(java.util.concurrent.ExecutorService,java.util.List,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):245:260 -> runPerRule
    17:17:void runPerRule(java.util.concurrent.ExecutorService,java.util.List,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):259:259 -> runPerRule
    1:2:boolean satisfyAccessFlag(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexClass):728:729 -> satisfyAccessFlag
    1:1:boolean satisfyAnnotation(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexClass):733:733 -> satisfyAnnotation
    1:1:boolean satisfyClassType(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexClass):724:724 -> satisfyClassType
    1:6:boolean satisfyExtendsRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):745:750 -> satisfyExtendsRule
    1:6:boolean satisfyImplementsRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):773:778 -> satisfyImplementsRule
    1:5:boolean satisfyInheritanceRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):737:741 -> satisfyInheritanceRule
    1:10:com.android.tools.r8.graph.DexDefinition testAndGetPrecondition(com.android.tools.r8.graph.DexDefinition,java.util.Map):412:421 -> testAndGetPrecondition
    1:14:void writeSeeds(com.android.tools.r8.shaking.AppInfoWithLiveness,java.io.PrintStream,java.util.function.Predicate):673:686 -> writeSeeds
    15:40:void writeSeeds(com.android.tools.r8.shaking.AppInfoWithLiveness,java.io.PrintStream,java.util.function.Predicate):681:706 -> writeSeeds
    41:56:void writeSeeds(com.android.tools.r8.shaking.AppInfoWithLiveness,java.io.PrintStream,java.util.function.Predicate):705:720 -> writeSeeds
com.android.tools.r8.shaking.RootSetBuilder$1 -> com.android.tools.r8.shaking.RootSetBuilder$1:
    1:1:void <clinit>():1153:1153 -> <clinit>
    2:2:void <clinit>():1142:1142 -> <clinit>
    3:3:void <clinit>():1130:1130 -> <clinit>
    4:4:void <clinit>():1098:1098 -> <clinit>
    5:5:void <clinit>():154:154 -> <clinit>
com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet -> com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet:
    1:1:void <init>(java.util.Set,java.util.Set,java.util.Map,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.List,com.android.tools.r8.shaking.RootSetBuilder$1):1583:1583 -> <init>
    2:10:void <init>(java.util.Set,java.util.Set,java.util.Map,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.List):1601:1609 -> <init>
com.android.tools.r8.shaking.RootSetBuilder$RootSet -> com.android.tools.r8.shaking.RootSetBuilder$RootSet:
    1:1:void <clinit>():1197:1197 -> <clinit>
    1:1:void <init>(java.util.Map,java.util.Set,java.util.Set,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set,java.util.List,com.android.tools.r8.shaking.RootSetBuilder$1):1197:1197 -> <init>
    2:26:void <init>(java.util.Map,java.util.Set,java.util.Set,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,com.android.tools.r8.utils.PredicateSet,java.util.Set,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set,java.util.List):1249:1273 -> <init>
    1:1:com.android.tools.r8.graph.DexDefinition com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexReference):175:175 -> a
    1:1:void lambda$forEachDependentNonStaticMember$7(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Consumer3,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexReference,java.util.Set):1352 -> a
    2:4:void lambda$forEachDependentNonStaticMember$7(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Consumer3,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexReference,java.util.Set):1354:1356 -> a
    5:5:java.util.Set lambda$addConsequentRootSet$0(com.android.tools.r8.graph.DexReference):1302:1302 -> a
    6:6:void lambda$addConsequentRootSet$1(com.android.tools.r8.graph.DexReference,java.util.Set):1302:1302 -> a
    7:8:void lambda$addConsequentRootSet$3(com.android.tools.r8.graph.DexType,java.util.Set):1307:1308 -> a
    9:9:java.util.Set lambda$addConsequentRootSet$2(com.android.tools.r8.graph.DexType):1308:1308 -> a
    10:11:void lambda$addDependentItems$5(com.android.tools.r8.graph.DexReference,java.util.Map):1318:1319 -> a
    12:12:void lambda$toString$9(java.lang.StringBuilder,com.android.tools.r8.graph.DexReference):1575:1575 -> a
    1:14:void addConsequentRootSet(com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet,boolean):1296:1309 -> addConsequentRootSet
    1:1:void addDependentItems(java.util.Map):1315:1315 -> addDependentItems
    1:1:com.android.tools.r8.graph.DexDefinition com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexReference):175:175 -> b
    1:1:void lambda$forEachDependentStaticMember$6(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Consumer3,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexReference,java.util.Set):1338 -> b
    2:3:void lambda$forEachDependentStaticMember$6(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Consumer3,com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexReference,java.util.Set):1339:1340 -> b
    4:4:java.util.Map lambda$addDependentItems$4(com.android.tools.r8.graph.DexReference):1318:1318 -> b
    5:5:java.util.Set lambda$verifyKeptItemsAreKept$8(com.android.tools.r8.graph.DexType):1495:1495 -> b
    1:12:void checkAllRulesAreUsed(com.android.tools.r8.utils.InternalOptions):1277:1288 -> checkAllRulesAreUsed
    13:13:void checkAllRulesAreUsed(com.android.tools.r8.utils.InternalOptions):1285:1285 -> checkAllRulesAreUsed
    14:16:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> checkAllRulesAreUsed
    14:16:void checkAllRulesAreUsed(com.android.tools.r8.utils.InternalOptions):1285 -> checkAllRulesAreUsed
    1:14:void copy(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexReference):1362:1375 -> copy
    1:2:void forEachDependentNonStaticMember(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Consumer3):1349:1350 -> forEachDependentNonStaticMember
    1:2:void forEachDependentStaticMember(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Consumer3):1335:1336 -> forEachDependentStaticMember
    1:2:java.util.Map getDependentItems(com.android.tools.r8.graph.DexDefinition):1327:1328 -> getDependentItems
    3:3:java.util.Map getDependentItems(com.android.tools.r8.graph.DexDefinition):1327:1327 -> getDependentItems
    1:1:java.util.Set getDependentKeepClassCompatRule(com.android.tools.r8.graph.DexType):1323:1323 -> getDependentKeepClassCompatRule
    1:9:boolean isKeptDirectlyOrIndirectly(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.AppInfoWithLiveness):1462:1470 -> isKeptDirectlyOrIndirectly
    1:1:boolean mayBeMinified(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.AppView):1397:1397 -> mayBeMinified
    1:3:boolean mayNotBeMinified(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.AppView):1401:1403 -> mayNotBeMinified
    4:8:boolean mayNotBeMinified(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.AppView):1402:1406 -> mayNotBeMinified
    9:14:boolean mayNotBeMinified(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.AppView):1405:1410 -> mayNotBeMinified
    15:15:boolean mayNotBeMinified(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.AppView):1409:1409 -> mayNotBeMinified
    1:2:void move(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexReference):1388:1389 -> move
    1:5:void prune(com.android.tools.r8.graph.DexReference):1380:1384 -> prune
    1:1:void shouldNotBeMinified(com.android.tools.r8.graph.DexReference):1393:1393 -> shouldNotBeMinified
    1:21:java.lang.String toString():1557:1577 -> toString
    1:4:boolean verifyKeptFieldsAreAccessedAndLive(com.android.tools.r8.shaking.AppInfoWithLiveness):1415:1418 -> verifyKeptFieldsAreAccessedAndLive
    5:5:boolean com.android.tools.r8.graph.DexEncodedField.isStatic():139:139 -> verifyKeptFieldsAreAccessedAndLive
    5:5:boolean verifyKeptFieldsAreAccessedAndLive(com.android.tools.r8.shaking.AppInfoWithLiveness):1420 -> verifyKeptFieldsAreAccessedAndLive
    6:10:boolean verifyKeptFieldsAreAccessedAndLive(com.android.tools.r8.shaking.AppInfoWithLiveness):1420:1424 -> verifyKeptFieldsAreAccessedAndLive
    1:73:boolean verifyKeptItemsAreKept(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo):1477:1549 -> verifyKeptItemsAreKept
    1:11:boolean verifyKeptMethodsAreTargetedAndLive(com.android.tools.r8.shaking.AppInfoWithLiveness):1432:1442 -> verifyKeptMethodsAreTargetedAndLive
    1:5:boolean verifyKeptTypesAreLive(com.android.tools.r8.shaking.AppInfoWithLiveness):1451:1455 -> verifyKeptTypesAreLive
com.android.tools.r8.shaking.RootSetBuilder$SynthesizeMissingInterfaceMethodsForMemberRules -> com.android.tools.r8.shaking.RootSetBuilder$SynthesizeMissingInterfaceMethodsForMemberRules:
    1:1:void <clinit>():481:481 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.RootSetBuilder,com.android.tools.r8.graph.DexProgramClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.shaking.RootSetBuilder$1):481:481 -> <init>
    2:2:void <init>(com.android.tools.r8.shaking.RootSetBuilder,com.android.tools.r8.graph.DexProgramClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,com.android.tools.r8.shaking.ProguardIfRule):495:495 -> <init>
    3:18:void <init>(com.android.tools.r8.shaking.RootSetBuilder,com.android.tools.r8.graph.DexProgramClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,com.android.tools.r8.shaking.ProguardIfRule):487:502 -> <init>
    1:3:void lambda$tryAndKeepMethodOnClass$0(com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.shaking.RootSetBuilder):567:569 -> a
    4:4:void com.android.tools.r8.logging.Log.verbose(java.lang.Class,java.lang.String,java.lang.Object[]):22:22 -> a
    4:4:void lambda$tryAndKeepMethodOnClass$0(com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.shaking.RootSetBuilder):568 -> a
    5:7:void lambda$tryAndKeepMethodOnClass$0(com.android.tools.r8.graph.ProgramMethod,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.shaking.RootSetBuilder):575:577 -> a
    1:1:void run():506:506 -> run
    1:24:void tryAndKeepMethodOnClass(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.ProguardMemberRule):539:562 -> tryAndKeepMethodOnClass
    1:1:void visitAllSuperInterfaces(com.android.tools.r8.graph.DexType):510:510 -> visitAllSuperInterfaces
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> visitAllSuperInterfaces
    2:2:void visitAllSuperInterfaces(com.android.tools.r8.graph.DexType):510 -> visitAllSuperInterfaces
    3:24:void visitAllSuperInterfaces(com.android.tools.r8.graph.DexType):511:532 -> visitAllSuperInterfaces
com.android.tools.r8.shaking.ScopedDexMethodSet -> com.android.tools.r8.shaking.ScopedDexMethodSet:
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>():28:28 -> <init>
    2:2:void <init>(com.android.tools.r8.shaking.ScopedDexMethodSet):31:31 -> <init>
    3:10:void <init>(com.android.tools.r8.shaking.ScopedDexMethodSet):25:32 -> <init>
    1:5:boolean addMethod(com.android.tools.r8.graph.DexEncodedMethod):49:53 -> addMethod
    1:10:com.android.tools.r8.shaking.ScopedDexMethodSet$AddMethodIfMoreVisibleResult addMethodIfMoreVisible(com.android.tools.r8.graph.DexEncodedMethod):58:67 -> addMethodIfMoreVisible
    11:18:com.android.tools.r8.shaking.ScopedDexMethodSet$AddMethodIfMoreVisibleResult addMethodIfMoreVisible(com.android.tools.r8.graph.DexEncodedMethod):64:71 -> addMethodIfMoreVisible
    1:1:boolean contains(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):45:45 -> contains
    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet getParent():75:75 -> getParent
    1:2:com.android.tools.r8.graph.DexEncodedMethod lookup(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):40:41 -> lookup
    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet newNestedScope():36:36 -> newNestedScope
    1:1:void setParent(com.android.tools.r8.shaking.ScopedDexMethodSet):79:79 -> setParent
com.android.tools.r8.shaking.ScopedDexMethodSet$AddMethodIfMoreVisibleResult -> com.android.tools.r8.shaking.ScopedDexMethodSet$AddMethodIfMoreVisibleResult:
    1:3:void <clinit>():17:19 -> <clinit>
    4:4:void <clinit>():16:16 -> <clinit>
    1:1:void <init>(java.lang.String,int):16:16 -> <init>
    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet$AddMethodIfMoreVisibleResult valueOf(java.lang.String):16:16 -> valueOf
    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet$AddMethodIfMoreVisibleResult[] values():16:16 -> values
com.android.tools.r8.shaking.StaticClassMerger -> com.android.tools.r8.shaking.StaticClassMerger:
    1:1:void <clinit>():59:59 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.shaking.MainDexClasses):216:216 -> <init>
    2:21:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.shaking.MainDexClasses):206:225 -> <init>
    1:1:boolean lambda$mayMergeAcrossPackageBoundaries$2(com.android.tools.r8.graph.DexEncodedMethod):431:431 -> a
    2:2:boolean lambda$mayMergeAcrossPackageBoundaries$3(com.android.tools.r8.graph.DexEncodedField):435:435 -> a
    3:3:com.android.tools.r8.com.google.common.base.Equivalence$Wrapper lambda$mergeMethods$5(com.android.tools.r8.utils.MethodSignatureEquivalence,com.android.tools.r8.graph.DexEncodedMethod):496:496 -> a
    4:4:boolean lambda$mergeMethods$6(java.util.Set,com.android.tools.r8.utils.MethodSignatureEquivalence,com.android.tools.r8.graph.DexMethod):500:500 -> a
    5:5:com.android.tools.r8.com.google.common.base.Equivalence$Wrapper lambda$mergeFields$7(com.android.tools.r8.utils.FieldSignatureEquivalence,com.android.tools.r8.graph.DexEncodedField):533:533 -> a
    6:6:boolean lambda$mergeFields$8(java.util.Set,com.android.tools.r8.utils.FieldSignatureEquivalence,com.android.tools.r8.graph.DexField):537:537 -> a
    1:1:com.android.tools.r8.com.google.common.base.Equivalence access$000(com.android.tools.r8.shaking.StaticClassMerger):59:59 -> access$000
    1:1:com.android.tools.r8.com.google.common.base.Equivalence access$100(com.android.tools.r8.shaking.StaticClassMerger):59:59 -> access$100
    1:1:boolean lambda$satisfiesMergeCriteria$0(com.android.tools.r8.graph.DexEncodedField):278:278 -> b
    2:2:boolean lambda$mayMergeAcrossPackageBoundaries$4(com.android.tools.r8.graph.DexEncodedMethod):443:443 -> b
    1:13:com.android.tools.r8.graph.GraphLense buildGraphLense():246:258 -> buildGraphLense
    14:23:com.android.tools.r8.graph.GraphLense buildGraphLense():247:256 -> buildGraphLense
    1:6:boolean lambda$satisfiesMergeCriteria$1(com.android.tools.r8.graph.DexEncodedMethod):294:299 -> c
    1:6:void clearRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key):412:417 -> clearRepresentative
    7:11:void clearRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key):416:420 -> clearRepresentative
    1:9:com.android.tools.r8.shaking.StaticClassMerger$Representative getOrCreateRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key,com.android.tools.r8.graph.DexProgramClass):379:387 -> getOrCreateRepresentative
    1:1:boolean isValidRepresentative(com.android.tools.r8.graph.DexProgramClass):324:324 -> isValidRepresentative
    1:25:boolean mayMergeAcrossPackageBoundaries(com.android.tools.r8.graph.DexProgramClass):426:450 -> mayMergeAcrossPackageBoundaries
    1:8:boolean merge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.StaticClassMerger$MergeGroup):328:335 -> merge
    9:9:boolean merge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.StaticClassMerger$MergeGroup):331:331 -> merge
    10:44:boolean merge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key):339:373 -> merge
    1:31:com.android.tools.r8.graph.DexEncodedField[] mergeFields(java.util.List,java.util.List,com.android.tools.r8.graph.DexProgramClass):521:551 -> mergeFields
    1:20:java.util.List mergeMethods(java.util.List,java.util.List,com.android.tools.r8.graph.DexProgramClass):493:512 -> mergeMethods
    1:6:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):459:464 -> moveMembersFromSourceToTarget
    7:23:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):460:476 -> moveMembersFromSourceToTarget
    24:27:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):475:478 -> moveMembersFromSourceToTarget
    28:31:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):477:480 -> moveMembersFromSourceToTarget
    32:38:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):479:485 -> moveMembersFromSourceToTarget
    1:13:com.android.tools.r8.graph.DexEncodedField renameFieldIfNeeded(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass,java.util.function.Predicate):579:591 -> renameFieldIfNeeded
    1:14:com.android.tools.r8.graph.DexEncodedMethod renameMethodIfNeeded(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass,java.util.function.Predicate):559:572 -> renameMethodIfNeeded
    1:12:com.android.tools.r8.graph.GraphLense run():229:240 -> run
    13:19:com.android.tools.r8.graph.GraphLense run():236:242 -> run
    1:41:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup satisfiesMergeCriteria(com.android.tools.r8.graph.DexProgramClass):262:302 -> satisfiesMergeCriteria
    42:42:boolean com.android.tools.r8.graph.DexClass.classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView):786:786 -> satisfiesMergeCriteria
    42:42:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup satisfiesMergeCriteria(com.android.tools.r8.graph.DexProgramClass):302 -> satisfiesMergeCriteria
    43:53:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup satisfiesMergeCriteria(com.android.tools.r8.graph.DexProgramClass):309:319 -> satisfiesMergeCriteria
    1:8:void setRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key,com.android.tools.r8.shaking.StaticClassMerger$Representative):391:398 -> setRepresentative
    9:20:void setRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key,com.android.tools.r8.shaking.StaticClassMerger$Representative):394:405 -> setRepresentative
    21:29:void setRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key,com.android.tools.r8.shaking.StaticClassMerger$Representative):400:408 -> setRepresentative
com.android.tools.r8.shaking.StaticClassMerger$1 -> com.android.tools.r8.shaking.StaticClassMerger$1:
    1:1:void <clinit>():113:113 -> <clinit>
com.android.tools.r8.shaking.StaticClassMerger$MergeGroup -> com.android.tools.r8.shaking.StaticClassMerger$MergeGroup:
    1:5:void <clinit>():61:65 -> <clinit>
    6:16:void <clinit>():61:71 -> <clinit>
    1:1:void <init>(java.lang.String,int):61:61 -> <init>
    1:9:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key globalKey():113:121 -> globalKey
    10:10:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key globalKey():119:119 -> globalKey
    11:11:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key globalKey():117:117 -> globalKey
    1:2:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key key(java.lang.String):126:127 -> key
    1:9:java.lang.String toString():132:140 -> toString
    1:1:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup valueOf(java.lang.String):61:61 -> valueOf
    1:1:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup[] values():61:61 -> values
com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key -> com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key:
    1:3:void <init>(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup,java.lang.String):77:79 -> <init>
    1:1:java.lang.String access$400(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key):73:73 -> access$400
    1:5:boolean equals(java.lang.Object):104:108 -> equals
    1:1:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup getMergeGroup():83:83 -> getMergeGroup
    1:1:java.lang.String getPackageOrGlobal():87:87 -> getPackageOrGlobal
    1:1:int hashCode():96:96 -> hashCode
    1:1:boolean isGlobal():91:91 -> isGlobal
com.android.tools.r8.shaking.StaticClassMerger$Representative -> com.android.tools.r8.shaking.StaticClassMerger$Representative:
    1:1:void <clinit>():151:151 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.StaticClassMerger,com.android.tools.r8.graph.DexProgramClass):162:162 -> <init>
    2:9:void <init>(com.android.tools.r8.shaking.StaticClassMerger,com.android.tools.r8.graph.DexProgramClass):157:164 -> <init>
    1:1:boolean access$200(com.android.tools.r8.shaking.StaticClassMerger$Representative):151:151 -> access$200
    1:1:com.android.tools.r8.graph.DexProgramClass access$300(com.android.tools.r8.shaking.StaticClassMerger$Representative):151:151 -> access$300
    1:12:void include(com.android.tools.r8.graph.DexProgramClass):169:180 -> include
    1:5:boolean isFull():189:193 -> isFull
com.android.tools.r8.shaking.TreePruner -> com.android.tools.r8.shaking.TreePruner:
    1:1:void <clinit>():34:34 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):43:43 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.TreePrunerConfiguration):46:46 -> <init>
    3:20:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.TreePrunerConfiguration):39:56 -> <init>
    1:1:void lambda$new$0(com.android.tools.r8.utils.InternalOptions,java.lang.String):54:54 -> a
    2:2:boolean lambda$clearDeadNestMembers$1(com.android.tools.r8.graph.NestMemberClassAttribute):204:204 -> a
    3:3:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    3:3:boolean lambda$clearDeadNestMembers$1(com.android.tools.r8.graph.NestMemberClassAttribute):204 -> a
    4:4:boolean lambda$clearDeadNestMembers$1(com.android.tools.r8.graph.NestMemberClassAttribute):205:205 -> a
    5:5:boolean lambda$reachableMethods$2(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DexEncodedMethod):260:260 -> a
    6:6:boolean lambda$reachableFields$3(com.android.tools.r8.shaking.AppInfoWithLiveness,com.android.tools.r8.graph.DexEncodedField):321:321 -> a
    1:1:void claimNestOwnership(com.android.tools.r8.graph.DexClass):209:209 -> claimNestOwnership
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> claimNestOwnership
    2:2:void claimNestOwnership(com.android.tools.r8.graph.DexClass):209 -> claimNestOwnership
    3:6:void claimNestOwnership(com.android.tools.r8.graph.DexClass):214:217 -> claimNestOwnership
    7:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> claimNestOwnership
    7:7:void claimNestOwnership(com.android.tools.r8.graph.DexClass):217 -> claimNestOwnership
    8:14:void claimNestOwnership(com.android.tools.r8.graph.DexClass):219:225 -> claimNestOwnership
    1:2:void clearDeadNestMembers(com.android.tools.r8.graph.DexClass):201:202 -> clearDeadNestMembers
    1:2:int firstUnreachableIndex(java.util.List,java.util.function.Predicate):248:249 -> firstUnreachableIndex
    1:1:java.util.Collection getMethodsToKeepForConfigurationDebugging():356:356 -> getMethodsToKeepForConfigurationDebugging
    1:35:java.util.List getNewProgramClasses(java.util.List):77:111 -> getNewProgramClasses
    1:1:java.util.Collection getRemovedClasses():352:352 -> getRemovedClasses
    1:4:boolean isAttributeReferencingPrunedItem(com.android.tools.r8.graph.EnclosingMethodAttribute):231:234 -> isAttributeReferencingPrunedItem
    1:6:boolean isAttributeReferencingPrunedType(com.android.tools.r8.graph.InnerClassAttribute):238:243 -> isAttributeReferencingPrunedType
    1:1:boolean isTypeLive(com.android.tools.r8.graph.DexType):195:195 -> isTypeLive
    1:22:void pruneMembersAndAttributes(com.android.tools.r8.graph.DexProgramClass):156:177 -> pruneMembersAndAttributes
    1:20:void pruneUnusedInterfaces(com.android.tools.r8.graph.DexProgramClass):119:138 -> pruneUnusedInterfaces
    1:30:com.android.tools.r8.graph.DexEncodedField[] reachableFields(java.util.List):319:348 -> reachableFields
    1:15:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):257:271 -> reachableMethods
    16:16:com.android.tools.r8.graph.DexMethod com.android.tools.r8.graph.DexEncodedMethod.getKey():1168:1168 -> reachableMethods
    16:16:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):271 -> reachableMethods
    17:24:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):271:278 -> reachableMethods
    25:30:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):275:280 -> reachableMethods
    31:31:com.android.tools.r8.graph.DexMethod com.android.tools.r8.graph.DexEncodedMethod.getKey():1168:1168 -> reachableMethods
    31:31:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):280 -> reachableMethods
    32:57:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):280:305 -> reachableMethods
    58:58:boolean com.android.tools.r8.utils.InternalOptions.isGeneratingClassFiles():345:345 -> reachableMethods
    58:58:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexEncodedMethod.toEmptyThrowingMethod(com.android.tools.r8.utils.InternalOptions):753 -> reachableMethods
    58:58:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):305 -> reachableMethods
    59:60:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.DexEncodedMethod.toEmptyThrowingMethod(com.android.tools.r8.utils.InternalOptions):754:755 -> reachableMethods
    59:60:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):305 -> reachableMethods
    61:72:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):304:315 -> reachableMethods
    1:2:com.android.tools.r8.graph.DexApplication$Builder removeUnused(com.android.tools.r8.graph.DexApplication):72:73 -> removeUnused
    1:8:void retainReachableInterfacesFrom(com.android.tools.r8.graph.DexType,java.util.Set):143:150 -> retainReachableInterfacesFrom
    1:9:void rewriteNestAttributes(com.android.tools.r8.graph.DexProgramClass):181:189 -> rewriteNestAttributes
    1:7:com.android.tools.r8.graph.DexApplication run(com.android.tools.r8.graph.DexApplication):60:66 -> run
com.android.tools.r8.shaking.UnusedArgumentRule -> com.android.tools.r8.shaking.UnusedArgumentRule:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.UnusedArgumentRule$1):10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):57:57 -> <init>
    1:1:com.android.tools.r8.shaking.UnusedArgumentRule$Builder builder():74:74 -> builder
com.android.tools.r8.shaking.UnusedArgumentRule$Builder -> com.android.tools.r8.shaking.UnusedArgumentRule$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.UnusedArgumentRule$1):12:12 -> <init>
    2:2:void <init>():16:16 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
    2:4:com.android.tools.r8.shaking.UnusedArgumentRule build():26:28 -> build
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
com.android.tools.r8.shaking.UsagePrinter -> com.android.tools.r8.shaking.UsagePrinter:
    1:4:void <clinit>():12:15 -> <clinit>
    1:1:void <init>(java.util.function.Consumer):21:21 -> <init>
    2:6:void <init>(java.util.function.Consumer):18:22 -> <init>
    1:1:void append(java.lang.String):26:26 -> append
    1:6:void printClazzPrefixIfNecessary():47:52 -> printClazzPrefixIfNecessary
    1:2:void printUnusedClass(com.android.tools.r8.graph.DexProgramClass):30:31 -> printUnusedClass
    1:11:void printUnusedField(com.android.tools.r8.graph.DexEncodedField):79:89 -> printUnusedField
    1:19:void printUnusedMethod(com.android.tools.r8.graph.DexEncodedMethod):57:75 -> printUnusedMethod
    1:2:void visited():42:43 -> visited
    1:2:void visiting(com.android.tools.r8.graph.DexProgramClass):36:37 -> visiting
com.android.tools.r8.shaking.UsagePrinter$NoOpUsagePrinter -> com.android.tools.r8.shaking.UsagePrinter$NoOpUsagePrinter:
    1:1:void <init>():96:96 -> <init>
com.android.tools.r8.shaking.VerticalClassMerger -> com.android.tools.r8.shaking.VerticalClassMerger:
    1:1:void <clinit>():88:88 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing,com.android.tools.r8.shaking.MainDexClasses):219:219 -> <init>
    2:41:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing,com.android.tools.r8.shaking.MainDexClasses):192:231 -> <init>
    1:1:boolean lambda$isStillMergeCandidate$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):423:423 -> a
    1:1:java.util.Set access$000(com.android.tools.r8.shaking.VerticalClassMerger):88:88 -> access$000
    1:1:com.android.tools.r8.shaking.AppInfoWithLiveness access$100(com.android.tools.r8.shaking.VerticalClassMerger):88:88 -> access$100
    1:1:com.android.tools.r8.ir.optimize.MethodPoolCollection access$1000(com.android.tools.r8.shaking.VerticalClassMerger):88:88 -> access$1000
    1:1:void access$1100(com.android.tools.r8.graph.DexEncodedMethod):88:88 -> access$1100
    1:1:com.android.tools.r8.ir.optimize.info.OptimizationFeedback access$1200(com.android.tools.r8.shaking.VerticalClassMerger):88:88 -> access$1200
    1:1:java.util.Map access$1300(com.android.tools.r8.shaking.VerticalClassMerger):88:88 -> access$1300
    1:1:java.util.Map access$1400(com.android.tools.r8.shaking.VerticalClassMerger):88:88 -> access$1400
    1:1:com.android.tools.r8.graph.DexApplication access$1500(com.android.tools.r8.shaking.VerticalClassMerger):88:88 -> access$1500
    1:1:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder access$1600(com.android.tools.r8.shaking.VerticalClassMerger):88:88 -> access$1600
    1:1:java.util.List access$1700(com.android.tools.r8.shaking.VerticalClassMerger):88:88 -> access$1700
    1:1:java.util.Collection access$1800(com.android.tools.r8.shaking.VerticalClassMerger):88:88 -> access$1800
    1:1:com.android.tools.r8.graph.AppView access$200(com.android.tools.r8.shaking.VerticalClassMerger):88:88 -> access$200
    1:1:java.util.concurrent.ExecutorService access$800(com.android.tools.r8.shaking.VerticalClassMerger):88:88 -> access$800
    1:1:com.android.tools.r8.utils.Timing access$900(com.android.tools.r8.shaking.VerticalClassMerger):88:88 -> access$900
    1:17:com.android.tools.r8.shaking.VerticalClassMerger$AbortReason disallowInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):1631:1647 -> disallowInlining
    18:26:com.android.tools.r8.shaking.VerticalClassMerger$AbortReason disallowInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):1646:1654 -> disallowInlining
    1:18:void extractPinnedItems(java.lang.Iterable,com.android.tools.r8.shaking.VerticalClassMerger$AbortReason):281:298 -> extractPinnedItems
    1:18:boolean fieldResolutionMayChange(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):835:852 -> fieldResolutionMayChange
    1:4:java.util.Collection getInvokes():519:522 -> getInvokes
    1:1:com.android.tools.r8.graph.classmerging.VerticallyMergedClasses getMergedClasses():235:235 -> getMergedClasses
    1:1:java.util.Collection getRemovedClasses():1953:1953 -> getRemovedClasses
    1:3:void initializeMergeCandidates(java.lang.Iterable):239:241 -> initializeMergeCandidates
    1:26:void initializePinnedTypes(java.lang.Iterable):251:276 -> initializePinnedTypes
    1:9:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):327:335 -> isMergeCandidate
    10:10:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> isMergeCandidate
    10:10:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):335 -> isMergeCandidate
    11:13:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):335:337 -> isMergeCandidate
    14:71:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):335:392 -> isMergeCandidate
    72:72:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> isMergeCandidate
    72:72:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):392 -> isMergeCandidate
    73:75:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):395:397 -> isMergeCandidate
    76:77:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):387:388 -> isMergeCandidate
    1:17:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):408:424 -> isStillMergeCandidate
    18:18:boolean com.android.tools.r8.graph.DexClass.classInitializationMayHaveSideEffects(com.android.tools.r8.graph.AppView):786:786 -> isStillMergeCandidate
    18:18:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):424 -> isStillMergeCandidate
    19:53:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):431:465 -> isStillMergeCandidate
    54:55:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):444:445 -> isStillMergeCandidate
    56:57:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):426:427 -> isStillMergeCandidate
    1:4:void makePrivate(com.android.tools.r8.graph.DexEncodedMethod):1413:1416 -> makePrivate
    1:14:void markTypeAsPinned(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.VerticalClassMerger$AbortReason):305:318 -> markTypeAsPinned
    1:66:void mergeClassIfPossible(com.android.tools.r8.graph.DexProgramClass):758:823 -> mergeClassIfPossible
    67:77:void mergeClassIfPossible(com.android.tools.r8.graph.DexProgramClass):819:829 -> mergeClassIfPossible
    78:78:void mergeClassIfPossible(com.android.tools.r8.graph.DexProgramClass):825:825 -> mergeClassIfPossible
    79:79:void mergeClassIfPossible(com.android.tools.r8.graph.DexProgramClass):810:810 -> mergeClassIfPossible
    1:38:boolean mergeMayLeadToIllegalAccesses(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):473:510 -> mergeMayLeadToIllegalAccesses
    1:46:boolean methodResolutionMayChange(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):701:746 -> methodResolutionMayChange
    1:16:com.android.tools.r8.graph.GraphLense run():617:632 -> run
    17:22:com.android.tools.r8.graph.GraphLense run():628:633 -> run
    1:57:boolean verifyGraphLense(com.android.tools.r8.graph.GraphLense):638:694 -> verifyGraphLense
com.android.tools.r8.shaking.VerticalClassMerger$1 -> com.android.tools.r8.shaking.VerticalClassMerger$1:
    1:1:void <clinit>():1936:1936 -> <clinit>
    2:2:void <clinit>():1353:1353 -> <clinit>
    3:3:void <clinit>():116:116 -> <clinit>
com.android.tools.r8.shaking.VerticalClassMerger$AbortReason -> com.android.tools.r8.shaking.VerticalClassMerger$AbortReason:
    1:19:void <clinit>():90:108 -> <clinit>
    20:20:void <clinit>():90:90 -> <clinit>
    1:1:void <init>(java.lang.String,int):90:90 -> <init>
    1:59:java.lang.String getMessageForClass(com.android.tools.r8.graph.DexClass):116:174 -> getMessageForClass
    60:60:java.lang.String getMessageForClass(com.android.tools.r8.graph.DexClass):172:172 -> getMessageForClass
    1:1:void printLogMessageForClass(com.android.tools.r8.graph.DexClass):111:111 -> printLogMessageForClass
    1:1:com.android.tools.r8.shaking.VerticalClassMerger$AbortReason valueOf(java.lang.String):90:90 -> valueOf
    1:1:com.android.tools.r8.shaking.VerticalClassMerger$AbortReason[] values():90:90 -> values
com.android.tools.r8.shaking.VerticalClassMerger$ClassMerger -> com.android.tools.r8.shaking.VerticalClassMerger$ClassMerger:
    1:1:void <clinit>():863:863 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.VerticalClassMerger$1):863:863 -> <init>
    2:2:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):875:875 -> <init>
    3:11:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):869:877 -> <init>
    1:4:boolean lambda$merge$0(java.util.Set,java.util.Map,java.util.Map,com.android.tools.r8.graph.DexMethod):892:895 -> a
    5:7:boolean lambda$merge$1(java.util.function.Predicate,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool,com.android.tools.r8.graph.DexMethod):969:971 -> a
    8:8:boolean lambda$merge$1(java.util.function.Predicate,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool,com.android.tools.r8.graph.DexMethod):970:970 -> a
    9:9:boolean lambda$merge$2(java.util.Set,com.android.tools.r8.graph.DexField):1032:1032 -> a
    10:10:java.util.Set lambda$merge$3(com.android.tools.r8.graph.DexType):1076:1076 -> a
    11:12:void lambda$restoreDebuggingState$4(com.android.tools.r8.graph.DexEncodedMethod):1084:1085 -> a
    1:1:void add(java.util.Map,com.android.tools.r8.graph.KeyedDexItem,com.android.tools.r8.com.google.common.base.Equivalence):1261:1261 -> add
    1:2:void addAll(java.util.Collection,java.lang.Iterable,com.android.tools.r8.com.google.common.base.Equivalence):1266:1267 -> addAll
    1:2:void lambda$restoreDebuggingState$5(com.android.tools.r8.graph.DexEncodedMethod):1089:1090 -> b
    1:1:void blockRedirectionOfSuperCalls(com.android.tools.r8.graph.DexMethod):1186:1186 -> blockRedirectionOfSuperCalls
    1:35:com.android.tools.r8.graph.DexEncodedMethod buildBridgeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):1191:1225 -> buildBridgeMethod
    1:1:boolean lambda$restoreDebuggingState$6(com.android.tools.r8.graph.DexEncodedMethod):1094:1094 -> c
    1:21:com.android.tools.r8.graph.DexEncodedMethod findMethodInTarget(com.android.tools.r8.graph.DexEncodedMethod):1232:1252 -> findMethodInTarget
    22:22:com.android.tools.r8.graph.DexEncodedMethod findMethodInTarget(com.android.tools.r8.graph.DexEncodedMethod):1247:1247 -> findMethodInTarget
    1:5:com.android.tools.r8.graph.DexString getFreshName(java.lang.String,int,com.android.tools.r8.graph.DexType):1304:1308 -> getFreshName
    1:1:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder getRenamings():1099:1099 -> getRenamings
    1:1:java.util.List getSynthesizedBridges():1103:1103 -> getSynthesizedBridges
    1:5:void makeStatic(com.android.tools.r8.graph.DexEncodedMethod):1403:1407 -> makeStatic
    1:20:boolean merge():884:903 -> merge
    21:30:boolean merge():900:909 -> merge
    31:57:boolean merge():906:932 -> merge
    58:68:boolean merge():931:941 -> merge
    69:69:boolean com.android.tools.r8.graph.DexClass.isAbstract():626:626 -> merge
    69:69:boolean merge():941 -> merge
    70:103:boolean merge():942:975 -> merge
    104:151:boolean merge():966:1013 -> merge
    152:177:boolean merge():1012:1037 -> merge
    178:187:boolean merge():1035:1044 -> merge
    188:223:boolean merge():1042:1077 -> merge
    1:3:java.util.Set mergeArrays(java.lang.Object[],java.lang.Object[]):1272:1274 -> mergeArrays
    1:13:com.android.tools.r8.graph.DexEncodedField[] mergeFields(java.util.Collection,java.util.Collection,java.util.function.Predicate,java.util.Set):1283:1295 -> mergeFields
    1:57:void redirectSuperCallsInTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):1107:1163 -> redirectSuperCallsInTarget
    1:20:com.android.tools.r8.graph.DexEncodedMethod renameConstructor(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate):1313:1332 -> renameConstructor
    1:16:com.android.tools.r8.graph.DexEncodedField renameFieldIfNeeded(com.android.tools.r8.graph.DexEncodedField,java.util.function.Predicate):1384:1399 -> renameFieldIfNeeded
    1:1:com.android.tools.r8.graph.DexEncodedMethod renameMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate,com.android.tools.r8.shaking.VerticalClassMerger$Rename):1338:1338 -> renameMethod
    2:30:com.android.tools.r8.graph.DexEncodedMethod renameMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate,com.android.tools.r8.shaking.VerticalClassMerger$Rename,com.android.tools.r8.graph.DexProto):1348:1376 -> renameMethod
    31:55:com.android.tools.r8.graph.DexEncodedMethod renameMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate,com.android.tools.r8.shaking.VerticalClassMerger$Rename,com.android.tools.r8.graph.DexProto):1355:1379 -> renameMethod
    1:13:boolean restoreDebuggingState(java.util.stream.Stream):1082:1094 -> restoreDebuggingState
    14:14:boolean restoreDebuggingState(java.util.stream.Stream):1093:1093 -> restoreDebuggingState
com.android.tools.r8.shaking.VerticalClassMerger$CollisionDetector -> com.android.tools.r8.shaking.VerticalClassMerger$CollisionDetector:
    1:1:void <clinit>():1520:1520 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.VerticalClassMerger$1):1520:1520 -> <init>
    2:2:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):1531:1531 -> <init>
    3:15:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):1525:1537 -> <init>
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap lambda$fillSeenPositions$0(com.android.tools.r8.graph.DexString):1574:1575 -> a
    1:32:int computePositionsFor(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexType,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1594:1625 -> computePositionsFor
    1:18:void fillSeenPositions():1567:1584 -> fillSeenPositions
    1:22:boolean mayCollide():1541:1562 -> mayCollide
com.android.tools.r8.shaking.VerticalClassMerger$IllegalAccessDetector -> com.android.tools.r8.shaking.VerticalClassMerger$IllegalAccessDetector:
    1:1:void <clinit>():1739:1739 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):1748:1748 -> <init>
    2:11:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):1741:1750 -> <init>
    1:8:boolean checkFieldReference(com.android.tools.r8.graph.DexField):1762:1769 -> checkFieldReference
    9:9:com.android.tools.r8.graph.DexEncodedField com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexField):180:180 -> checkFieldReference
    9:9:boolean checkFieldReference(com.android.tools.r8.graph.DexField):1769 -> checkFieldReference
    10:11:boolean checkFieldReference(com.android.tools.r8.graph.DexField):1770:1771 -> checkFieldReference
    1:10:boolean checkMethodReference(com.android.tools.r8.graph.DexMethod):1779:1788 -> checkMethodReference
    11:11:com.android.tools.r8.graph.DexEncodedMethod com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexMethod):185:185 -> checkMethodReference
    11:11:boolean checkMethodReference(com.android.tools.r8.graph.DexMethod):1788 -> checkMethodReference
    12:13:boolean checkMethodReference(com.android.tools.r8.graph.DexMethod):1789:1790 -> checkMethodReference
    1:5:boolean checkTypeReference(com.android.tools.r8.graph.DexType):1798:1802 -> checkTypeReference
    6:6:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> checkTypeReference
    6:6:boolean checkTypeReference(com.android.tools.r8.graph.DexType):1802 -> checkTypeReference
    7:8:boolean checkTypeReference(com.android.tools.r8.graph.DexType):1803:1804 -> checkTypeReference
    1:1:boolean foundIllegalAccess():1754:1754 -> foundIllegalAccess
    1:1:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):1858:1858 -> registerInstanceFieldRead
    1:1:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):1853:1853 -> registerInstanceFieldWrite
    1:4:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):1821:1824 -> registerInvokeDirect
    1:4:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):1837:1840 -> registerInvokeInterface
    1:4:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):1829:1832 -> registerInvokeStatic
    1:4:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):1845:1848 -> registerInvokeSuper
    1:4:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):1813:1816 -> registerInvokeVirtual
    1:1:boolean registerNewInstance(com.android.tools.r8.graph.DexType):1863:1863 -> registerNewInstance
    1:1:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):1868:1868 -> registerStaticFieldRead
    1:1:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):1873:1873 -> registerStaticFieldWrite
    1:1:boolean registerTypeReference(com.android.tools.r8.graph.DexType):1878:1878 -> registerTypeReference
    1:1:void setContext(com.android.tools.r8.graph.DexEncodedMethod):1758:1758 -> setContext
com.android.tools.r8.shaking.VerticalClassMerger$OverloadedMethodSignaturesRetriever -> com.android.tools.r8.shaking.VerticalClassMerger$OverloadedMethodSignaturesRetriever:
    1:1:void <init>(com.android.tools.r8.shaking.VerticalClassMerger):533:533 -> <init>
    2:9:void <init>(com.android.tools.r8.shaking.VerticalClassMerger):528:535 -> <init>
    1:1:com.android.tools.r8.graph.DexProto lambda$get$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString):558:558 -> a
    1:35:java.util.Collection get():540:574 -> get
    1:15:boolean protoMayReferenceMergedSourceOrTarget(com.android.tools.r8.graph.DexProto):582:596 -> protoMayReferenceMergedSourceOrTarget
    1:8:boolean typeMayReferenceMergedSourceOrTarget(com.android.tools.r8.graph.DexType):602:609 -> typeMayReferenceMergedSourceOrTarget
com.android.tools.r8.shaking.VerticalClassMerger$Rename -> com.android.tools.r8.shaking.VerticalClassMerger$Rename:
    1:3:void <clinit>():179:181 -> <clinit>
    4:4:void <clinit>():178:178 -> <clinit>
    1:1:void <init>(java.lang.String,int):178:178 -> <init>
    1:1:com.android.tools.r8.shaking.VerticalClassMerger$Rename valueOf(java.lang.String):178:178 -> valueOf
    1:1:com.android.tools.r8.shaking.VerticalClassMerger$Rename[] values():178:178 -> values
com.android.tools.r8.shaking.VerticalClassMerger$SingleTypeMapperGraphLense -> com.android.tools.r8.shaking.VerticalClassMerger$SingleTypeMapperGraphLense:
    1:1:void <clinit>():1657:1657 -> <clinit>
    1:3:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):1662:1664 -> <init>
    1:1:com.android.tools.r8.graph.DexField getOriginalFieldSignature(com.android.tools.r8.graph.DexField):1674:1674 -> getOriginalFieldSignature
    1:1:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):1679:1679 -> getOriginalMethodSignature
    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):1669:1669 -> getOriginalType
    1:1:com.android.tools.r8.graph.DexField getRenamedFieldSignature(com.android.tools.r8.graph.DexField):1684:1684 -> getRenamedFieldSignature
    1:1:com.android.tools.r8.graph.DexMethod getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):1689:1689 -> getRenamedMethodSignature
    1:1:com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField):1728:1728 -> lookupField
    1:18:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):1701:1718 -> lookupMethod
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):1723:1723 -> lookupPrototypeChanges
    1:1:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType):1694:1694 -> lookupType
com.android.tools.r8.shaking.VerticalClassMerger$SynthesizedBridgeCode -> com.android.tools.r8.shaking.VerticalClassMerger$SynthesizedBridgeCode:
    1:6:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,boolean):1895:1900 -> <init>
    1:11:void lambda$getRegistryCallback$0(com.android.tools.r8.graph.UseRegistry):1936:1946 -> a
    12:12:void lambda$getRegistryCallback$0(com.android.tools.r8.graph.UseRegistry):1938:1938 -> a
    1:1:com.android.tools.r8.graph.DexMethod access$500(com.android.tools.r8.shaking.VerticalClassMerger$SynthesizedBridgeCode):1882:1882 -> access$500
    1:1:java.util.function.Consumer getRegistryCallback():1935:1935 -> getRegistryCallback
    1:10:com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider():1921:1930 -> getSourceCodeProvider
    1:2:void updateMethodSignatures(java.util.function.Function):1915:1916 -> updateMethodSignatures
com.android.tools.r8.shaking.VerticalClassMerger$TreeFixer -> com.android.tools.r8.shaking.VerticalClassMerger$TreeFixer:
    1:5:void <init>(com.android.tools.r8.shaking.VerticalClassMerger):1419:1423 -> <init>
    6:8:void <init>(com.android.tools.r8.shaking.VerticalClassMerger):1422:1424 -> <init>
    9:9:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.shaking.VerticalClassMerger$1):1419:1419 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense access$400(com.android.tools.r8.shaking.VerticalClassMerger$TreeFixer):1419:1419 -> access$400
    1:11:void fixupFields(java.util.List,com.android.tools.r8.graph.DexClass$FieldSetter):1463:1473 -> fixupFields
    1:2:com.android.tools.r8.graph.DexMethod fixupMethod(com.android.tools.r8.graph.DexMethod):1479:1480 -> fixupMethod
    3:3:com.android.tools.r8.graph.DexMethod fixupMethod(com.android.tools.r8.graph.DexMethod):1479:1479 -> fixupMethod
    1:9:void fixupMethods(java.util.List,com.android.tools.r8.graph.DexClass$MethodSetter):1446:1454 -> fixupMethods
    1:6:com.android.tools.r8.graph.DexProto fixupProto(com.android.tools.r8.graph.DexProto):1484:1489 -> fixupProto
    1:11:com.android.tools.r8.graph.DexType fixupType(com.android.tools.r8.graph.DexType):1495:1505 -> fixupType
    1:11:com.android.tools.r8.graph.GraphLense fixupTypeReferences():1428:1438 -> fixupTypeReferences
    1:3:com.android.tools.r8.graph.DexType[] fixupTypes(com.android.tools.r8.graph.DexType[]):1512:1514 -> fixupTypes
com.android.tools.r8.shaking.VerticalClassMergerGraphLense -> com.android.tools.r8.shaking.VerticalClassMergerGraphLense:
    1:1:void <clinit>():47:47 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.shaking.VerticalClassMergerGraphLense$1):47:47 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,com.android.tools.r8.graph.GraphLense):74:74 -> <init>
    3:14:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,com.android.tools.r8.graph.GraphLense):67:78 -> <init>
    1:2:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):88:89 -> getOriginalMethodSignature
    3:3:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):88:88 -> getOriginalMethodSignature
    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):83:83 -> getOriginalType
    1:7:boolean isContextFreeForMethod(com.android.tools.r8.graph.DexMethod):147:153 -> isContextFreeForMethod
    1:1:boolean isContextFreeForMethods():142:142 -> isContextFreeForMethods
    1:23:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):94:116 -> lookupMethod
    1:12:java.util.Set lookupMethodInAllContexts(com.android.tools.r8.graph.DexMethod):126:137 -> lookupMethodInAllContexts
    1:1:com.android.tools.r8.ir.code.Invoke$Type mapInvocationType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):121:121 -> mapInvocationType
com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder -> com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder:
    1:1:void <clinit>():160:160 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory):176:176 -> <init>
    2:15:void <init>(com.android.tools.r8.graph.DexItemFactory):164:177 -> <init>
    1:1:com.android.tools.r8.graph.DexType lambda$getMethodSignatureAfterClassMerging$0(java.util.Map,com.android.tools.r8.graph.DexType):269:269 -> a
    2:2:java.util.Map lambda$mapVirtualMethodToDirectInType$1(com.android.tools.r8.graph.DexType):331:331 -> a
    1:16:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.AppView,java.util.Map):225:240 -> build
    1:5:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):181:185 -> createBuilderForFixup
    6:13:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):183:190 -> createBuilderForFixup
    14:20:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):188:194 -> createBuilderForFixup
    21:35:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):193:207 -> createBuilderForFixup
    36:43:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):206:213 -> createBuilderForFixup
    44:52:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):211:219 -> createBuilderForFixup
    53:53:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder createBuilderForFixup(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder,java.util.Map):217:217 -> createBuilderForFixup
    1:12:com.android.tools.r8.graph.DexField getFieldSignatureAfterClassMerging(com.android.tools.r8.graph.DexField,java.util.Map):245:256 -> getFieldSignatureAfterClassMerging
    1:14:com.android.tools.r8.graph.DexMethod getMethodSignatureAfterClassMerging(com.android.tools.r8.graph.DexMethod,java.util.Map):261:274 -> getMethodSignatureAfterClassMerging
    1:9:com.android.tools.r8.graph.DexType getTypeAfterClassMerging(com.android.tools.r8.graph.DexType,java.util.Map):278:286 -> getTypeAfterClassMerging
    1:4:boolean hasMappingForSignatureInContext(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):290:293 -> hasMappingForSignatureInContext
    1:1:boolean hasOriginalSignatureMappingFor(com.android.tools.r8.graph.DexField):299:299 -> hasOriginalSignatureMappingFor
    2:3:boolean hasOriginalSignatureMappingFor(com.android.tools.r8.graph.DexMethod):303:304 -> hasOriginalSignatureMappingFor
    1:1:void map(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):312:312 -> map
    2:2:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder map(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):316:316 -> map
    1:3:void mapVirtualMethodToDirectInType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult,com.android.tools.r8.graph.DexType):330:332 -> mapVirtualMethodToDirectInType
    1:1:void markMethodAsMerged(com.android.tools.r8.graph.DexMethod):308:308 -> markMethodAsMerged
    1:14:void merge(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder):336:349 -> merge
    1:1:void recordCreationOfBridgeMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):325:325 -> recordCreationOfBridgeMethod
    1:1:void recordMove(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):321:321 -> recordMove
com.android.tools.r8.shaking.WhyAreYouKeepingConsumer -> com.android.tools.r8.shaking.WhyAreYouKeepingConsumer:
    1:1:void <clinit>():43:43 -> <clinit>
    1:1:void <init>(com.android.tools.r8.experimental.graphinfo.GraphConsumer):58:58 -> <init>
    1:2:void addNodeMessage(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$Formatter):240:241 -> addNodeMessage
    1:23:java.util.List findShortestPathTo(com.android.tools.r8.experimental.graphinfo.GraphNode):132:154 -> findShortestPathTo
    1:9:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo getCanonicalInfo(java.util.Set):185:193 -> getCanonicalInfo
    10:10:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo getCanonicalInfo(java.util.Set):192:192 -> getCanonicalInfo
    1:14:java.util.List getCanonicalPath(com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$GraphPath,com.android.tools.r8.experimental.graphinfo.GraphNode):165:178 -> getCanonicalPath
    1:2:com.android.tools.r8.experimental.graphinfo.ClassGraphNode getClassNode(com.android.tools.r8.references.ClassReference):62:63 -> getClassNode
    1:2:com.android.tools.r8.experimental.graphinfo.FieldGraphNode getFieldNode(com.android.tools.r8.references.FieldReference):80:81 -> getFieldNode
    1:2:com.android.tools.r8.experimental.graphinfo.MethodGraphNode getMethodNode(com.android.tools.r8.references.MethodReference):71:72 -> getMethodNode
    1:3:java.lang.String getNodeString(com.android.tools.r8.experimental.graphinfo.GraphNode):202:204 -> getNodeString
    4:15:java.lang.String getNodeString(com.android.tools.r8.experimental.graphinfo.GraphNode):203:214 -> getNodeString
    16:39:java.lang.String getNodeString(com.android.tools.r8.experimental.graphinfo.GraphNode):213:236 -> getNodeString
    40:40:java.lang.String getNodeString(com.android.tools.r8.experimental.graphinfo.GraphNode):235:235 -> getNodeString
    1:2:void printEdge(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$Formatter):197:198 -> printEdge
    1:2:void printNothingKeeping(com.android.tools.r8.experimental.graphinfo.GraphNode,java.io.PrintStream):119:120 -> printNothingKeeping
    3:4:void printNothingKeeping(com.android.tools.r8.references.ClassReference,java.io.PrintStream):124:125 -> printNothingKeeping
    1:2:void printWhyAreYouKeeping(com.android.tools.r8.references.ClassReference,java.io.PrintStream):89:90 -> printWhyAreYouKeeping
    3:4:void printWhyAreYouKeeping(com.android.tools.r8.references.MethodReference,java.io.PrintStream):94:95 -> printWhyAreYouKeeping
    5:6:void printWhyAreYouKeeping(com.android.tools.r8.references.FieldReference,java.io.PrintStream):99:100 -> printWhyAreYouKeeping
    7:18:void printWhyAreYouKeeping(com.android.tools.r8.experimental.graphinfo.GraphNode,java.io.PrintStream):104:115 -> printWhyAreYouKeeping
    1:5:java.lang.String shortPositionInfo(com.android.tools.r8.position.Position):246:250 -> shortPositionInfo
com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$Formatter -> com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$Formatter:
    1:1:void <init>(java.io.PrintStream):257:257 -> <init>
    2:5:void <init>(java.io.PrintStream):255:258 -> <init>
    1:3:void addMessage(java.lang.String):280:282 -> addMessage
    1:3:void addReason(java.lang.String):274:276 -> addReason
    1:1:void endItem():286:286 -> endItem
    1:2:void indent():268:269 -> indent
    1:3:void startItem(java.lang.String):262:264 -> startItem
com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$GraphPath -> com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$GraphPath:
    1:1:void <clinit>():46:46 -> <clinit>
    1:4:void <init>(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$GraphPath):50:53 -> <init>
com.android.tools.r8.shaking.WhyAreYouNotInliningRule -> com.android.tools.r8.shaking.WhyAreYouNotInliningRule:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.WhyAreYouNotInliningRule$1):10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):57:57 -> <init>
    1:1:com.android.tools.r8.shaking.WhyAreYouNotInliningRule$Builder builder():74:74 -> builder
com.android.tools.r8.shaking.WhyAreYouNotInliningRule$Builder -> com.android.tools.r8.shaking.WhyAreYouNotInliningRule$Builder:
    1:1:void <init>(com.android.tools.r8.shaking.WhyAreYouNotInliningRule$1):12:12 -> <init>
    2:2:void <init>():16:16 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification build():12:12 -> build
    2:4:com.android.tools.r8.shaking.WhyAreYouNotInliningRule build():26:28 -> build
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():12:12 -> self
com.android.tools.r8.utils.AarArchiveResourceProvider -> com.android.tools.r8.utils.a:
    com.android.tools.r8.origin.Origin origin -> a
    java.nio.file.Path archive -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():32:32 -> <clinit>
    1:4:void <init>(java.nio.file.Path):41:44 -> <init>
    1:8:java.util.List readArchive():69:76 -> a
    9:20:java.util.List readClassesJar(java.util.zip.ZipInputStream):49:60 -> a
    9:20:java.util.List readArchive():77 -> a
    21:26:java.util.List readClassesJar(java.util.zip.ZipInputStream):56:61 -> a
    21:26:java.util.List readArchive():77 -> a
    27:30:java.util.List readArchive():78:81 -> a
    31:36:java.util.List readArchive():76:81 -> a
    37:50:java.util.List readArchive():73:86 -> a
    51:66:java.util.List readArchive():69:84 -> a
    67:67:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):83:83 -> a
    1:3:java.util.Collection getProgramResources():92:94 -> getProgramResources
com.android.tools.r8.utils.AbortException -> com.android.tools.r8.utils.b:
    1:1:void <init>():12:12 -> <init>
    2:2:void <init>(java.lang.String):17:17 -> <init>
com.android.tools.r8.utils.Action -> com.android.tools.r8.utils.c:
    void execute() -> a
com.android.tools.r8.utils.AndroidApiLevel -> com.android.tools.r8.utils.d:
    com.android.tools.r8.utils.AndroidApiLevel G -> w
    com.android.tools.r8.utils.AndroidApiLevel H -> u
    com.android.tools.r8.utils.AndroidApiLevel E_MR1 -> y
    com.android.tools.r8.utils.AndroidApiLevel R -> b
    com.android.tools.r8.utils.AndroidApiLevel E -> A
    com.android.tools.r8.utils.AndroidApiLevel O -> f
    com.android.tools.r8.utils.AndroidApiLevel P -> d
    com.android.tools.r8.utils.AndroidApiLevel B -> E
    com.android.tools.r8.utils.AndroidApiLevel L_MR1 -> j
    com.android.tools.r8.utils.AndroidApiLevel N -> h
    com.android.tools.r8.utils.AndroidApiLevel J_MR2 -> n
    com.android.tools.r8.utils.AndroidApiLevel K_WATCH -> l
    com.android.tools.r8.utils.AndroidApiLevel I -> r
    com.android.tools.r8.utils.AndroidApiLevel J -> p
    com.android.tools.r8.utils.AndroidApiLevel G_MR1 -> v
    com.android.tools.r8.utils.AndroidApiLevel H_MR1 -> t
    com.android.tools.r8.utils.AndroidApiLevel E_0_1 -> z
    com.android.tools.r8.utils.AndroidApiLevel F -> x
    com.android.tools.r8.utils.AndroidApiLevel[] $VALUES -> G
    com.android.tools.r8.utils.AndroidApiLevel D -> B
    com.android.tools.r8.utils.AndroidApiLevel Q -> c
    int level -> a
    com.android.tools.r8.utils.AndroidApiLevel LATEST -> F
    com.android.tools.r8.utils.AndroidApiLevel N_MR1 -> g
    com.android.tools.r8.utils.AndroidApiLevel B_1_1 -> D
    com.android.tools.r8.utils.AndroidApiLevel O_MR1 -> e
    com.android.tools.r8.utils.AndroidApiLevel L -> k
    com.android.tools.r8.utils.AndroidApiLevel M -> i
    com.android.tools.r8.utils.AndroidApiLevel J_MR1 -> o
    com.android.tools.r8.utils.AndroidApiLevel K -> m
    com.android.tools.r8.utils.AndroidApiLevel H_MR2 -> s
    com.android.tools.r8.utils.AndroidApiLevel I_MR1 -> q
    1:30:void <clinit>():15:44 -> <clinit>
    31:63:void <clinit>():14:46 -> <clinit>
    1:2:void <init>(java.lang.String,int,int):52:53 -> <init>
    1:2:java.util.List getAndroidApiLevelsSorted():73:74 -> a
    3:3:boolean isLessThanOrEqualTo(com.android.tools.r8.utils.AndroidApiLevel):166:166 -> a
    3:3:boolean isGreaterThanOrEqualTo(com.android.tools.r8.utils.AndroidApiLevel):174 -> a
    1:1:com.android.tools.r8.utils.AndroidApiLevel getDefault():65:65 -> b
    2:2:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):157:157 -> b
    3:3:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):155:155 -> b
    4:4:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):153:153 -> b
    5:5:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):151:151 -> b
    6:6:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):149:149 -> b
    7:7:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):147:147 -> b
    8:8:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):145:145 -> b
    9:9:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):143:143 -> b
    10:10:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):141:141 -> b
    11:11:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):139:139 -> b
    12:12:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):137:137 -> b
    13:13:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):135:135 -> b
    14:14:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):133:133 -> b
    15:15:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):131:131 -> b
    16:16:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):129:129 -> b
    17:17:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):127:127 -> b
    18:18:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):125:125 -> b
    19:19:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):123:123 -> b
    20:20:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):121:121 -> b
    21:21:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):119:119 -> b
    22:22:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):117:117 -> b
    23:23:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):115:115 -> b
    24:24:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):113:113 -> b
    25:25:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):111:111 -> b
    26:26:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):109:109 -> b
    27:27:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):107:107 -> b
    28:28:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):105:105 -> b
    29:29:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):103:103 -> b
    30:30:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):101:101 -> b
    31:31:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):99:99 -> b
    32:32:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):97:97 -> b
    33:33:boolean isLessThan(com.android.tools.r8.utils.AndroidApiLevel):162:162 -> b
    1:1:com.android.tools.r8.utils.DexVersion getDexVersion():69:69 -> c
    1:1:int getLevel():57:57 -> d
    1:1:com.android.tools.r8.utils.AndroidApiLevel[] values():14:14 -> e
com.android.tools.r8.utils.AndroidApp -> com.android.tools.r8.utils.e:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.StringResource proguardMapOutputData -> f
    com.android.tools.r8.com.google.common.collect.ImmutableList archiveProvidersToClose -> e
    com.android.tools.r8.com.google.common.collect.ImmutableMap programResourcesMainDescriptor -> b
    java.util.List mainDexClasses -> h
    java.util.List mainDexListResources -> g
    com.android.tools.r8.com.google.common.collect.ImmutableList programResourceProviders -> a
    com.android.tools.r8.com.google.common.collect.ImmutableList libraryResourceProviders -> d
    com.android.tools.r8.com.google.common.collect.ImmutableList classpathResourceProviders -> c
    1:1:void <clinit>():75:75 -> <clinit>
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableMap,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.StringResource,java.util.List,java.util.List,com.android.tools.r8.utils.AndroidApp$1):75:75 -> <init>
    2:12:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableMap,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.StringResource,java.util.List,java.util.List):162:172 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$200(com.android.tools.r8.utils.AndroidApp):75:75 -> a
    2:5:void printClassFileProviders(java.lang.StringBuilder,java.util.Collection):135:138 -> a
    6:12:void printProgramResource(java.lang.StringBuilder,com.android.tools.r8.ProgramResource):144:150 -> a
    13:14:boolean verifyInternalProvidersInCloseSet(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList):178:179 -> a
    15:15:boolean lambda$verifyInternalProvidersInCloseSet$0(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.ClassFileResourceProvider):180:180 -> a
    16:16:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.Reporter):196:196 -> a
    17:17:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.Reporter):208:208 -> a
    18:22:int applicationSize():213:217 -> a
    23:27:int applicationSize():213:217 -> a
    28:28:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):217:217 -> a
    29:33:java.util.List filter(java.util.List,com.android.tools.r8.ProgramResource$Kind):303:307 -> a
    34:37:void write(java.nio.file.Path,com.android.tools.r8.OutputMode):369:372 -> a
    38:39:java.lang.String getPrimaryClassDescriptor(com.android.tools.r8.Resource):416:417 -> a
    40:44:void dump(java.nio.file.Path,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):422:426 -> a
    45:51:void dump(java.nio.file.Path,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):425:431 -> a
    52:53:int dumpClasspathResources(int,java.util.zip.ZipOutputStream):448:449 -> a
    52:53:void dump(java.nio.file.Path,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):432 -> a
    54:55:int dumpLibraryResources(int,java.util.zip.ZipOutputStream):441:442 -> a
    54:55:void dump(java.nio.file.Path,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):433 -> a
    56:56:void dump(java.nio.file.Path,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):434:434 -> a
    57:68:void dump(java.nio.file.Path,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):424:435 -> a
    69:69:com.android.tools.r8.ClassFileResourceProvider createClassFileResourceProvider(java.util.Map):456:456 -> a
    69:69:com.android.tools.r8.ClassFileResourceProvider access$800(java.util.Map):75 -> a
    70:72:int dumpProgramResources(java.lang.String,int,java.util.zip.ZipOutputStream):480:482 -> a
    73:73:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap.<init>():119:119 -> a
    73:73:int dumpProgramResources(java.lang.String,int,java.util.zip.ZipOutputStream):482 -> a
    74:80:int dumpProgramResources(java.lang.String,int,java.util.zip.ZipOutputStream):483:489 -> a
    81:94:int dumpProgramResources(java.lang.String,int,java.util.zip.ZipOutputStream):486:499 -> a
    95:111:int dumpProgramResources(java.lang.String,int,java.util.zip.ZipOutputStream):481:497 -> a
    112:131:int dumpProgramResources(java.lang.String,int,java.util.zip.ZipOutputStream):480:499 -> a
    132:134:int dumpClassFileResources(java.lang.String,int,java.util.zip.ZipOutputStream,com.android.tools.r8.com.google.common.collect.ImmutableList):509:511 -> a
    135:135:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap.<init>():119:119 -> a
    135:135:int dumpClassFileResources(java.lang.String,int,java.util.zip.ZipOutputStream,com.android.tools.r8.com.google.common.collect.ImmutableList):511 -> a
    136:147:int dumpClassFileResources(java.lang.String,int,java.util.zip.ZipOutputStream,com.android.tools.r8.com.google.common.collect.ImmutableList):512:523 -> a
    148:159:int dumpClassFileResources(java.lang.String,int,java.util.zip.ZipOutputStream,com.android.tools.r8.com.google.common.collect.ImmutableList):510:521 -> a
    160:174:int dumpClassFileResources(java.lang.String,int,java.util.zip.ZipOutputStream,com.android.tools.r8.com.google.common.collect.ImmutableList):509:523 -> a
    175:182:int dumpProgramResource(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,int,java.util.zip.ZipOutputStream,com.android.tools.r8.ProgramResource):533:540 -> a
    183:184:java.lang.String extractClassDescriptor(byte[]):577:578 -> a
    183:184:int dumpProgramResource(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,int,java.util.zip.ZipOutputStream,com.android.tools.r8.ProgramResource):539 -> a
    185:185:void com.android.tools.r8.org.objectweb.asm.ClassReader.accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,int):400:400 -> a
    185:185:java.lang.String extractClassDescriptor(byte[]):579 -> a
    185:185:int dumpProgramResource(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,int,java.util.zip.ZipOutputStream,com.android.tools.r8.ProgramResource):539 -> a
    186:186:java.lang.String extractClassDescriptor(byte[]):584:584 -> a
    186:186:int dumpProgramResource(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,int,java.util.zip.ZipOutputStream,com.android.tools.r8.ProgramResource):539 -> a
    187:195:int dumpProgramResource(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,int,java.util.zip.ZipOutputStream,com.android.tools.r8.ProgramResource):541:549 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$300(com.android.tools.r8.utils.AndroidApp):75:75 -> b
    2:2:com.android.tools.r8.utils.Reporter defaultReporter():184:184 -> b
    2:2:com.android.tools.r8.utils.AndroidApp$Builder builder():191 -> b
    3:3:com.android.tools.r8.utils.AndroidApp$Builder builder():191:191 -> b
    4:13:void writeToDirectory(java.nio.file.Path,com.android.tools.r8.OutputMode):380:389 -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$400(com.android.tools.r8.utils.AndroidApp):75:75 -> c
    2:3:void closeInternalArchiveProviders():96:97 -> c
    4:6:void writeToZip(java.nio.file.Path,com.android.tools.r8.OutputMode):396:398 -> c
    7:15:void writeToZip(java.nio.file.Path,com.android.tools.r8.OutputMode):397:405 -> c
    16:22:void writeToZip(java.nio.file.Path,com.android.tools.r8.OutputMode):404:410 -> c
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$500(com.android.tools.r8.utils.AndroidApp):75:75 -> d
    2:4:java.util.Collection computeAllProgramResources():223:225 -> d
    1:1:java.util.List access$600(com.android.tools.r8.utils.AndroidApp):75:75 -> e
    2:7:java.util.List getClassProgramResourcesForTesting():246:251 -> e
    1:1:java.util.List access$700(com.android.tools.r8.utils.AndroidApp):75:75 -> f
    2:2:java.util.List getClasspathResourceProviders():293:293 -> f
    1:1:com.android.tools.r8.utils.Reporter defaultReporter():184:184 -> g
    1:1:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.AndroidApp):203 -> g
    2:2:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.Reporter):208:208 -> g
    2:2:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.AndroidApp):203 -> g
    3:7:java.util.Set getDataEntryResourcesForTesting():257:261 -> g
    1:6:java.util.List getDexProgramResourcesForTesting():233:238 -> h
    1:1:java.util.List getLibraryResourceProviders():298:298 -> i
    1:1:java.util.List getMainDexClasses():349:349 -> j
    1:1:java.util.List getMainDexListResources():342:342 -> k
    1:1:java.util.List getProgramResourceProviders():288:288 -> l
    1:1:com.android.tools.r8.StringResource getProguardMapOutputData():321:321 -> m
    1:1:boolean hasMainDexList():328:328 -> n
    1:1:boolean hasMainDexListResources():335:335 -> o
    1:9:com.android.tools.r8.utils.AndroidApp withoutMainDexList():354:362 -> p
    1:5:java.lang.String toString():103:107 -> toString
    6:8:void printProgramResourceProviders(java.lang.StringBuilder,java.util.Collection):126:128 -> toString
    6:8:java.lang.String toString():107 -> toString
    9:20:java.lang.String toString():109:120 -> toString
com.android.tools.r8.utils.AndroidApp$1 -> com.android.tools.r8.utils.e$a:
    java.util.Set val$out -> a
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp,java.util.Set):262:262 -> <init>
    1:6:void visit(com.android.tools.r8.DataEntryResource):272:277 -> visit
com.android.tools.r8.utils.AndroidApp$1ClassNameExtractor -> com.android.tools.r8.utils.f:
    java.lang.String className -> c
    1:1:void <init>():558:558 -> <init>
    1:1:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):569:569 -> a
    1:1:java.lang.String getDescriptor():573:573 -> b
com.android.tools.r8.utils.AndroidApp$2 -> com.android.tools.r8.utils.g:
    java.util.Map val$classPathResources -> a
    1:1:void <init>(java.util.Map):456:456 -> <init>
    1:1:java.util.Set getClassDescriptors():459:459 -> getClassDescriptors
    1:1:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):464:464 -> getProgramResource
com.android.tools.r8.utils.AndroidApp$Builder -> com.android.tools.r8.utils.e$b:
    boolean $assertionsDisabled -> m
    boolean ignoreDexInArchive -> j
    com.android.tools.r8.StringResource proguardMapOutputData -> k
    java.util.List programResources -> b
    com.android.tools.r8.utils.Reporter reporter -> l
    java.util.List programResourceProviders -> a
    java.util.Map programResourcesMainDescriptor -> d
    java.util.List libraryResourceProviders -> f
    java.util.List classpathResourceProviders -> e
    java.util.List dataResources -> c
    java.util.List mainDexListClasses -> i
    java.util.List mainDexListResources -> h
    java.util.List archiveProvidersToClose -> g
    1:1:void <clinit>():590:590 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.AndroidApp$1):590:590 -> <init>
    2:2:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.AndroidApp$1):590:590 -> <init>
    3:3:void <init>(com.android.tools.r8.utils.Reporter):610:610 -> <init>
    4:23:void <init>(com.android.tools.r8.utils.Reporter):592:611 -> <init>
    24:30:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.AndroidApp):616:622 -> <init>
    1:5:void lambda$addDump$0(com.android.tools.r8.origin.Origin,java.util.zip.ZipEntry,java.io.InputStream):635:639 -> a
    6:20:void readProgramDump(com.android.tools.r8.origin.Origin,java.io.InputStream):686:700 -> a
    6:20:void lambda$addDump$0(com.android.tools.r8.origin.Origin,java.util.zip.ZipEntry,java.io.InputStream):640 -> a
    21:31:void readProgramDump(com.android.tools.r8.origin.Origin,java.io.InputStream):696:706 -> a
    21:31:void lambda$addDump$0(com.android.tools.r8.origin.Origin,java.util.zip.ZipEntry,java.io.InputStream):640 -> a
    32:39:void readProgramDump(com.android.tools.r8.origin.Origin,java.io.InputStream):705:712 -> a
    32:39:void lambda$addDump$0(com.android.tools.r8.origin.Origin,java.util.zip.ZipEntry,java.io.InputStream):640 -> a
    40:46:void readProgramDump(com.android.tools.r8.origin.Origin,java.io.InputStream):711:717 -> a
    40:46:void lambda$addDump$0(com.android.tools.r8.origin.Origin,java.util.zip.ZipEntry,java.io.InputStream):640 -> a
    47:74:void readProgramDump(com.android.tools.r8.origin.Origin,java.io.InputStream):688:715 -> a
    47:74:void lambda$addDump$0(com.android.tools.r8.origin.Origin,java.util.zip.ZipEntry,java.io.InputStream):640 -> a
    75:80:void lambda$addDump$0(com.android.tools.r8.origin.Origin,java.util.zip.ZipEntry,java.io.InputStream):641:646 -> a
    81:94:void readClassFileDump(com.android.tools.r8.origin.Origin,java.io.InputStream,java.util.function.Consumer,java.lang.String):658:671 -> a
    95:109:void readClassFileDump(com.android.tools.r8.origin.Origin,java.io.InputStream,java.util.function.Consumer,java.lang.String):667:681 -> a
    110:130:void readClassFileDump(com.android.tools.r8.origin.Origin,java.io.InputStream,java.util.function.Consumer,java.lang.String):659:679 -> a
    131:131:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):679:679 -> a
    132:133:com.android.tools.r8.utils.AndroidApp$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):773:774 -> a
    134:134:com.android.tools.r8.utils.AndroidApp$Builder addClasspathFile(java.nio.file.Path):793:793 -> a
    135:135:com.android.tools.r8.utils.AndroidApp$Builder addClasspathResourceProvider(com.android.tools.r8.ClassFileResourceProvider):801:801 -> a
    136:136:com.android.tools.r8.utils.AndroidApp$Builder addLibraryFiles(java.nio.file.Path[]):807:807 -> a
    137:138:com.android.tools.r8.utils.AndroidApp$Builder addLibraryFiles(java.util.Collection):812:813 -> a
    137:138:com.android.tools.r8.utils.AndroidApp$Builder addLibraryFiles(java.nio.file.Path[]):807 -> a
    139:140:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],java.util.Set):862:863 -> a
    141:141:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],java.util.Set):862:862 -> a
    142:142:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],java.util.Set,java.lang.String):875:875 -> a
    143:146:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],java.util.Set,java.lang.String):874:877 -> a
    147:148:com.android.tools.r8.utils.AndroidApp$Builder addClassProgramData(java.util.Collection):903:904 -> a
    149:149:com.android.tools.r8.utils.AndroidApp$Builder addClassProgramData(byte[],com.android.tools.r8.origin.Origin):913:913 -> a
    150:150:com.android.tools.r8.utils.AndroidApp$Builder addClassProgramData(byte[],com.android.tools.r8.origin.Origin,java.util.Set):917:917 -> a
    151:151:com.android.tools.r8.utils.AndroidApp$Builder addDataResource(com.android.tools.r8.DataResource):923:923 -> a
    152:152:void addDataResources(com.android.tools.r8.DataResource[]):1066:1066 -> a
    152:152:com.android.tools.r8.utils.AndroidApp$Builder addDataResource(com.android.tools.r8.DataResource):923 -> a
    153:153:void addDataResources(java.util.Collection):1070:1070 -> a
    153:153:void addDataResources(com.android.tools.r8.DataResource[]):1066 -> a
    153:153:com.android.tools.r8.utils.AndroidApp$Builder addDataResource(com.android.tools.r8.DataResource):923 -> a
    154:154:com.android.tools.r8.utils.AndroidApp$Builder setProguardMapOutputData(java.lang.String):934:934 -> a
    155:155:com.android.tools.r8.utils.AndroidApp$Builder addMainDexClasses(java.lang.String[]):961:961 -> a
    156:156:com.android.tools.r8.utils.AndroidApp$Builder addMainDexClasses(java.util.Collection):968:968 -> a
    156:156:com.android.tools.r8.utils.AndroidApp$Builder addMainDexClasses(java.lang.String[]):961 -> a
    157:157:com.android.tools.r8.utils.AndroidApp$Builder setIgnoreDexInArchive(boolean):984:984 -> a
    158:197:com.android.tools.r8.utils.AndroidApp build():992:1031 -> a
    198:198:void addProgramResources(com.android.tools.r8.ProgramResource[]):1058:1058 -> a
    199:199:void addProgramResources(java.util.Collection):1062:1062 -> a
    199:199:void addProgramResources(com.android.tools.r8.ProgramResource[]):1058 -> a
    200:203:void addClasspathOrLibraryProvider(java.nio.file.Path,java.util.List):1075:1078 -> a
    204:219:void addClasspathOrLibraryProvider(java.nio.file.Path,java.util.List):1076:1091 -> a
    220:220:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    220:220:void addClasspathOrLibraryProvider(java.nio.file.Path,java.util.List):1091 -> a
    221:221:void addClasspathOrLibraryProvider(java.nio.file.Path,java.util.List):1091:1091 -> a
    1:4:com.android.tools.r8.utils.AndroidApp$Builder addDump(java.nio.file.Path):630:633 -> b
    5:5:com.android.tools.r8.utils.AndroidApp$Builder addDump(java.nio.file.Path):632:632 -> b
    6:6:com.android.tools.r8.utils.AndroidApp$Builder addProgramFiles(java.nio.file.Path[]):743:743 -> b
    7:22:com.android.tools.r8.utils.AndroidApp$Builder addFilteredLibraryArchives(java.util.Collection):826:841 -> b
    23:23:com.android.tools.r8.utils.AndroidApp$Builder addFilteredLibraryArchives(java.util.Collection):837:837 -> b
    24:27:com.android.tools.r8.utils.AndroidApp$Builder addLibraryResourceProvider(com.android.tools.r8.ClassFileResourceProvider):851:854 -> b
    28:28:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],com.android.tools.r8.origin.Origin):885:885 -> b
    29:29:java.util.List getProgramResourceProviders():1096:1096 -> b
    1:1:com.android.tools.r8.utils.Reporter getReporter():626:626 -> c
    2:12:com.android.tools.r8.utils.AndroidApp$Builder addFilteredProgramArchives(java.util.Collection):756:766 -> c
    13:13:com.android.tools.r8.utils.AndroidApp$Builder addFilteredProgramArchives(java.util.Collection):762:762 -> c
    14:14:com.android.tools.r8.utils.AndroidApp$Builder addLibraryFile(java.nio.file.Path):820:820 -> c
    1:1:com.android.tools.r8.utils.AndroidApp$Builder addMainDexClasses(java.util.Collection):968:968 -> d
    2:2:boolean hasMainDexList():973:973 -> d
    3:11:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):1038:1046 -> d
    12:13:boolean com.android.tools.r8.utils.FileUtils.isAarFile(java.nio.file.Path):73:74 -> d
    12:13:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):1047 -> d
    14:14:com.android.tools.r8.utils.AarArchiveResourceProvider com.android.tools.r8.utils.AarArchiveResourceProvider.fromArchive(java.nio.file.Path):38:38 -> d
    14:14:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):1048 -> d
    15:19:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):1048:1052 -> d
    20:20:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> d
    20:20:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):1052 -> d
    21:21:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):1052:1052 -> d
    1:7:com.android.tools.r8.utils.AndroidApp$Builder addMainDexListFiles(java.util.Collection):946:952 -> e
    8:8:com.android.tools.r8.utils.AndroidApp$Builder addMainDexListFiles(java.util.Collection):948:948 -> e
    1:2:com.android.tools.r8.utils.AndroidApp$Builder addProgramFiles(java.util.Collection):748:749 -> f
com.android.tools.r8.utils.AndroidApp$Builder$1 -> com.android.tools.r8.utils.i:
    java.util.List val$dataResources -> b
    java.util.List val$programResources -> a
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp$Builder,java.util.List,java.util.List):718:718 -> <init>
    1:3:com.android.tools.r8.DataResourceProvider getDataResourceProvider():726:728 -> getDataResourceProvider
    1:1:java.util.Collection getProgramResources():721:721 -> getProgramResources
com.android.tools.r8.utils.AndroidApp$Builder$1$1 -> com.android.tools.r8.utils.h:
    com.android.tools.r8.utils.AndroidApp$Builder$1 this$1 -> a
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp$Builder$1):728:728 -> <init>
    1:2:void accept(com.android.tools.r8.DataResourceProvider$Visitor):731:732 -> accept
com.android.tools.r8.utils.AndroidApp$Builder$2 -> com.android.tools.r8.utils.e$b$a:
    java.util.List val$finalDataResources -> b
    java.util.List val$finalProgramResources -> a
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp$Builder,java.util.List,java.util.List):997:997 -> <init>
    1:2:com.android.tools.r8.DataResourceProvider getDataResourceProvider():1005:1006 -> getDataResourceProvider
    1:1:java.util.Collection getProgramResources():1000:1000 -> getProgramResources
com.android.tools.r8.utils.AndroidApp$Builder$2$1 -> com.android.tools.r8.utils.j:
    com.android.tools.r8.utils.AndroidApp$Builder$2 this$1 -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():1006:1006 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp$Builder$2):1006:1006 -> <init>
    1:6:void accept(com.android.tools.r8.DataResourceProvider$Visitor):1009:1014 -> accept
com.android.tools.r8.utils.AndroidAppConsumers -> com.android.tools.r8.utils.k:
    com.android.tools.r8.utils.AndroidApp$Builder builder -> a
    boolean $assertionsDisabled -> e
    boolean closed -> b
    com.android.tools.r8.StringConsumer proguardMapConsumer -> d
    com.android.tools.r8.ProgramConsumer programConsumer -> c
    1:1:void <clinit>():30:30 -> <clinit>
    1:1:void <init>():38:38 -> <init>
    2:6:void <init>():32:36 -> <init>
    7:7:void <init>(com.android.tools.r8.BaseCompilerCommand$Builder):42:42 -> <init>
    8:19:void <init>(com.android.tools.r8.BaseCompilerCommand$Builder):32:43 -> <init>
    20:20:void <init>(com.android.tools.r8.utils.InternalOptions):46:46 -> <init>
    21:37:void <init>(com.android.tools.r8.utils.InternalOptions):32:48 -> <init>
    1:1:com.android.tools.r8.utils.AndroidApp$Builder access$000(com.android.tools.r8.utils.AndroidAppConsumers):30:30 -> a
    2:2:boolean access$102(com.android.tools.r8.utils.AndroidAppConsumers,boolean):30:30 -> a
    3:9:com.android.tools.r8.ProgramConsumer wrapProgramConsumer(com.android.tools.r8.ProgramConsumer):52:58 -> a
    10:82:com.android.tools.r8.DexFilePerClassFileConsumer wrapDexFilePerClassFileConsumer(com.android.tools.r8.DexFilePerClassFileConsumer):175:247 -> a
    10:82:com.android.tools.r8.ProgramConsumer wrapProgramConsumer(com.android.tools.r8.ProgramConsumer):58 -> a
    83:87:com.android.tools.r8.ProgramConsumer wrapProgramConsumer(com.android.tools.r8.ProgramConsumer):61:65 -> a
    88:112:com.android.tools.r8.StringConsumer wrapProguardMapConsumer(com.android.tools.r8.StringConsumer):69:93 -> a
    113:185:com.android.tools.r8.DexIndexedConsumer wrapDexIndexedConsumer(com.android.tools.r8.DexIndexedConsumer):97:169 -> a
    186:253:com.android.tools.r8.ClassFileConsumer wrapClassFileConsumer(com.android.tools.r8.ClassFileConsumer):252:319 -> a
    254:255:com.android.tools.r8.utils.AndroidApp build():324:325 -> a
    1:1:boolean access$100(com.android.tools.r8.utils.AndroidAppConsumers):30:30 -> b
com.android.tools.r8.utils.AndroidAppConsumers$1 -> com.android.tools.r8.utils.k$a:
    com.android.tools.r8.utils.AndroidAppConsumers this$0 -> c
    java.lang.StringBuilder stringBuilder -> b
    1:2:void <init>(com.android.tools.r8.utils.AndroidAppConsumers,com.android.tools.r8.StringConsumer):72:73 -> <init>
    1:5:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):77:81 -> accept
    1:3:void finished(com.android.tools.r8.DiagnosticsHandler):86:88 -> finished
com.android.tools.r8.utils.AndroidAppConsumers$2 -> com.android.tools.r8.utils.k$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap files -> c
    com.android.tools.r8.DexIndexedConsumer val$consumer -> d
    com.android.tools.r8.utils.AndroidAppConsumers this$0 -> e
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():99:99 -> <clinit>
    1:4:void <init>(com.android.tools.r8.utils.AndroidAppConsumers,com.android.tools.r8.DexIndexedConsumer,com.android.tools.r8.DexIndexedConsumer):99:102 -> <init>
    1:1:void lambda$finished$0(java.lang.Integer,com.android.tools.r8.utils.AndroidAppConsumers$DescriptorsWithContents):120:120 -> a
    1:2:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):111:112 -> accept
    3:3:void addDexFile(int,byte[],java.util.Set):166:166 -> accept
    3:3:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):112 -> accept
    1:7:void finished(com.android.tools.r8.DiagnosticsHandler):117:123 -> finished
    1:2:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():130:131 -> getDataResourceConsumer
com.android.tools.r8.utils.AndroidAppConsumers$2$1 -> com.android.tools.r8.utils.l:
    com.android.tools.r8.utils.AndroidAppConsumers$2 this$1 -> b
    com.android.tools.r8.DataResourceConsumer val$dataResourceConsumer -> a
    1:1:void <init>(com.android.tools.r8.utils.AndroidAppConsumers$2,com.android.tools.r8.DataResourceConsumer):131:131 -> <init>
    1:2:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):136:137 -> accept
    3:11:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):144:152 -> accept
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):158:159 -> finished
com.android.tools.r8.utils.AndroidAppConsumers$3 -> com.android.tools.r8.utils.n:
    java.util.TreeMap files -> c
    com.android.tools.r8.utils.AndroidAppConsumers this$0 -> e
    com.android.tools.r8.DexFilePerClassFileConsumer val$consumer -> d
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():177:177 -> <clinit>
    1:4:void <init>(com.android.tools.r8.utils.AndroidAppConsumers,com.android.tools.r8.DexFilePerClassFileConsumer,com.android.tools.r8.DexFilePerClassFileConsumer):177:180 -> <init>
    1:1:void lambda$finished$0(java.lang.String,com.android.tools.r8.utils.AndroidAppConsumers$DescriptorsWithContents):202:202 -> a
    1:2:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):188:189 -> accept
    3:3:void addDexFile(java.lang.String,byte[],java.util.Set):194:194 -> accept
    3:3:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):189 -> accept
    1:7:void finished(com.android.tools.r8.DiagnosticsHandler):199:205 -> finished
    1:2:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():212:213 -> getDataResourceConsumer
com.android.tools.r8.utils.AndroidAppConsumers$3$1 -> com.android.tools.r8.utils.m:
    com.android.tools.r8.utils.AndroidAppConsumers$3 this$1 -> b
    com.android.tools.r8.DataResourceConsumer val$dataResourceConsumer -> a
    1:1:void <init>(com.android.tools.r8.utils.AndroidAppConsumers$3,com.android.tools.r8.DataResourceConsumer):213:213 -> <init>
    1:2:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):218:219 -> accept
    3:11:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):226:234 -> accept
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):240:241 -> finished
com.android.tools.r8.utils.AndroidAppConsumers$4 -> com.android.tools.r8.utils.k$c:
    com.android.tools.r8.ClassFileConsumer val$consumer -> d
    com.android.tools.r8.utils.AndroidAppConsumers this$0 -> e
    java.util.List files -> c
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():254:254 -> <clinit>
    1:3:void <init>(com.android.tools.r8.utils.AndroidAppConsumers,com.android.tools.r8.ClassFileConsumer,com.android.tools.r8.ClassFileConsumer):254:256 -> <init>
    1:1:void lambda$finished$0(com.android.tools.r8.utils.AndroidAppConsumers$DescriptorsWithContents):274:274 -> a
    1:2:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):260:261 -> accept
    3:3:void addClassFile(byte[],java.lang.String):265:265 -> accept
    3:3:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):261 -> accept
    1:8:void finished(com.android.tools.r8.DiagnosticsHandler):270:277 -> finished
    1:2:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():284:285 -> getDataResourceConsumer
com.android.tools.r8.utils.AndroidAppConsumers$4$1 -> com.android.tools.r8.utils.o:
    com.android.tools.r8.utils.AndroidAppConsumers$4 this$1 -> b
    com.android.tools.r8.DataResourceConsumer val$dataResourceConsumer -> a
    1:1:void <init>(com.android.tools.r8.utils.AndroidAppConsumers$4,com.android.tools.r8.DataResourceConsumer):285:285 -> <init>
    1:2:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):290:291 -> accept
    3:11:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):298:306 -> accept
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):312:313 -> finished
com.android.tools.r8.utils.AndroidAppConsumers$DescriptorsWithContents -> com.android.tools.r8.utils.k$d:
    byte[] contents -> b
    java.util.Set descriptors -> a
    1:1:void <init>(java.util.Set,byte[],com.android.tools.r8.utils.AndroidAppConsumers$1):328:328 -> <init>
    2:4:void <init>(java.util.Set,byte[]):333:335 -> <init>
com.android.tools.r8.utils.ArchiveBuilder -> com.android.tools.r8.utils.r:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.origin.Origin origin -> b
    java.util.zip.ZipOutputStream stream -> c
    int classesFileIndex -> f
    int openCount -> e
    java.nio.file.Path archive -> a
    java.util.SortedSet delayedWrites -> h
    java.util.Map delayedClassesDexFiles -> g
    boolean closed -> d
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(java.nio.file.Path):38:38 -> <init>
    2:11:void <init>(java.nio.file.Path):31:40 -> <init>
    1:2:void close(com.android.tools.r8.DiagnosticsHandler):51:52 -> a
    3:7:void writeDelayed(com.android.tools.r8.DiagnosticsHandler):67:71 -> a
    3:7:void close(com.android.tools.r8.DiagnosticsHandler):54 -> a
    8:21:void writeDirectoryNow(java.lang.String,com.android.tools.r8.DiagnosticsHandler):115:128 -> a
    8:21:void writeDelayed(com.android.tools.r8.DiagnosticsHandler):71 -> a
    8:21:void close(com.android.tools.r8.DiagnosticsHandler):54 -> a
    22:23:void writeDelayed(com.android.tools.r8.DiagnosticsHandler):73:74 -> a
    22:23:void close(com.android.tools.r8.DiagnosticsHandler):54 -> a
    24:29:void close(com.android.tools.r8.DiagnosticsHandler):55:60 -> a
    30:35:void handleIOException(java.io.IOException,com.android.tools.r8.DiagnosticsHandler):100:105 -> a
    36:36:void addDirectory(java.lang.String,com.android.tools.r8.DiagnosticsHandler):111:111 -> a
    37:42:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):133:138 -> a
    43:43:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):137:137 -> a
    44:53:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):133:142 -> a
    54:54:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):141:141 -> a
    55:55:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):139:139 -> a
    56:56:void addFile(java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):148:148 -> a
    57:60:void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):171:174 -> a
    61:65:void writeNextIfAvailable(com.android.tools.r8.DiagnosticsHandler):160:164 -> a
    61:65:void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):175 -> a
    66:67:void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):178:179 -> a
    68:68:void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):178:178 -> a
    69:69:java.nio.file.Path getPath():190:190 -> a
    1:4:java.util.zip.ZipOutputStream getStreamRaw():80:83 -> b
    5:11:java.util.zip.ZipOutputStream getStream(com.android.tools.r8.DiagnosticsHandler):90:96 -> b
    12:14:void writeFileNow(java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):153:155 -> b
    1:1:com.android.tools.r8.origin.Origin getOrigin():185:185 -> getOrigin
    1:2:void open():45:46 -> open
com.android.tools.r8.utils.ArchiveBuilder$1 -> com.android.tools.r8.utils.p:
com.android.tools.r8.utils.ArchiveBuilder$DelayedData -> com.android.tools.r8.utils.q:
    com.android.tools.r8.ByteDataView content -> b
    java.lang.String name -> a
    boolean isDirectory -> c
    1:1:void <init>(java.lang.String,com.android.tools.r8.ByteDataView,boolean,com.android.tools.r8.utils.ArchiveBuilder$1):193:193 -> <init>
    2:5:void <init>(java.lang.String,com.android.tools.r8.ByteDataView,boolean):206:209 -> <init>
    1:1:com.android.tools.r8.utils.ArchiveBuilder$DelayedData createFile(java.lang.String,com.android.tools.r8.ByteDataView):199:199 -> a
    2:2:com.android.tools.r8.utils.ArchiveBuilder$DelayedData createDirectory(java.lang.String):203:203 -> a
    1:1:int compareTo(java.lang.Object):193:193 -> compareTo
    2:4:int compareTo(com.android.tools.r8.utils.ArchiveBuilder$DelayedData):215:217 -> compareTo
    2:4:int compareTo(java.lang.Object):193 -> compareTo
com.android.tools.r8.utils.ArchiveResourceProvider -> com.android.tools.r8.utils.ArchiveResourceProvider:
    com.android.tools.r8.origin.Origin origin -> a
    com.android.tools.r8.shaking.FilteredClassPath archive -> b
    boolean ignoreDexInArchive -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():36:36 -> <clinit>
    1:5:void <init>(com.android.tools.r8.shaking.FilteredClassPath,boolean):47:51 -> <init>
    1:16:java.util.List readArchive():55:70 -> a
    17:28:java.util.List readArchive():69:80 -> a
    29:37:java.util.List readArchive():76:84 -> a
    38:67:java.util.List readArchive():62:91 -> a
    68:68:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    68:68:java.util.List readArchive():91 -> a
    69:73:java.util.List readArchive():91:95 -> a
    74:105:java.util.List readArchive():57:88 -> a
    106:106:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):86:86 -> a
    107:107:boolean isProgramResourceName(java.lang.String):138:138 -> a
    108:109:boolean com.android.tools.r8.utils.ZipUtils.isDexFile(java.lang.String):143:144 -> a
    108:109:boolean isProgramResourceName(java.lang.String):138 -> a
    110:110:boolean isProgramResourceName(java.lang.String):138:138 -> a
    1:15:void accept(com.android.tools.r8.DataResourceProvider$Visitor):114:128 -> accept
    16:35:void accept(com.android.tools.r8.DataResourceProvider$Visitor):114:133 -> accept
    36:37:void accept(com.android.tools.r8.DataResourceProvider$Visitor):129:130 -> accept
    38:50:void accept(java.util.function.Consumer):142:154 -> accept
    51:60:void accept(java.util.function.Consumer):153:162 -> accept
    61:68:void accept(java.util.function.Consumer):158:165 -> accept
    69:87:void accept(java.util.function.Consumer):150:168 -> accept
    88:122:void accept(java.util.function.Consumer):142:176 -> accept
    123:125:void accept(java.util.function.Consumer):169:171 -> accept
    1:1:com.android.tools.r8.utils.ArchiveResourceProvider fromArchive(java.nio.file.Path,boolean):44:44 -> fromArchive
    1:3:java.util.Collection getProgramResources():101:103 -> getProgramResources
com.android.tools.r8.utils.ArrayUtils -> com.android.tools.r8.utils.s:
    1:10:java.lang.Object[] copyWithSparseChanges(java.lang.Class,java.lang.Object[],java.util.Map):25:34 -> a
    11:30:java.lang.Object[] filter(java.lang.Class,java.lang.Object[],java.util.function.Predicate):50:69 -> a
    31:31:java.lang.Object[] filter(java.lang.Class,java.lang.Object[],java.util.function.Predicate):68:68 -> a
    32:55:java.lang.Object[] map(java.lang.Class,java.lang.Object[],java.util.function.Function):83:106 -> a
    56:56:java.lang.Object[] map(java.lang.Class,java.lang.Object[],java.util.function.Function):105:105 -> a
com.android.tools.r8.utils.AssertionConfigurationWithDefault -> com.android.tools.r8.utils.t:
    java.util.List assertionsConfigurations -> b
    com.android.tools.r8.AssertionsConfiguration$AssertionTransformation defautlTransformation -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():12:12 -> <clinit>
    1:4:void <init>(com.android.tools.r8.AssertionsConfiguration$AssertionTransformation,java.util.List):19:22 -> <init>
com.android.tools.r8.utils.BiMapContainer -> com.android.tools.r8.utils.u:
    java.util.Map original -> a
    java.util.Map inverse -> b
    1:3:void <init>(java.util.Map,java.util.Map):21:23 -> <init>
com.android.tools.r8.utils.BitUtils -> com.android.tools.r8.utils.v:
    boolean isBitInMaskSet(int,int) -> a
    boolean isBitSet(int,int) -> b
com.android.tools.r8.utils.BooleanLatticeElement -> com.android.tools.r8.utils.x:
    com.android.tools.r8.utils.BooleanLatticeElement BOTTOM -> a
    boolean $assertionsDisabled -> b
    1:3:void <clinit>():6:8 -> <clinit>
    1:1:void <init>():27:27 -> <init>
    com.android.tools.r8.utils.OptionalBool asOptionalBool() -> a
    1:9:com.android.tools.r8.utils.BooleanLatticeElement join(com.android.tools.r8.utils.BooleanLatticeElement):56:64 -> a
    10:10:boolean isBottom():0:0 -> a
    10:10:com.android.tools.r8.utils.BooleanLatticeElement join(com.android.tools.r8.utils.BooleanLatticeElement):56 -> a
    boolean isBottom() -> b
    boolean isFalse() -> c
    1:1:boolean isPossiblyTrue():48:48 -> d
    boolean isTrue() -> e
    boolean isUnknown() -> f
    1:1:int hashCode():74:74 -> hashCode
com.android.tools.r8.utils.BooleanLatticeElement$1 -> com.android.tools.r8.utils.w:
    1:1:void <init>():9:9 -> <init>
    1:1:com.android.tools.r8.utils.OptionalBool asOptionalBool():13:13 -> a
    boolean isBottom() -> b
com.android.tools.r8.utils.BooleanUtils -> com.android.tools.r8.utils.y:
    java.lang.Boolean[] VALUES -> a
    1:1:void <clinit>():8:8 -> <clinit>
    int intValue(boolean) -> a
    1:1:java.lang.Boolean[] values():15:15 -> a
com.android.tools.r8.utils.Box -> com.android.tools.r8.utils.z:
    java.lang.Object value -> a
    1:1:void <init>():11:11 -> <init>
    2:3:void <init>(java.lang.Object):13:14 -> <init>
    1:1:java.lang.Object get():18:18 -> a
    2:2:void set(java.lang.Object):22:22 -> a
    1:1:boolean isSet():26:26 -> b
com.android.tools.r8.utils.CfLineToMethodMapper -> com.android.tools.r8.utils.D:
    java.util.Map sourceMethodMapping -> a
    com.android.tools.r8.utils.AndroidApp inputApp -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp):25:25 -> <init>
    2:7:void <init>(com.android.tools.r8.utils.AndroidApp):21:26 -> <init>
    1:1:java.util.Map access$100(com.android.tools.r8.utils.CfLineToMethodMapper):19:19 -> a
    2:6:java.lang.String lookupNameAndDescriptor(java.lang.String,int):31:35 -> a
    7:28:void readLineNumbersFromClassFiles():39:60 -> a
    29:29:void com.android.tools.r8.org.objectweb.asm.ClassReader.accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,int):400:400 -> a
    29:29:void readLineNumbersFromClassFiles():61 -> a
    30:34:void lambda$readLineNumbersFromClassFiles$0(com.android.tools.r8.utils.CfLineToMethodMapper$ClassVisitor,com.android.tools.r8.ProgramResource):45:49 -> a
    35:35:void com.android.tools.r8.org.objectweb.asm.ClassReader.accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,int):400:400 -> a
    35:35:void lambda$readLineNumbersFromClassFiles$0(com.android.tools.r8.utils.CfLineToMethodMapper$ClassVisitor,com.android.tools.r8.ProgramResource):50 -> a
com.android.tools.r8.utils.CfLineToMethodMapper$1 -> com.android.tools.r8.utils.A:
com.android.tools.r8.utils.CfLineToMethodMapper$ClassVisitor -> com.android.tools.r8.utils.B:
    com.android.tools.r8.utils.CfLineToMethodMapper this$0 -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap currentLineNumberMapping -> c
    1:1:void <init>(com.android.tools.r8.utils.CfLineToMethodMapper,com.android.tools.r8.utils.CfLineToMethodMapper$1):84:84 -> <init>
    2:3:void <init>(com.android.tools.r8.utils.CfLineToMethodMapper):88:89 -> <init>
    4:4:void <init>(com.android.tools.r8.utils.CfLineToMethodMapper):86:86 -> <init>
    1:3:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):100:102 -> a
    4:4:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):108:108 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap lambda$visit$0(java.lang.String):102:102 -> c
com.android.tools.r8.utils.CfLineToMethodMapper$MethodLineVisitor -> com.android.tools.r8.utils.C:
    java.lang.String nameAndDescriptor -> j
    java.util.Map lineMethodMapping -> k
    1:1:void <init>(java.lang.String,java.util.Map,com.android.tools.r8.utils.CfLineToMethodMapper$1):113:113 -> <init>
    2:4:void <init>(java.lang.String,java.util.Map):119:121 -> <init>
    1:1:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):126:126 -> b
com.android.tools.r8.utils.CfgPrinter -> com.android.tools.r8.utils.E:
    java.util.Stack opened -> b
    java.lang.StringBuilder builder -> a
    int nextUnusedValue -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():11:11 -> <clinit>
    1:7:void <init>():11:17 -> <init>
    1:1:com.android.tools.r8.utils.CfgPrinter append(int):55:55 -> a
    2:2:com.android.tools.r8.utils.CfgPrinter append(java.lang.String):60:60 -> a
    3:3:com.android.tools.r8.utils.CfgPrinter ln():70:70 -> a
    1:2:com.android.tools.r8.utils.CfgPrinter print(int):43:44 -> b
    3:4:com.android.tools.r8.utils.CfgPrinter print(java.lang.String):49:50 -> b
    3:4:com.android.tools.r8.utils.CfgPrinter begin(java.lang.String):28 -> b
    5:5:com.android.tools.r8.utils.CfgPrinter append(java.lang.String):60:60 -> b
    5:5:com.android.tools.r8.utils.CfgPrinter begin(java.lang.String):29 -> b
    6:7:com.android.tools.r8.utils.CfgPrinter begin(java.lang.String):29:30 -> b
    8:9:void printIndent():75:76 -> b
    1:2:com.android.tools.r8.utils.CfgPrinter end(java.lang.String):35:36 -> c
    3:4:com.android.tools.r8.utils.CfgPrinter print(java.lang.String):49:50 -> c
    3:4:com.android.tools.r8.utils.CfgPrinter end(java.lang.String):37 -> c
    5:5:com.android.tools.r8.utils.CfgPrinter append(java.lang.String):60:60 -> c
    5:5:com.android.tools.r8.utils.CfgPrinter end(java.lang.String):38 -> c
    6:6:com.android.tools.r8.utils.CfgPrinter end(java.lang.String):38:38 -> c
    7:7:com.android.tools.r8.utils.CfgPrinter sp():65:65 -> c
    1:2:com.android.tools.r8.utils.CfgPrinter print(java.lang.String):49:50 -> d
    1:1:java.lang.String toString():82:82 -> toString
com.android.tools.r8.utils.ClassMap -> com.android.tools.r8.utils.H:
    java.util.Map classes -> a
    java.util.concurrent.atomic.AtomicReference classProvider -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():34:34 -> <clinit>
    1:1:void <init>(java.util.Map,com.android.tools.r8.utils.ClassProvider):58:58 -> <init>
    2:7:void <init>(java.util.Map,com.android.tools.r8.utils.ClassProvider):56:61 -> <init>
    java.util.function.Supplier getTransparentSupplier(com.android.tools.r8.graph.DexClass) -> a
    com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass) -> a
    1:28:com.android.tools.r8.graph.DexClass get(com.android.tools.r8.graph.DexType):89:116 -> a
    29:29:com.android.tools.r8.graph.DexClass get(com.android.tools.r8.graph.DexType):114:114 -> a
    30:35:java.util.function.Supplier lambda$get$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):107:112 -> a
    36:46:java.util.List getAllClasses():123:133 -> a
    47:47:java.util.List getAllClasses():124:124 -> a
    48:48:boolean isFullyLoaded():228:228 -> a
    48:48:void forceLoad(java.util.function.Predicate):166 -> a
    49:104:void forceLoad(java.util.function.Predicate):169:224 -> a
    1:9:java.util.Map getAllClassesInMap():139:147 -> b
    10:10:java.util.Map getAllClassesInMap():140:140 -> b
    com.android.tools.r8.graph.ClassKind getClassKind() -> c
    1:1:boolean isFullyLoaded():228:228 -> d
    1:1:java.lang.String toString():81:81 -> toString
com.android.tools.r8.utils.ClassMap$1 -> com.android.tools.r8.utils.F:
com.android.tools.r8.utils.ClassMap$ConcurrentClassLoader -> com.android.tools.r8.utils.G:
    boolean ready -> e
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.DexType type -> c
    com.android.tools.r8.utils.ClassMap classMap -> a
    com.android.tools.r8.utils.ClassProvider provider -> b
    com.android.tools.r8.graph.DexClass clazz -> d
    1:1:void <clinit>():234:234 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.ClassMap,com.android.tools.r8.utils.ClassProvider,com.android.tools.r8.graph.DexType,com.android.tools.r8.utils.ClassMap$1):234:234 -> <init>
    2:2:void <init>(com.android.tools.r8.utils.ClassMap,com.android.tools.r8.utils.ClassProvider,com.android.tools.r8.graph.DexType):243:243 -> <init>
    3:9:void <init>(com.android.tools.r8.utils.ClassMap,com.android.tools.r8.utils.ClassProvider,com.android.tools.r8.graph.DexType):240:246 -> <init>
    1:41:com.android.tools.r8.graph.DexClass get():251:291 -> a
    42:42:com.android.tools.r8.graph.DexClass get():287:287 -> a
    43:62:void lambda$get$0(com.android.tools.r8.graph.DexClass):259:278 -> a
    63:65:void lambda$get$0(com.android.tools.r8.graph.DexClass):264:266 -> a
    66:66:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    66:66:void lambda$get$0(com.android.tools.r8.graph.DexClass):266 -> a
    67:67:void lambda$get$0(com.android.tools.r8.graph.DexClass):266:266 -> a
    1:1:java.lang.Object get():234:234 -> get
com.android.tools.r8.utils.ClassProvider -> com.android.tools.r8.utils.M:
    com.android.tools.r8.graph.ClassKind classKind -> a
    1:2:void <init>(com.android.tools.r8.graph.ClassKind):30:31 -> <init>
    void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer) -> a
    java.util.Collection collectTypes() -> a
    1:1:com.android.tools.r8.utils.ClassProvider forClassFileResources(com.android.tools.r8.graph.ClassKind,com.android.tools.r8.ClassFileResourceProvider,com.android.tools.r8.graph.JarApplicationReader):62:62 -> a
    2:2:com.android.tools.r8.utils.ClassProvider combine(com.android.tools.r8.graph.ClassKind,java.util.List):78:78 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap$Builder com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.builder():211:211 -> a
    3:3:com.android.tools.r8.utils.ClassProvider forPreloadedClasses(com.android.tools.r8.graph.ClassKind,java.util.Collection):68 -> a
    4:7:com.android.tools.r8.utils.ClassProvider forPreloadedClasses(com.android.tools.r8.graph.ClassKind,java.util.Collection):69:72 -> a
    1:1:com.android.tools.r8.graph.ClassKind getClassKind():36:36 -> b
com.android.tools.r8.utils.ClassProvider$1 -> com.android.tools.r8.utils.I:
com.android.tools.r8.utils.ClassProvider$ClassFileResourceReader -> com.android.tools.r8.utils.J:
    com.android.tools.r8.graph.JarApplicationReader reader -> d
    com.android.tools.r8.graph.ClassKind classKind -> b
    com.android.tools.r8.ClassFileResourceProvider provider -> c
    1:1:void <init>(com.android.tools.r8.graph.ClassKind,com.android.tools.r8.ClassFileResourceProvider,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.utils.ClassProvider$1):81:81 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.ClassKind,com.android.tools.r8.ClassFileResourceProvider,com.android.tools.r8.graph.JarApplicationReader):88:91 -> <init>
    1:8:void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer):96:103 -> a
    9:11:void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer):102:104 -> a
    12:18:void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer):99:105 -> a
    19:21:java.util.Collection collectTypes():112:114 -> a
    1:1:java.lang.String toString():121:121 -> toString
com.android.tools.r8.utils.ClassProvider$CombinedClassProvider -> com.android.tools.r8.utils.K:
    java.util.List providers -> b
    1:1:void <init>(com.android.tools.r8.graph.ClassKind,java.util.List,com.android.tools.r8.utils.ClassProvider$1):151:151 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.ClassKind,java.util.List):155:156 -> <init>
    1:2:void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer):161:162 -> a
    3:5:java.util.Collection collectTypes():168:170 -> a
    1:8:java.lang.String toString():177:184 -> toString
com.android.tools.r8.utils.ClassProvider$PreloadedClassProvider -> com.android.tools.r8.utils.L:
    com.android.tools.r8.com.google.common.collect.Multimap classes -> b
    1:1:void <init>(com.android.tools.r8.graph.ClassKind,com.android.tools.r8.com.google.common.collect.Multimap,com.android.tools.r8.utils.ClassProvider$1):125:125 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.ClassKind,com.android.tools.r8.com.google.common.collect.Multimap):129:130 -> <init>
    1:2:void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer):135:136 -> a
    3:3:java.util.Collection collectTypes():142:142 -> a
    1:1:java.lang.String toString():147:147 -> toString
com.android.tools.r8.utils.ClasspathClassCollection -> com.android.tools.r8.utils.N:
    1:1:void <init>(com.android.tools.r8.utils.ClassProvider):14:14 -> <init>
    1:1:java.util.function.Supplier getTransparentSupplier(com.android.tools.r8.graph.DexClass):12:12 -> a
    2:2:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):12:12 -> a
    3:3:com.android.tools.r8.graph.DexClasspathClass resolveClassConflict(com.android.tools.r8.graph.DexClasspathClass,com.android.tools.r8.graph.DexClasspathClass):19:19 -> a
    3:3:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):12 -> a
    4:4:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    4:4:com.android.tools.r8.graph.DexClasspathClass resolveClassConflict(com.android.tools.r8.graph.DexClasspathClass,com.android.tools.r8.graph.DexClasspathClass):19 -> a
    4:4:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):12 -> a
    5:5:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> a
    5:5:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22 -> a
    5:5:com.android.tools.r8.graph.DexClasspathClass resolveClassConflict(com.android.tools.r8.graph.DexClasspathClass,com.android.tools.r8.graph.DexClasspathClass):19 -> a
    5:5:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):12 -> a
    6:6:com.android.tools.r8.graph.DexClasspathClass resolveClassConflict(com.android.tools.r8.graph.DexClasspathClass,com.android.tools.r8.graph.DexClasspathClass):19:19 -> a
    6:6:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):12 -> a
    1:1:com.android.tools.r8.graph.ClassKind getClassKind():29:29 -> c
    1:1:java.lang.String toString():34:34 -> toString
com.android.tools.r8.utils.Consumer3 -> com.android.tools.r8.utils.O:
    void accept(java.lang.Object,java.lang.Object,java.lang.Object) -> a
com.android.tools.r8.utils.DescriptorUtils -> com.android.tools.r8.utils.P:
    java.util.Map typeNameToLetterMap -> a
    boolean $assertionsDisabled -> b
    1:17:void <clinit>():22:38 -> <clinit>
    1:1:java.lang.String javaTypeToShorty(java.lang.String):150:150 -> A
    boolean isPrimitiveType(char) -> a
    1:12:java.lang.String internalToDescriptor(java.lang.String,boolean,boolean):44:55 -> a
    13:17:java.lang.String internalToDescriptor(java.lang.String,boolean,boolean):54:58 -> a
    18:23:java.lang.String toArrayDescriptor(int,java.lang.String):109:114 -> a
    24:30:java.lang.String descriptorToInternalName(java.lang.String):170:176 -> a
    31:31:java.lang.String descriptorToInternalName(java.lang.String):174:174 -> a
    32:32:java.lang.String descriptorToJavaType(java.lang.String,com.android.tools.r8.naming.ClassNameMapper):189:189 -> a
    33:33:java.lang.String primitiveDescriptorToJavaType(char):254:254 -> a
    33:33:java.lang.String descriptorToJavaType(java.lang.String,com.android.tools.r8.naming.ClassNameMapper):201 -> a
    34:34:java.lang.String descriptorToJavaType(java.lang.String,com.android.tools.r8.naming.ClassNameMapper):199:199 -> a
    35:39:java.lang.String descriptorToJavaType(java.lang.String,com.android.tools.r8.naming.ClassNameMapper):192:196 -> a
    40:46:java.lang.String computeInnerClassSeparator(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):411:417 -> a
    47:47:java.lang.String computeInnerClassSeparator(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):416:416 -> a
    48:48:java.lang.String computeInnerClassSeparator(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):414:414 -> a
    49:56:java.lang.String computeInnerClassSeparator(java.lang.String,java.lang.String,java.lang.String):422:429 -> a
    57:60:java.lang.String computeInnerClassSeparator(java.lang.String,java.lang.String,java.lang.String):428:431 -> a
    61:65:java.lang.String guessTypeDescriptor(java.nio.file.Path):503:507 -> a
    66:66:java.lang.String getPathFromJavaType(java.lang.Class):577:577 -> a
    1:1:java.lang.String descriptorToJavaType(java.lang.String):160:160 -> b
    1:3:int getArgumentCount(java.lang.String):650:652 -> c
    1:36:java.lang.String[] getArgumentTypeDescriptors(java.lang.String):604:639 -> d
    37:42:java.lang.String[] getArgumentTypeDescriptors(java.lang.String):625:630 -> d
    43:67:java.lang.String[] getArgumentTypeDescriptors(java.lang.String):612:636 -> d
    68:68:java.lang.String[] getArgumentTypeDescriptors(java.lang.String):621:621 -> d
    1:2:java.lang.String getBinaryNameFromDescriptor(java.lang.String):337:338 -> e
    1:1:java.lang.String getBinaryNameFromJavaType(java.lang.String):329:329 -> f
    1:3:java.lang.String getClassBinaryNameFromDescriptor(java.lang.String):307:309 -> g
    1:2:java.lang.String getClassFileName(java.lang.String):586:587 -> h
    1:2:java.lang.String getClassNameFromDescriptor(java.lang.String):275:276 -> i
    1:2:java.lang.String getDescriptorFromClassBinaryName(java.lang.String):348:349 -> j
    1:3:java.lang.String getDescriptorFromKotlinClassifier(java.lang.String):358:360 -> k
    1:1:java.lang.String getPackageBinaryNameFromJavaType(java.lang.String):319:319 -> l
    1:3:java.lang.String getPackageNameFromBinaryName(java.lang.String):481:483 -> m
    1:1:java.lang.String getPackageNameFromDescriptor(java.lang.String):297:297 -> n
    1:3:java.lang.String getPathFromDescriptor(java.lang.String):571:573 -> o
    1:2:java.lang.String getPathFromJavaType(java.lang.String):581:582 -> p
    1:2:java.lang.String getReturnTypeDescriptor(java.lang.String):591:592 -> q
    1:1:java.lang.String getUnqualifiedClassNameFromDescriptor(java.lang.String):265:265 -> r
    2:3:java.lang.String getUnqualifiedClassNameFromBinaryName(java.lang.String):405:406 -> r
    2:3:java.lang.String getUnqualifiedClassNameFromDescriptor(java.lang.String):265 -> r
    1:13:com.android.tools.r8.utils.DescriptorUtils$ModuleAndDescriptor guessJrtModuleAndTypeDescriptor(java.lang.String):554:566 -> s
    14:14:com.android.tools.r8.utils.DescriptorUtils$ModuleAndDescriptor guessJrtModuleAndTypeDescriptor(java.lang.String):564:564 -> s
    15:15:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> s
    15:15:com.android.tools.r8.utils.DescriptorUtils$ModuleAndDescriptor guessJrtModuleAndTypeDescriptor(java.lang.String):564 -> s
    16:16:com.android.tools.r8.utils.DescriptorUtils$ModuleAndDescriptor guessJrtModuleAndTypeDescriptor(java.lang.String):564:564 -> s
    1:8:java.lang.String guessTypeDescriptor(java.lang.String):519:526 -> t
    9:9:java.lang.String guessTypeDescriptor(java.lang.String):524:524 -> t
    10:10:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> t
    10:10:java.lang.String guessTypeDescriptor(java.lang.String):524 -> t
    11:11:java.lang.String guessTypeDescriptor(java.lang.String):524:524 -> t
    1:26:boolean isClassDescriptor(java.lang.String):438:463 -> u
    1:1:boolean isDescriptor(java.lang.String):228:228 -> v
    2:5:boolean isPrimitiveDescriptor(java.lang.String):206:209 -> v
    2:5:boolean isDescriptor(java.lang.String):229 -> v
    6:10:boolean isArrayDescriptor(java.lang.String):218:222 -> v
    6:10:boolean isDescriptor(java.lang.String):230 -> v
    1:6:boolean isValidJavaType(java.lang.String):124:129 -> w
    1:2:java.lang.String javaTypeToDescriptor(java.lang.String):68:69 -> x
    1:2:java.lang.String javaTypeToDescriptorIfValidJavaType(java.lang.String):94:95 -> y
    1:2:java.lang.String javaTypeToDescriptorIgnorePrimitives(java.lang.String):83:84 -> z
com.android.tools.r8.utils.DescriptorUtils$ModuleAndDescriptor -> com.android.tools.r8.utils.P$a:
    java.lang.String module -> a
    java.lang.String descriptor -> b
    1:3:void <init>(java.lang.String,java.lang.String):533:535 -> <init>
    1:1:java.lang.String getDescriptor():543:543 -> a
    1:1:java.lang.String getModule():539:539 -> b
com.android.tools.r8.utils.DexVersion -> com.android.tools.r8.utils.Q:
    byte[] dexVersionBytes -> b
    com.android.tools.r8.utils.DexVersion[] $VALUES -> g
    com.android.tools.r8.utils.DexVersion V35 -> c
    com.android.tools.r8.utils.DexVersion V37 -> d
    com.android.tools.r8.utils.DexVersion V38 -> e
    com.android.tools.r8.utils.DexVersion V39 -> f
    int dexVersion -> a
    1:4:void <clinit>():13:16 -> <clinit>
    5:5:void <clinit>():12:12 -> <clinit>
    1:3:void <init>(java.lang.String,int,int,byte[]):22:24 -> <init>
    1:1:byte[] getBytes():32:32 -> a
    2:37:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):40:75 -> a
    38:38:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):73:73 -> a
    39:39:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):49:49 -> a
    40:40:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):46:46 -> a
    41:41:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):43:43 -> a
    42:42:java.util.Optional getDexVersion(char,char,char):98:98 -> a
    43:43:java.util.Optional getDexVersion(char,char,char):96:96 -> a
    1:1:int getIntValue():28:28 -> b
    2:2:boolean matchesApiLevel(com.android.tools.r8.utils.AndroidApiLevel):36:36 -> b
    3:3:java.util.Optional getDexVersion(int):90:90 -> b
    4:4:java.util.Optional getDexVersion(int):88:88 -> b
    5:5:java.util.Optional getDexVersion(int):86:86 -> b
    6:6:java.util.Optional getDexVersion(int):84:84 -> b
    7:7:java.util.Optional getDexVersion(int):82:82 -> b
com.android.tools.r8.utils.DiagnosticWithThrowable -> com.android.tools.r8.utils.S:
    java.lang.Throwable throwable -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():9:9 -> <clinit>
    1:3:void <init>(java.lang.Throwable):13:15 -> <init>
    1:1:java.lang.Throwable getThrowable():19:19 -> getThrowable
com.android.tools.r8.utils.DirectoryBuilder -> com.android.tools.r8.utils.T:
    com.android.tools.r8.origin.Origin origin -> b
    java.nio.file.Path root -> a
    1:3:void <init>(java.nio.file.Path):24:26 -> <init>
    void close(com.android.tools.r8.DiagnosticsHandler) -> a
    1:5:void addDirectory(java.lang.String,com.android.tools.r8.DiagnosticsHandler):39:43 -> a
    6:8:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):49:51 -> a
    9:15:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):49:55 -> a
    16:16:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):54:54 -> a
    17:17:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):52:52 -> a
    18:23:void addFile(java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):61:66 -> a
    24:24:void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):73:73 -> a
    25:25:java.nio.file.Path getPath():83:83 -> a
    1:1:com.android.tools.r8.origin.Origin getOrigin():78:78 -> getOrigin
com.android.tools.r8.utils.DisjointSets -> com.android.tools.r8.utils.U:
    java.util.Map parent -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():16:16 -> <clinit>
    1:4:void <init>():16:19 -> <init>
    1:9:java.util.Set collectSet(java.lang.Object):69:77 -> a
    10:20:java.lang.Object union(java.lang.Object,java.lang.Object):106:116 -> a
    21:25:java.util.Map collectSets():139:143 -> a
    26:27:void lambda$toString$2(java.lang.StringBuilder,java.lang.Object,java.util.Set):158:159 -> a
    28:28:void lambda$toString$1(java.lang.StringBuilder,java.lang.Object):159:159 -> a
    1:2:java.lang.Object findOrMakeSet(java.lang.Object):91:92 -> b
    1:11:java.lang.Object findSet(java.lang.Object):39:49 -> c
    1:2:boolean isRepresentativeOrNotPresent(java.lang.Object):59:60 -> d
    1:1:java.util.Set lambda$collectSets$0(java.lang.Object):143:143 -> e
    1:3:java.lang.Object makeSet(java.lang.Object):27:29 -> f
    1:12:java.lang.String toString():150:161 -> toString
com.android.tools.r8.utils.EncodedValueUtils -> com.android.tools.r8.utils.V:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():9:9 -> <clinit>
    1:6:int putBitsFromRightZeroExtended(com.android.tools.r8.dex.DexOutputBuffer,long,int):84:89 -> a
    7:12:byte[] encodeBitsFromRightZeroExtended(long):96:101 -> a
    13:14:int putFloat(com.android.tools.r8.dex.DexOutputBuffer,float):114:115 -> a
    15:17:byte[] encodeFloat(float):119:121 -> a
    18:19:double parseDouble(com.android.tools.r8.dex.DexReader,int):127:128 -> a
    20:21:int putDouble(com.android.tools.r8.dex.DexOutputBuffer,double):132:133 -> a
    22:24:byte[] encodeDouble(double):137:139 -> a
    1:5:int putSigned(com.android.tools.r8.dex.DexOutputBuffer,long,int):25:29 -> b
    6:7:float parseFloat(com.android.tools.r8.dex.DexReader,int):109:110 -> b
    1:9:long parseSigned(com.android.tools.r8.dex.DexReader,int):12:20 -> c
    10:14:int putUnsigned(com.android.tools.r8.dex.DexOutputBuffer,long,int):61:65 -> c
    1:5:long parseUnsigned(com.android.tools.r8.dex.DexReader,int):48:52 -> d
com.android.tools.r8.utils.ExceptionDiagnostic -> com.android.tools.r8.utils.ExceptionDiagnostic:
    com.android.tools.r8.origin.Origin origin -> c
    1:2:void <init>(java.lang.Throwable,com.android.tools.r8.origin.Origin):23:24 -> <init>
    3:3:void <init>(com.android.tools.r8.ResourceException):28:28 -> <init>
    1:13:java.lang.String getDiagnosticMessage():43:55 -> getDiagnosticMessage
    14:14:java.lang.String getDiagnosticMessage():45:45 -> getDiagnosticMessage
    1:1:com.android.tools.r8.origin.Origin getOrigin():33:33 -> getOrigin
    1:1:com.android.tools.r8.position.Position getPosition():38:38 -> getPosition
com.android.tools.r8.utils.ExceptionUtils -> com.android.tools.r8.utils.W:
    1:1:boolean com.android.tools.r8.utils.IdentifierUtils.isDexIdentifierPart(int):14:14 -> a
    2:2:void lambda$withConsumeResourceHandler$0(com.android.tools.r8.StringConsumer,java.lang.String,com.android.tools.r8.DiagnosticsHandler):27:27 -> a
    3:3:void withConsumeResourceHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.StringConsumer,java.lang.String):27:27 -> a
    4:8:void withConsumeResourceHandler(com.android.tools.r8.utils.Reporter,java.util.function.Consumer):37:41 -> a
    4:8:void withConsumeResourceHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.StringConsumer,java.lang.String):27 -> a
    9:9:void withFinishedResourceHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.StringConsumer):31:31 -> a
    10:14:void withConsumeResourceHandler(com.android.tools.r8.utils.Reporter,java.util.function.Consumer):37:41 -> a
    10:14:void withFinishedResourceHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.StringConsumer):31 -> a
    15:29:java.lang.String[] com.android.tools.r8.utils.FlagFile.expandFlagFiles(java.lang.String[],com.android.tools.r8.BaseCommand$Builder):33:47 -> a
    30:47:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):67:84 -> a
    48:50:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):78:80 -> a
    51:51:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.concat(java.lang.Object,java.lang.Object[]):88:88 -> a
    51:51:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):80 -> a
    52:57:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Platform.newArray(java.lang.Object[],int):37:42 -> a
    52:57:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.newArray(java.lang.Object[],int):60 -> a
    52:57:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.concat(java.lang.Object,java.lang.Object[]):88 -> a
    52:57:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):80 -> a
    58:59:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.concat(java.lang.Object,java.lang.Object[]):89:90 -> a
    58:59:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):80 -> a
    60:62:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):80:82 -> a
    63:63:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):75:75 -> a
    64:66:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
    64:66:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):75 -> a
    67:67:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):73:73 -> a
    68:70:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
    68:70:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):73 -> a
    71:71:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction) -> a
    72:74:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
    72:74:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):71 -> a
    75:75:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):69:69 -> a
    76:82:com.android.tools.r8.origin.Origin extractIOExceptionOrigin(java.io.IOException):113:119 -> a
    76:82:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):69 -> a
    83:83:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):69:69 -> a
    84:86:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
    84:86:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):69 -> a
    87:87:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):86:86 -> a
    88:97:void withMainProgramHandler(com.android.tools.r8.utils.ExceptionUtils$MainAction):96:105 -> a
    98:99:void withMainProgramHandler(com.android.tools.r8.utils.ExceptionUtils$MainAction):99:100 -> a
    100:109:java.lang.RuntimeException unwrapExecutionException(java.util.concurrent.ExecutionException):123:132 -> a
    110:111:java.lang.RuntimeException unwrapExecutionException(java.util.concurrent.ExecutionException):126:127 -> a
    1:1:boolean com.android.tools.r8.utils.IdentifierUtils.isDexIdentifierPart(int):14:14 -> b
    1:1:boolean com.android.tools.r8.utils.IdentifierUtils.isDexIdentifierStart(int):10 -> b
    1:2:boolean com.android.tools.r8.utils.IdentifierUtils.isRelaxedDexIdentifierPart(int):18:19 -> c
    boolean com.android.tools.r8.utils.IdentifierUtils.isSimpleNameChar(int) -> d
    boolean com.android.tools.r8.utils.IdentifierUtils.isUnicodeSpace(int) -> e
com.android.tools.r8.utils.ExceptionUtils$CompileAction -> com.android.tools.r8.utils.W$a:
com.android.tools.r8.utils.ExceptionUtils$MainAction -> com.android.tools.r8.utils.W$b:
com.android.tools.r8.utils.FeatureClassMapping -> com.android.tools.r8.utils.FeatureClassMapping:
    java.util.Map parsedRules -> a
    java.util.Map parseNonClassRules -> b
    java.util.Set mappings -> d
    boolean usesOnlyExactMappings -> c
    java.lang.String baseName -> e
    1:1:void <init>(com.android.tools.r8.utils.FeatureClassMapping$1):49:49 -> <init>
    2:2:void <init>():170:170 -> <init>
    3:10:void <init>():51:58 -> <init>
    11:11:void <init>(java.util.List):189:189 -> <init>
    12:153:void <init>(java.util.List):51:192 -> <init>
    1:10:void addRule(java.lang.String,java.lang.String,int):242:251 -> a
    11:11:boolean com.android.tools.r8.utils.FeatureClassMapping$FeaturePredicate.isExactmapping():307:307 -> a
    11:11:void addRule(java.lang.String,java.lang.String,int):251 -> a
    12:12:void addRule(java.lang.String,java.lang.String,int):251:251 -> a
    13:13:void error(java.lang.String,int):255:255 -> a
    1:1:void addBaseMapping(java.lang.String):173:173 -> addBaseMapping
    1:1:void addBaseNonClassMapping(java.lang.String):177:177 -> addBaseNonClassMapping
    1:1:void addMapping(java.lang.String,java.lang.String):181:181 -> addMapping
    1:1:void addNonClassMapping(java.lang.String,java.lang.String):186:186 -> addNonClassMapping
    1:18:void parseAndAdd(java.lang.String,int):220:237 -> b
    19:19:void parseAndAdd(java.lang.String,int):232:232 -> b
    20:20:void parseAndAdd(java.lang.String,int):228:228 -> b
    1:5:java.lang.String featureForClass(java.lang.String):197:201 -> featureForClass
    6:11:boolean com.android.tools.r8.utils.FeatureClassMapping$FeaturePredicate.match(java.lang.String):297:302 -> featureForClass
    6:11:java.lang.String featureForClass(java.lang.String):202 -> featureForClass
    12:20:java.lang.String featureForClass(java.lang.String):203:211 -> featureForClass
    1:1:java.lang.String featureForNonClass(java.lang.String):216:216 -> featureForNonClass
    1:1:com.android.tools.r8.utils.FeatureClassMapping fromSpecification(java.nio.file.Path):94:94 -> fromSpecification
    2:12:com.android.tools.r8.utils.FeatureClassMapping fromSpecification(java.nio.file.Path,com.android.tools.r8.DiagnosticsHandler):99:109 -> fromSpecification
    13:14:com.android.tools.r8.utils.FeatureClassMapping fromSpecification(java.nio.file.Path,com.android.tools.r8.DiagnosticsHandler):104:105 -> fromSpecification
    1:1:java.lang.String getBaseName():66:66 -> getBaseName
com.android.tools.r8.utils.FeatureClassMapping$1 -> com.android.tools.r8.utils.FeatureClassMapping$a:
    1:1:void <init>():94:94 -> <init>
com.android.tools.r8.utils.FeatureClassMapping$FeatureMappingException -> com.android.tools.r8.utils.FeatureClassMapping$FeatureMappingException:
    1:1:void <init>(java.lang.String):262:262 -> <init>
com.android.tools.r8.utils.FeatureClassMapping$FeaturePredicate -> com.android.tools.r8.utils.FeatureClassMapping$b:
    java.lang.String predicate -> a
    java.lang.String feature -> b
    boolean isCatchAll -> c
    boolean isWildcard -> d
    1:1:void <clinit>():268:268 -> <clinit>
    1:12:void <init>(java.lang.String,java.lang.String):275:286 -> <init>
    13:23:void <init>(java.lang.String,java.lang.String):283:293 -> <init>
    24:24:void <init>(java.lang.String,java.lang.String):289:289 -> <init>
com.android.tools.r8.utils.FeatureClassMapping$Internal -> com.android.tools.r8.utils.FeatureClassMapping$c:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():114:114 -> <clinit>
    1:9:java.util.List getClassFileDescriptors(java.lang.String,com.android.tools.r8.DiagnosticsHandler):116:124 -> a
    10:10:boolean lambda$getNonClassFiles$0(java.util.zip.ZipEntry):131:131 -> a
    11:31:com.android.tools.r8.utils.FeatureClassMapping fromJarFiles(java.util.List,java.util.List,java.lang.String,com.android.tools.r8.DiagnosticsHandler):144:164 -> a
    1:6:java.util.List getNonClassFiles(java.lang.String,com.android.tools.r8.DiagnosticsHandler):129:134 -> b
    7:14:java.util.List getNonClassFiles(java.lang.String,com.android.tools.r8.DiagnosticsHandler):129:136 -> b
com.android.tools.r8.utils.FeatureClassMapping$JarFileOrigin -> com.android.tools.r8.utils.FeatureClassMapping$d:
    1:1:void <init>(java.nio.file.Path):84:84 -> <init>
    1:1:java.lang.String part():89:89 -> part
com.android.tools.r8.utils.FeatureClassMapping$SpecificationOrigin -> com.android.tools.r8.utils.FeatureClassMapping$e:
    1:1:void <init>(java.nio.file.Path):72:72 -> <init>
    1:1:java.lang.String part():77:77 -> part
com.android.tools.r8.utils.FieldSignatureEquivalence -> com.android.tools.r8.utils.X:
    boolean ignoreName -> a
    com.android.tools.r8.utils.FieldSignatureEquivalence INSTANCE_IGNORE_NAME -> c
    com.android.tools.r8.utils.FieldSignatureEquivalence INSTANCE -> b
    1:3:void <clinit>():16:18 -> <clinit>
    1:2:void <init>(boolean):23:24 -> <init>
    1:1:com.android.tools.r8.utils.FieldSignatureEquivalence get():28:28 -> c
    1:1:com.android.tools.r8.utils.FieldSignatureEquivalence getEquivalenceIgnoreName():32:32 -> d
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):14:14 -> doEquivalent
    2:5:boolean doEquivalent(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):37:40 -> doEquivalent
    2:5:boolean doEquivalent(java.lang.Object,java.lang.Object):14 -> doEquivalent
    1:1:int doHash(java.lang.Object):14:14 -> doHash
    2:5:int doHash(com.android.tools.r8.graph.DexField):45:48 -> doHash
    2:5:int doHash(java.lang.Object):14 -> doHash
com.android.tools.r8.utils.FileUtils -> com.android.tools.r8.utils.Y:
    boolean isAndroid -> a
    boolean $assertionsDisabled -> b
    1:16:void <clinit>():21:36 -> <clinit>
    1:5:boolean isArchive(java.nio.file.Path):78:82 -> a
    6:6:java.lang.String readTextFile(java.nio.file.Path,java.nio.charset.Charset):86:86 -> a
    7:7:void writeTextFile(java.nio.file.Path,java.util.List):94:94 -> a
    8:8:void writeTextFile(java.nio.file.Path,java.lang.String[]):98:98 -> a
    9:11:java.nio.file.Path validateOutputFile(java.nio.file.Path,com.android.tools.r8.utils.Reporter):103:105 -> a
    12:12:void writeToFile(java.nio.file.Path,java.io.OutputStream,byte[]):167:167 -> a
    13:14:void writeToFile(java.nio.file.Path,java.io.OutputStream,com.android.tools.r8.ByteDataView):172:173 -> a
    15:19:java.io.OutputStream openPathWithDefault(com.android.tools.r8.com.google.common.io.Closer,java.nio.file.Path,java.io.OutputStream,java.nio.file.OpenOption[]):131:135 -> a
    15:19:void writeToFile(java.nio.file.Path,java.io.OutputStream,com.android.tools.r8.ByteDataView):174 -> a
    20:21:void writeToFile(java.nio.file.Path,java.io.OutputStream,com.android.tools.r8.ByteDataView):181:182 -> a
    22:32:void writeToFile(java.nio.file.Path,java.io.OutputStream,com.android.tools.r8.ByteDataView):172:182 -> a
    33:38:java.lang.String withNativeFileSeparators(java.lang.String):186:191 -> a
    39:52:java.util.zip.ZipFile createZipFile(java.io.File,java.nio.charset.Charset):196:209 -> a
    1:6:boolean isClassFile(java.nio.file.Path):49:54 -> b
    1:17:boolean isClassesDexFile(java.nio.file.Path):141:157 -> c
    1:2:boolean isDexFile(java.nio.file.Path):39:40 -> d
    1:2:boolean isJarFile(java.nio.file.Path):58:59 -> e
    1:2:boolean isVDexFile(java.nio.file.Path):44:45 -> f
    1:2:boolean isZipFile(java.nio.file.Path):63:64 -> g
    1:1:java.util.List readAllLines(java.nio.file.Path):90:90 -> h
com.android.tools.r8.utils.FilteredArchiveClassFileProvider -> com.android.tools.r8.utils.Z:
    1:1:void <init>(com.android.tools.r8.shaking.FilteredClassPath):13:13 -> <init>
    1:1:boolean lambda$new$0(com.android.tools.r8.shaking.FilteredClassPath,java.lang.String):13:13 -> a
com.android.tools.r8.utils.FlagFile$FlagFileOrigin -> com.android.tools.r8.utils.a0:
    java.nio.file.Path path -> a
    1:2:void <init>(java.nio.file.Path):22:23 -> <init>
    1:1:java.lang.String part():28:28 -> part
com.android.tools.r8.utils.HeapUtils -> com.android.tools.r8.utils.b0:
    com.sun.management.HotSpotDiagnosticMXBean hotSpotDiagnosticMXBean -> a
    1:3:void initHotSpotMBean():19:21 -> a
    1:3:void dumpHeap(java.nio.file.Path,boolean):35 -> a
    4:5:com.sun.management.HotSpotDiagnosticMXBean getHotSpotDiagnosticMXBean():29:30 -> a
    4:5:void initHotSpotMBean():22 -> a
    4:5:void dumpHeap(java.nio.file.Path,boolean):35 -> a
    6:8:void initHotSpotMBean():22:24 -> a
    6:8:void dumpHeap(java.nio.file.Path,boolean):35 -> a
    9:9:void dumpHeap(java.nio.file.Path,boolean):36:36 -> a
com.android.tools.r8.utils.IROrdering -> com.android.tools.r8.utils.c0:
    java.lang.Iterable order(java.lang.Iterable) -> a
    java.util.Collection order(java.util.Collection) -> a
com.android.tools.r8.utils.IROrdering$IdentityIROrdering -> com.android.tools.r8.utils.c0$a:
    com.android.tools.r8.utils.IROrdering$IdentityIROrdering INSTANCE -> a
    1:1:void <clinit>():21:21 -> <clinit>
    1:1:void <init>():23:23 -> <init>
    java.lang.Iterable order(java.lang.Iterable) -> a
    java.util.Collection order(java.util.Collection) -> a
    1:1:com.android.tools.r8.utils.IROrdering$IdentityIROrdering getInstance():26:26 -> a
com.android.tools.r8.utils.IROrdering$NondeterministicIROrdering -> com.android.tools.r8.utils.c0$b:
    com.android.tools.r8.utils.IROrdering$NondeterministicIROrdering INSTANCE -> a
    1:1:void <clinit>():42:42 -> <clinit>
    1:1:void <init>():44:44 -> <init>
    1:1:com.android.tools.r8.utils.IROrdering$NondeterministicIROrdering getInstance():47:47 -> a
    2:3:java.util.List order(java.lang.Iterable):52:53 -> a
    2:3:java.lang.Iterable order(java.lang.Iterable):40 -> a
    4:5:java.util.List order(java.lang.Iterable):52:53 -> a
    4:5:java.util.List order(java.util.Collection):59 -> a
    4:5:java.util.Collection order(java.util.Collection):40 -> a
com.android.tools.r8.utils.IntObjConsumer -> com.android.tools.r8.utils.d0:
    void accept(int,java.lang.Object) -> a
com.android.tools.r8.utils.InternalArchiveClassFileProvider -> com.android.tools.r8.utils.e0:
    java.util.Set descriptors -> c
    com.android.tools.r8.origin.Origin origin -> b
    java.util.zip.ZipFile openedZipFile -> d
    boolean $assertionsDisabled -> e
    java.nio.file.Path path -> a
    1:1:void <clinit>():39:39 -> <clinit>
    1:1:void <init>(java.nio.file.Path):52:52 -> <init>
    2:2:void <init>(java.nio.file.Path,java.util.function.Predicate):62:62 -> <init>
    3:32:void <init>(java.nio.file.Path,java.util.function.Predicate):42:71 -> <init>
    boolean lambda$new$0(java.lang.String) -> a
    1:12:java.util.zip.ZipFile getOpenZipFile():101:112 -> a
    1:2:void close():117:118 -> close
    1:1:java.util.Set getClassDescriptors():78:78 -> getClassDescriptors
    1:1:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):83:83 -> getProgramResource
    2:3:java.util.zip.ZipEntry getZipEntryFromDescriptor(java.lang.String):122:123 -> getProgramResource
    2:3:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):87 -> getProgramResource
    4:9:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):88:93 -> getProgramResource
    10:15:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):89:94 -> getProgramResource
    16:24:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):88:96 -> getProgramResource
    25:25:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):30:30 -> getProgramResource
    25:25:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):96 -> getProgramResource
    26:26:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):96:96 -> getProgramResource
com.android.tools.r8.utils.InternalOptions -> com.android.tools.r8.utils.f0:
    java.util.function.BiPredicate dexClassChecksumFilter -> P
    boolean enableUninstantiatedTypeOptimization -> f0
    java.lang.String dumpInputToDirectory -> j
    boolean enableInitializedClassesInInstanceMethodsAnalysis -> b0
    java.util.Map missingEnclosingMembers -> Y0
    com.android.tools.r8.features.FeatureSplitConfiguration featureSplitConfiguration -> f
    java.util.List logArgumentsFilter -> w0
    boolean enableHorizontalClassMerging -> q
    java.util.List methodsFilter -> s0
    com.android.tools.r8.StringConsumer proguardMapConsumer -> d1
    boolean minimalMainDex -> V0
    boolean applyInliningToInlinee -> y
    com.android.tools.r8.utils.InternalOptions$ProtoShrinkingOptions protoShrinking -> R0
    boolean enableDeterminismAnalysis -> G
    int classInliningInstructionAllowance -> T
    boolean printMemory -> h
    boolean printCfg -> J0
    boolean processCovariantReturnTypeAnnotations -> E0
    java.util.Map warningInvalidDebugInfo -> a1
    java.lang.String dumpInputToFile -> i
    com.android.tools.r8.utils.OffOrAuto interfaceMethodDesugaring -> C0
    boolean enableNameReflectionOptimization -> I
    boolean enableNestBasedAccessDesugaring -> A0
    boolean skipReadingDexCode -> b1
    boolean enableCfInterfaceMethodDesugaring -> Q
    boolean enableVerticalClassMerging -> r
    java.util.Set extensiveLoggingFilter -> q0
    int minApiLevel -> t0
    boolean readCompileTimeAnnotations -> v0
    boolean enableStringSwitchConversion -> Y
    boolean enableServiceLoaderRewriting -> H
    int inliningInstructionLimit -> U
    boolean ignoreMainDexMissingClasses -> n0
    boolean useSmaliSyntax -> j0
    boolean enableKotlinMetadataRewriting -> N
    com.android.tools.r8.experimental.graphinfo.GraphConsumer keptGraphConsumer -> j1
    boolean enableDynamicTypeOptimization -> o
    boolean enableUninstantiatedTypeOptimizationForInterfaces -> g0
    com.android.tools.r8.dex.Marker marker -> p0
    boolean enableRedundantFieldLoadElimination -> c0
    boolean enableNonNullTracking -> w
    com.android.tools.r8.utils.InternalOptions$KotlinOptimizationOptions kotlinOptimizationOptions -> S0
    boolean enableInheritanceClassInDexDistributor -> W0
    com.android.tools.r8.StringConsumer usageInformationConsumer -> e1
    boolean enableInitializedClassesAnalysis -> E
    int inliningInstructionAllowance -> V
    com.android.tools.r8.utils.AssertionConfigurationWithDefault assertionsConfiguration -> N0
    boolean $assertionsDisabled -> p1
    boolean configurationDebugging -> O0
    com.android.tools.r8.StringConsumer desugaredLibraryKeepRuleConsumer -> i1
    com.android.tools.r8.ProgramConsumer programConsumer -> d
    java.util.Set neverMergePrefixes -> m
    boolean encodeChecksums -> O
    boolean lookupLibraryBeforeProgram -> F0
    boolean enableFieldBitAccessAnalysis -> p
    boolean enableNestReduction -> B0
    boolean enableInlining -> x
    com.android.tools.r8.graph.DexItemFactory itemFactory -> a
    com.android.tools.r8.utils.InternalOptions$OutlineOptions outline -> a0
    boolean enableSideEffectAnalysis -> F
    int inliningMonitorEnterValuesAllowance -> W
    boolean printTimes -> g
    boolean hasMarker -> o0
    boolean verbose -> k0
    com.android.tools.r8.DataResourceConsumer dataResourceConsumer -> e
    boolean enableValuePropagation -> d0
    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> k1
    com.android.tools.r8.utils.InternalOptions$TestingOptions testing -> T0
    boolean enablePropagationOfDynamicTypesAtCallSites -> L
    boolean enableUnusedInterfaceRemoval -> u
    int SUPPORTED_DEX_VERSION -> o1
    com.android.tools.r8.utils.Reporter reporter -> c
    boolean skipIR -> P0
    int inliningControlFlowResolutionBlocksThreshold -> X
    com.android.tools.r8.StringConsumer proguardSeedsConsumer -> f1
    boolean ignoreMissingClasses -> L0
    boolean enableTreeShaking -> H0
    boolean enableClassInlining -> C
    com.android.tools.r8.ir.desugar.DesugaredLibraryConfiguration desugaredLibraryConfiguration -> h1
    boolean enablePropagationOfConstantsAtCallSites -> M
    boolean libraryInterfacesMayHaveStaticInitialization -> n
    boolean enableMainDexListCheck -> G0
    boolean enableDevirtualization -> v
    boolean enableLoadStoreOptimization -> x0
    java.util.List mainDexKeepRules -> U0
    int applyInliningToInlineeMaxDepth -> z
    boolean quiet -> l0
    boolean enableRedundantConstNumberOptimization -> h0
    boolean enableClassStaticizer -> D
    boolean enableValuePropagationForInstanceFields -> e0
    boolean enableStringConcatenationOptimization -> J
    boolean passthroughDexCode -> k
    java.util.Map warningInvalidParameterAnnotations -> Z0
    boolean enableArgumentRemoval -> s
    com.android.tools.r8.StringConsumer mainDexListConsumer -> c1
    boolean enableEnumValueOptimization -> Z
    boolean debug -> Q0
    com.android.tools.r8.StringConsumer configurationConsumer -> g1
    java.util.function.Consumer syntheticProguardRulesConsumer -> m1
    boolean forceProguardCompatibility -> M0
    boolean enableInliningOfInvokesWithNullableReceivers -> A
    int callGraphLikelySpuriousCallEdgeThreshold -> R
    boolean enableMinification -> I0
    com.android.tools.r8.shaking.ProguardConfiguration proguardConfiguration -> b
    com.android.tools.r8.utils.OffOrAuto tryWithResourcesDesugaring -> D0
    boolean enableTreeShakingOfLibraryMethodOverrides -> K
    boolean enableNeverMergePrefixes -> l
    java.util.Set extensiveInterfaceMethodMinifierLoggingFilter -> r0
    com.android.tools.r8.utils.InternalOptions$LineNumberOptimization lineNumberOptimization -> X0
    int numberOfThreads -> i0
    boolean enableLambdaMerging -> y0
    com.android.tools.r8.utils.InternalOptions$DesugarState desugarState -> z0
    boolean enableUnusedArgumentRemoval -> t
    boolean intermediate -> u0
    java.util.Set reportedMissingForDesugaring -> n1
    com.android.tools.r8.DesugarGraphConsumer desugarGraphConsumer -> l1
    boolean invalidDebugInfoFatal -> m0
    boolean disableInliningOfLibraryMethodOverrides -> B
    int classInliningInstructionLimit -> S
    java.lang.String printCfgFile -> K0
    1:21:void <clinit>():66:86 -> <clinit>
    1:1:void <init>():110:110 -> <init>
    2:549:void <init>():104:651 -> <init>
    550:554:void <init>():111:115 -> <init>
    555:555:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):119:119 -> <init>
    556:1103:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):104:651 -> <init>
    1104:1111:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):120:127 -> <init>
    1112:1112:void <init>(com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):131:131 -> <init>
    1113:1660:void <init>(com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):104:651 -> <init>
    1661:1672:void <init>(com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):132:143 -> <init>
    1:9:java.util.Set getExtensiveLoggingFilter():487:495 -> A
    1:1:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():312:312 -> B
    2:2:boolean hasConsumer():308:308 -> B
    2:2:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():312 -> B
    3:3:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():312:312 -> B
    4:4:boolean isGeneratingDexIndexed():337:337 -> B
    4:4:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():313 -> B
    5:5:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():314:314 -> B
    6:6:boolean isGeneratingDexFilePerClassFile():341:341 -> B
    6:6:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():315 -> B
    7:7:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():316:316 -> B
    8:8:boolean isGeneratingClassFiles():345:345 -> B
    8:8:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():317 -> B
    9:11:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():318:320 -> B
    1:1:com.android.tools.r8.shaking.ProguardConfiguration getProguardConfiguration():97:97 -> C
    1:1:boolean hasMethodsFilter():901:901 -> D
    1:1:boolean hasProguardConfiguration():93:93 -> E
    1:1:boolean hasUsageInformationConsumer():608:608 -> F
    1:1:boolean isDesugaredLibraryCompilation():324:324 -> G
    1:1:boolean isGeneratingClassFiles():345:345 -> H
    1:1:boolean isGeneratingDexIndexed():337:337 -> I
    1:1:boolean isGeneratingDex():333 -> I
    2:2:boolean isGeneratingDexFilePerClassFile():341:341 -> I
    2:2:boolean isGeneratingDex():333 -> I
    1:1:boolean hasConsumer():308:308 -> J
    1:1:boolean isInterfaceMethodDesugaringEnabled():1133 -> J
    2:4:boolean isInterfaceMethodDesugaringEnabled():1136:1138 -> J
    1:1:boolean isMinifying():440:440 -> K
    1:1:boolean isShrinking():436:436 -> L
    1:1:boolean isStringSwitchConversionEnabled():1142:1142 -> M
    1:1:com.android.tools.r8.utils.InternalOptions$KotlinOptimizationOptions kotlinOptimizationOptions():479:479 -> N
    1:32:boolean printWarnings():826:857 -> O
    33:72:boolean printWarnings():853:892 -> O
    1:1:com.android.tools.r8.utils.InternalOptions$ProtoShrinkingOptions protoShrinking():475:475 -> P
    1:4:boolean shouldDesugarNests():383:386 -> Q
    5:5:boolean isGeneratingClassFiles():345:345 -> Q
    5:5:boolean canUseNestBasedAccess():1116 -> Q
    5:5:boolean shouldDesugarNests():386 -> Q
    1:1:boolean shouldEnableKeepRuleSynthesisForRecompilation():483:483 -> R
    1:18:void signalFinishedToConsumers():361:378 -> S
    boolean lambda$new$0(java.lang.String,java.lang.Long) -> a
    1:2:void setMarker(com.android.tools.r8.dex.Marker):277:278 -> a
    3:4:com.android.tools.r8.dex.Marker getMarker(com.android.tools.r8.dex.Marker$Tool):282:283 -> a
    5:12:com.android.tools.r8.dex.Marker createMarker(com.android.tools.r8.dex.Marker$Tool):290:297 -> a
    5:12:com.android.tools.r8.dex.Marker getMarker(com.android.tools.r8.dex.Marker$Tool):285 -> a
    13:13:boolean isGeneratingClassFiles():345:345 -> a
    13:13:com.android.tools.r8.dex.Marker createMarker(com.android.tools.r8.dex.Marker$Tool):298 -> a
    13:13:com.android.tools.r8.dex.Marker getMarker(com.android.tools.r8.dex.Marker$Tool):285 -> a
    14:17:com.android.tools.r8.dex.Marker createMarker(com.android.tools.r8.dex.Marker$Tool):299:302 -> a
    14:17:com.android.tools.r8.dex.Marker getMarker(com.android.tools.r8.dex.Marker$Tool):285 -> a
    18:18:boolean assertionsEnabled():646:646 -> a
    19:19:void errorMissingClassMissingNestHost(com.android.tools.r8.graph.DexClass):654:654 -> a
    20:20:void errorMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):676:676 -> a
    21:27:void warningMissingTypeForDesugar(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):770:776 -> a
    28:28:void warningMissingTypeForDesugar(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):771:771 -> a
    29:30:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):783:784 -> a
    31:31:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():716:716 -> a
    31:31:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):786 -> a
    32:34:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):786:788 -> a
    35:35:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> a
    35:35:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):789 -> a
    36:36:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):789:789 -> a
    37:37:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> a
    37:37:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):792 -> a
    38:38:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):792:792 -> a
    39:39:void warningMissingInterfaceForDesugar(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):784:784 -> a
    40:43:void warningMissingEnclosingMember(com.android.tools.r8.graph.DexType,com.android.tools.r8.origin.Origin,int):797:800 -> a
    44:48:void warningInvalidParameterAnnotations(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,int,int):805:809 -> a
    49:55:void warningInvalidDebugInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.errors.InvalidDebugInfoException):814:820 -> a
    56:56:void warningInvalidDebugInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.errors.InvalidDebugInfoException):815:815 -> a
    57:57:java.util.List lambda$warningInvalidDebugInfo$3(com.android.tools.r8.origin.Origin):819:819 -> a
    58:63:boolean methodMatchesFilter(com.android.tools.r8.graph.DexEncodedMethod):906:911 -> a
    64:65:boolean hasMinApi(com.android.tools.r8.utils.AndroidApiLevel):1087:1088 -> a
    1:3:java.lang.String messageErrorMissingNestHost(com.android.tools.r8.graph.DexClass):710:712 -> b
    4:9:java.lang.String messageErrorIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):726:731 -> b
    10:10:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> b
    10:10:java.lang.String messageErrorIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):731 -> b
    11:38:java.lang.String messageErrorIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):733:760 -> b
    39:39:java.util.List lambda$warningInvalidParameterAnnotations$2(com.android.tools.r8.origin.Origin):808:808 -> b
    40:40:boolean canHaveArtCheckCastVerifierBug():1463:1463 -> b
    1:1:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):692:692 -> c
    2:2:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> c
    2:2:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):693 -> c
    3:5:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):694:696 -> c
    6:6:void errorMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):676:676 -> c
    6:6:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):697 -> c
    7:8:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):701:702 -> c
    9:9:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():716:716 -> c
    9:9:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):704 -> c
    10:10:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):704:704 -> c
    11:11:java.lang.String messageWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):764:764 -> c
    11:11:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):706 -> c
    12:12:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):706:706 -> c
    13:13:void nestDesugaringWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):702:702 -> c
    14:16:java.lang.String messageWarningMissingNestHost(com.android.tools.r8.graph.DexClass):719:721 -> c
    17:17:java.util.List lambda$warningMissingEnclosingMember$1(com.android.tools.r8.origin.Origin):799:799 -> c
    18:19:boolean canHaveArtInstanceOfVerifierBug():1418:1419 -> c
    1:4:void nestDesugaringWarningMissingNestHost(com.android.tools.r8.graph.DexClass):665:668 -> d
    5:5:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():716:716 -> d
    5:5:void nestDesugaringWarningMissingNestHost(com.android.tools.r8.graph.DexClass):670 -> d
    6:8:void nestDesugaringWarningMissingNestHost(com.android.tools.r8.graph.DexClass):670:672 -> d
    9:9:void nestDesugaringWarningMissingNestHost(com.android.tools.r8.graph.DexClass):668:668 -> d
    10:10:void errorMissingClassMissingNestHost(com.android.tools.r8.graph.DexClass):654:654 -> d
    10:10:void nestDesugaringWarningMissingNestHost(com.android.tools.r8.graph.DexClass):666 -> d
    11:11:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):680:680 -> d
    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> d
    12:12:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):681 -> d
    13:13:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):682:682 -> d
    14:14:void errorMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):676:676 -> d
    14:14:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):683 -> d
    15:15:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):687:687 -> d
    16:16:java.lang.String messageWarningIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):764:764 -> d
    16:16:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):687 -> d
    17:17:void warningMissingClassIncompleteNest(java.util.List,com.android.tools.r8.graph.AppView):687:687 -> d
    18:18:boolean canHaveDalvikAbstractMethodOnNonAbstractClassVerificationBug():1495:1495 -> d
    1:1:boolean isGeneratingClassFiles():345:345 -> e
    1:1:boolean canHaveDalvikIntUsedAsNonIntPrimitiveTypeBug():1509 -> e
    2:2:boolean canHaveDalvikIntUsedAsNonIntPrimitiveTypeBug():1509:1509 -> e
    3:6:void warningMissingClassMissingNestHost(com.android.tools.r8.graph.DexClass):658:661 -> e
    7:7:void errorMissingClassMissingNestHost(com.android.tools.r8.graph.DexClass):654:654 -> e
    7:7:void warningMissingClassMissingNestHost(com.android.tools.r8.graph.DexClass):659 -> e
    1:1:boolean isGeneratingClassFiles():345:345 -> f
    1:1:boolean canInitCauseAfterAssertionErrorObjectConstructor():1165 -> f
    2:2:boolean canInitCauseAfterAssertionErrorObjectConstructor():1165:1165 -> f
    1:1:boolean isGeneratingClassFiles():345:345 -> g
    1:1:boolean canLeaveStaticInterfaceMethodInvokes():1120 -> g
    2:2:boolean canLeaveStaticInterfaceMethodInvokes():1120:1120 -> g
    1:1:boolean isGeneratingClassFiles():345:345 -> h
    1:1:boolean canUseAssertionErrorTwoArgumentConstructor():1155 -> h
    2:2:boolean canUseAssertionErrorTwoArgumentConstructor():1155:1155 -> h
    1:1:boolean isGeneratingClassFiles():345:345 -> i
    1:1:boolean canUseConstantMethodHandle():1100 -> i
    2:2:boolean canUseConstantMethodHandle():1100:1100 -> i
    1:1:boolean isGeneratingClassFiles():345:345 -> j
    1:1:boolean canUseConstantMethodType():1104 -> j
    2:2:boolean canUseConstantMethodType():1104:1104 -> j
    1:1:boolean isGeneratingClassFiles():345:345 -> k
    1:1:boolean canUseDefaultAndStaticInterfaceMethods():1112 -> k
    2:2:boolean canUseDefaultAndStaticInterfaceMethods():1112:1112 -> k
    1:2:boolean canUseFilledNewArrayOfObjects():1177:1178 -> l
    1:1:boolean isGeneratingClassFiles():345:345 -> m
    1:1:boolean canUseInvokeCustom():1108 -> m
    2:2:boolean canUseInvokeCustom():1108:1108 -> m
    1:1:boolean isGeneratingClassFiles():345:345 -> n
    1:1:boolean canUseInvokePolymorphic():1096 -> n
    2:2:boolean canUseInvokePolymorphic():1096:1096 -> n
    1:1:boolean isGeneratingClassFiles():345:345 -> o
    1:1:boolean canUseInvokePolymorphicOnVarHandle():1092 -> o
    2:2:boolean canUseInvokePolymorphicOnVarHandle():1092:1092 -> o
    1:2:boolean canUseMultidex():1146:1147 -> p
    1:1:boolean isGeneratingClassFiles():345:345 -> q
    1:1:boolean canUseNotInstruction():1213 -> q
    2:2:boolean canUseNotInstruction():1213:1213 -> q
    1:1:boolean isGeneratingClassFiles():345:345 -> r
    1:1:boolean canUsePrivateInterfaceMethods():1128 -> r
    2:2:boolean canUsePrivateInterfaceMethods():1128:1128 -> r
    1:2:boolean canUseSameArrayAndResultRegisterInArrayGetWide():1186:1187 -> s
    1:1:boolean isGeneratingClassFiles():345:345 -> t
    1:1:boolean canUseSuppressedExceptions():1151 -> t
    2:2:boolean canUseSuppressedExceptions():1151:1151 -> t
    1:1:boolean isGeneratingClassFiles():345:345 -> u
    1:1:boolean canUseTwrCloseResourceMethod():1124 -> u
    2:2:boolean canUseTwrCloseResourceMethod():1124:1124 -> u
    1:4:void disableAllOptimizations():147:150 -> v
    1:18:void disableGlobalOptimizations():154:171 -> w
    1:1:void disableNameReflectionOptimization():1076:1076 -> x
    1:2:void enablePropagationOfConstantsAtCallSites():1082:1083 -> y
    1:9:java.util.Set getExtensiveInterfaceMethodMinifierLoggingFilter():513:521 -> z
com.android.tools.r8.utils.InternalOptions$DesugarState -> com.android.tools.r8.utils.f0$a:
    com.android.tools.r8.utils.InternalOptions$DesugarState ONLY_BACKPORT_STATICS -> b
    com.android.tools.r8.utils.InternalOptions$DesugarState ON -> c
    com.android.tools.r8.utils.InternalOptions$DesugarState OFF -> a
    1:4:void <clinit>():78:81 -> <clinit>
    1:1:void <init>(java.lang.String,int):77:77 -> <init>
com.android.tools.r8.utils.InternalOptions$InvalidParameterAnnotationInfo -> com.android.tools.r8.utils.f0$b:
    int expectedParameterCount -> b
    int actualParameterCount -> c
    com.android.tools.r8.graph.DexMethod method -> a
    1:4:void <init>(com.android.tools.r8.graph.DexMethod,int,int):565:568 -> <init>
com.android.tools.r8.utils.InternalOptions$KotlinOptimizationOptions -> com.android.tools.r8.utils.f0$c:
    boolean disableKotlinSpecificOptimizations -> a
    1:3:void <init>():944:946 -> <init>
com.android.tools.r8.utils.InternalOptions$LineNumberOptimization -> com.android.tools.r8.utils.f0$d:
    com.android.tools.r8.utils.InternalOptions$LineNumberOptimization ON -> b
    com.android.tools.r8.utils.InternalOptions$LineNumberOptimization OFF -> a
    1:2:void <clinit>():73:74 -> <clinit>
    1:1:void <init>(java.lang.String,int):72:72 -> <init>
com.android.tools.r8.utils.InternalOptions$OutlineOptions -> com.android.tools.r8.utils.f0$e:
    int threshold -> d
    boolean enabled -> a
    int minSize -> b
    int maxSize -> c
    1:9:void <init>():933:941 -> <init>
com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode -> com.android.tools.r8.utils.f0$f:
    com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode[] $VALUES -> d
    com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode FLATTEN -> c
    com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode REPACKAGE -> b
    com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode NONE -> a
    1:5:void <clinit>():926:930 -> <clinit>
    6:6:void <clinit>():924:924 -> <clinit>
    1:1:void <init>(java.lang.String,int):924:924 -> <init>
com.android.tools.r8.utils.InternalOptions$ProtoShrinkingOptions -> com.android.tools.r8.utils.f0$g:
    boolean enableGeneratedExtensionRegistryShrinking -> a
    boolean enableGeneratedMessageLiteShrinking -> b
    boolean enableGeneratedMessageLiteBuilderShrinking -> c
    boolean traverseOneOfAndRepeatedProtoFields -> d
    1:13:void <init>():949:961 -> <init>
    1:1:boolean isProtoShrinkingEnabled():964:964 -> a
com.android.tools.r8.utils.InternalOptions$TestingOptions -> com.android.tools.r8.utils.f0$h:
    boolean enableSwitchToIfRewriting -> m
    boolean forceAssumeNoneInsertion -> o
    java.util.function.Consumer callSiteOptimizationInfoInspector -> N
    boolean reportUnusedProguardConfigurationRules -> i
    boolean allowOutlinerInterfaceArrayArguments -> J
    boolean enableCheckCastAndInstanceOfRemoval -> k
    java.util.Set validInliningReasons -> u
    boolean measureProguardIfRuleEvaluations -> L
    com.android.tools.r8.utils.InternalOptions$TestingOptions$MinifierTestingOptions minifier -> K
    boolean forceNameReflectionOptimization -> w
    boolean placeExceptionalBlocksLast -> q
    com.android.tools.r8.utils.IROrdering irOrdering -> b
    boolean forceJumboStringProcessing -> s
    java.util.function.Consumer irModifier -> y
    boolean allowNonAbstractClassesWithAbstractMethods -> E
    boolean disableL8AnnotationRemoval -> f
    boolean verifyKeptGraphInfo -> G
    boolean allowUnusedProguardConfigurationRules -> h
    boolean dontReportFailingCheckDiscarded -> A
    boolean allowTypeErrors -> d
    java.io.PrintStream whyAreYouNotInliningConsumer -> C
    boolean forceRedundantConstNumberRemoval -> n
    boolean invertConditionals -> p
    boolean readInputStackMaps -> I
    boolean alwaysUsePessimisticRegisterAllocation -> j
    boolean enableDeadSwitchCaseElimination -> l
    boolean noLocalsTableOnInput -> v
    com.android.tools.r8.utils.InternalOptions$TestingOptions$ProguardIfRuleEvaluationData proguardIfRuleEvaluationData -> M
    boolean enableNarrowingChecksInD8 -> x
    boolean dontCreateMarkerInD8 -> r
    boolean nondeterministicCycleElimination -> t
    byte[] forceDexVersionBytes -> a
    int basicBlockMuncherIterationLimit -> z
    boolean allowInvokeErrors -> e
    boolean enableForceNestBasedAccessDesugaringForTest -> F
    boolean allowClassInlinerGracefulExit -> g
    boolean dumpAll -> H
    boolean deterministicSortingBasedOnDexType -> B
    boolean addCallEdgesForLibraryInvokes -> c
    boolean trackDesugaredAPIConversions -> D
    1:100:void <init>():970:1069 -> <init>
com.android.tools.r8.utils.InternalOptions$TestingOptions$MinifierTestingOptions -> com.android.tools.r8.utils.f0$h$a:
    java.util.Comparator interfaceMethodOrdering -> a
    1:3:void <init>():1046:1048 -> <init>
    1:2:java.util.Comparator getInterfaceMethodOrderingOrDefault(java.util.Comparator):1052:1053 -> a
    3:3:int lambda$getInterfaceMethodOrderingOrDefault$0(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):1053:1053 -> a
com.android.tools.r8.utils.InternalOptions$TestingOptions$ProguardIfRuleEvaluationData -> com.android.tools.r8.utils.f0$h$b:
    int numberOfProguardIfRuleMemberEvaluations -> b
    int numberOfProguardIfRuleClassEvaluations -> a
    1:4:void <init>():1063:1066 -> <init>
com.android.tools.r8.utils.InternalOptions$TypeVersionPair -> com.android.tools.r8.utils.f0$i:
    com.android.tools.r8.graph.DexType type -> b
    int version -> a
    1:3:void <init>(int,com.android.tools.r8.graph.DexType):577:579 -> <init>
com.android.tools.r8.utils.InternalOutputMode -> com.android.tools.r8.utils.g0:
    com.android.tools.r8.utils.InternalOutputMode DexIndexed -> a
    com.android.tools.r8.utils.InternalOutputMode DexFilePerClassFile -> b
    com.android.tools.r8.utils.InternalOutputMode ClassFile -> c
    1:3:void <clinit>():8:10 -> <clinit>
    1:1:void <init>(java.lang.String,int):7:7 -> <init>
    1:1:boolean isGeneratingClassFiles():13:13 -> a
    1:1:boolean isGeneratingDex():17:17 -> b
com.android.tools.r8.utils.IteratorUtils -> com.android.tools.r8.utils.i0:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():17:17 -> <clinit>
    1:1:java.util.Iterator filter(java.util.Iterator,java.util.function.Predicate):21:21 -> a
    2:5:java.lang.Object peekNext(java.util.ListIterator):61:64 -> a
    6:18:boolean anyRemainingMatch(java.util.ListIterator,java.util.function.Predicate):104:116 -> a
    1:3:java.lang.Object peekPrevious(java.util.ListIterator):54:56 -> b
    4:7:void removeIf(java.util.Iterator,java.util.function.Predicate):81:84 -> b
com.android.tools.r8.utils.IteratorUtils$1 -> com.android.tools.r8.utils.h0:
    java.util.Iterator val$iterator -> b
    java.util.function.Predicate val$predicate -> c
    java.lang.Object next -> a
    1:3:void <init>(java.util.Iterator,java.util.function.Predicate):21:23 -> <init>
    1:3:java.lang.Object advance():27:29 -> c
    1:1:boolean hasNext():38:38 -> hasNext
    1:5:java.lang.Object next():43:47 -> next
    6:6:java.lang.Object next():45:45 -> next
com.android.tools.r8.utils.LRUCacheTable -> com.android.tools.r8.utils.k0:
    int columnCapacity -> b
    int rowCapacity -> a
    1:3:void <init>(int,int,float):31:33 -> <init>
    1:1:com.android.tools.r8.utils.LRUCacheTable create(int,int):37:37 -> a
    2:2:java.util.Map lambda$put$0(java.lang.Object):46:46 -> a
    3:4:java.lang.Object put(java.lang.Object,java.lang.Object,java.lang.Object):46:47 -> a
    1:1:boolean removeEldestEntry(java.util.Map$Entry):42:42 -> removeEldestEntry
com.android.tools.r8.utils.LRUCacheTable$LRUCacheRow -> com.android.tools.r8.utils.j0:
    int columnCapacity -> a
    1:2:void <init>(int,float):17:18 -> <init>
    1:1:boolean removeEldestEntry(java.util.Map$Entry):23:23 -> removeEldestEntry
com.android.tools.r8.utils.LebUtils -> com.android.tools.r8.utils.l0:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():10:10 -> <clinit>
    1:6:int parseSleb128(com.android.tools.r8.dex.BinaryReader):65:70 -> a
    7:19:byte[] encodeSleb128(int):76:88 -> a
    20:20:void putSleb128(com.android.tools.r8.dex.DexOutputBuffer,int):99:99 -> a
    1:6:int parseUleb128(com.android.tools.r8.dex.BinaryReader):21:26 -> b
    7:16:byte[] encodeUleb128(int):32:41 -> b
    17:21:void putUleb128(com.android.tools.r8.dex.DexOutputBuffer,int):48:52 -> b
    1:1:int sizeAsSleb128(int):110:110 -> c
    1:1:int sizeAsUleb128(int):57:57 -> d
com.android.tools.r8.utils.LibraryClassCollection -> com.android.tools.r8.utils.m0:
    1:1:void <init>(com.android.tools.r8.utils.ClassProvider):15:15 -> <init>
    1:1:java.util.function.Supplier getTransparentSupplier(com.android.tools.r8.graph.DexClass):13:13 -> a
    2:2:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):13:13 -> a
    3:5:com.android.tools.r8.graph.DexLibraryClass resolveClassConflict(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexLibraryClass):20:22 -> a
    3:5:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):13 -> a
    6:6:com.android.tools.r8.graph.DexLibraryClass resolveClassConflict(com.android.tools.r8.graph.DexLibraryClass,com.android.tools.r8.graph.DexLibraryClass):21:21 -> a
    6:6:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):13 -> a
    1:1:com.android.tools.r8.graph.ClassKind getClassKind():34:34 -> c
    1:1:java.lang.String toString():39:39 -> toString
com.android.tools.r8.utils.LineNumberOptimizer -> com.android.tools.r8.utils.u0:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():59:59 -> <clinit>
    1:1:com.android.tools.r8.ir.code.Position access$900(com.android.tools.r8.ir.code.Position,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List):59:59 -> a
    2:12:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):268:278 -> a
    13:13:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> a
    13:13:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):279 -> a
    14:16:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):279:281 -> a
    17:19:void addClassToClassNaming(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,java.util.function.Supplier):457:459 -> a
    17:19:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):289 -> a
    20:58:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):292:330 -> a
    59:161:void optimizeDexCodePositions(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List,boolean):544:646 -> a
    59:161:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):331 -> a
    162:162:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):333:333 -> a
    163:187:void optimizeCfCodePositions(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List,com.android.tools.r8.graph.AppView):655:679 -> a
    163:187:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):334 -> a
    188:188:void optimizeCfCodePositions(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List,com.android.tools.r8.graph.AppView):672:672 -> a
    188:188:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):334 -> a
    189:220:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):338:369 -> a
    221:221:void com.android.tools.r8.naming.MemberNaming.<init>(com.android.tools.r8.naming.MemberNaming$Signature,java.lang.String):61:61 -> a
    221:221:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):369 -> a
    222:250:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):370:398 -> a
    251:261:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):396:406 -> a
    262:274:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.naming.NamingLens):403:415 -> a
    275:276:com.android.tools.r8.naming.ClassNaming$Builder lambda$run$0(com.android.tools.r8.naming.ClassNameMapper$Builder,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):284:285 -> a
    277:277:com.android.tools.r8.naming.ClassNaming$Builder lambda$run$0(com.android.tools.r8.naming.ClassNameMapper$Builder,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):283:283 -> a
    278:279:com.android.tools.r8.naming.MemberNaming$MethodSignature lambda$run$2(com.android.tools.r8.graph.AppView,java.util.Map,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):361:362 -> a
    280:280:com.android.tools.r8.naming.MemberNaming$MethodSignature lambda$run$1(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):365:365 -> a
    281:281:com.android.tools.r8.graph.DexType com.android.tools.r8.graph.DexClass.getType():720:720 -> a
    281:281:com.android.tools.r8.naming.MemberNaming$MethodSignature lambda$run$1(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):366 -> a
    282:282:com.android.tools.r8.naming.MemberNaming$MethodSignature lambda$run$1(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):365:365 -> a
    283:296:int getMethodStartLine(com.android.tools.r8.graph.DexEncodedMethod):419:432 -> a
    297:297:void sortMethods(java.util.List):441:441 -> a
    298:299:int lambda$sortMethods$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):443:444 -> a
    300:300:int com.android.tools.r8.graph.DexEncodedMethod.slowCompare(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):1205:1205 -> a
    300:300:int lambda$sortMethods$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):447 -> a
    301:301:void addFieldsToClassNaming(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,java.util.function.Supplier):468:468 -> a
    302:308:void lambda$addFieldsToClassNaming$4(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,java.util.function.Supplier,com.android.tools.r8.graph.DexEncodedField):470:476 -> a
    309:309:void com.android.tools.r8.naming.MemberNaming.<init>(com.android.tools.r8.naming.MemberNaming$Signature,java.lang.String):61:61 -> a
    309:309:void lambda$addFieldsToClassNaming$4(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,java.util.function.Supplier,com.android.tools.r8.graph.DexEncodedField):476 -> a
    310:310:void lambda$addFieldsToClassNaming$4(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,java.util.function.Supplier,com.android.tools.r8.graph.DexEncodedField):477:477 -> a
    311:318:java.util.IdentityHashMap groupMethodsByRenamedName(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass):484:491 -> a
    319:326:boolean doesContainPositions(com.android.tools.r8.graph.DexEncodedMethod):502:509 -> a
    319:326:java.util.IdentityHashMap groupMethodsByRenamedName(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass):492 -> a
    327:329:java.util.IdentityHashMap groupMethodsByRenamedName(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass):493:495 -> a
    330:330:java.util.List lambda$groupMethodsByRenamedName$5(com.android.tools.r8.graph.DexString):494:494 -> a
    331:336:boolean doesContainPositions(com.android.tools.r8.graph.DexCode):515:520 -> a
    337:339:boolean doesContainPositions(com.android.tools.r8.graph.CfCode):528:530 -> a
    1:4:com.android.tools.r8.ir.code.Position remapAndAdd(com.android.tools.r8.ir.code.Position,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List):685:688 -> b
com.android.tools.r8.utils.LineNumberOptimizer$1 -> com.android.tools.r8.utils.n0:
    boolean $assertionsDisabled -> m
    com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper val$positionRemapper -> i
    com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter val$positionEventEmitter -> h
    com.android.tools.r8.utils.Box val$inlinedOriginalPosition -> k
    java.util.List val$mappedPositions -> j
    int emittedPc -> g
    java.util.List val$processedEvents -> l
    1:1:void <clinit>():555:555 -> <clinit>
    1:4:void <init>(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List,com.android.tools.r8.utils.Box,java.util.List):555:558 -> <init>
    1:14:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):571:584 -> a
    15:15:void visit(com.android.tools.r8.graph.DexDebugEvent$SetFile):593:593 -> a
    16:16:void visit(com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd):598:598 -> a
    17:17:void visit(com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin):603:603 -> a
    18:19:void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal):610:611 -> a
    20:21:void visit(com.android.tools.r8.graph.DexDebugEvent$EndLocal):616:617 -> a
    22:23:void visit(com.android.tools.r8.graph.DexDebugEvent$RestartLocal):622:623 -> a
    1:3:void flushPc():562:564 -> f
com.android.tools.r8.utils.LineNumberOptimizer$IdentityPositionRemapper -> com.android.tools.r8.utils.o0:
    1:1:void <init>():67:67 -> <init>
    2:2:void <init>(com.android.tools.r8.utils.LineNumberOptimizer$1):67:67 -> <init>
    1:1:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):71:71 -> a
com.android.tools.r8.utils.LineNumberOptimizer$KotlinInlineFunctionPositionRemapper -> com.android.tools.r8.utils.p0:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result parsedData -> g
    java.util.Map parsedKotlinSourceDebugExtensions -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.utils.CfLineToMethodMapper lineToMethodMapper -> d
    boolean $assertionsDisabled -> h
    com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper baseRemapper -> e
    com.android.tools.r8.graph.DexEncodedMethod currentMethod -> f
    1:1:void <clinit>():108:108 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,com.android.tools.r8.utils.CfLineToMethodMapper,com.android.tools.r8.utils.LineNumberOptimizer$1):108:108 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,com.android.tools.r8.utils.CfLineToMethodMapper):123:123 -> <init>
    3:18:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,com.android.tools.r8.utils.CfLineToMethodMapper):112:127 -> <init>
    1:1:com.android.tools.r8.graph.DexEncodedMethod access$202(com.android.tools.r8.utils.LineNumberOptimizer$KotlinInlineFunctionPositionRemapper,com.android.tools.r8.graph.DexEncodedMethod):108:108 -> a
    2:4:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):132:134 -> a
    5:11:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result getAndParseSourceDebugExtension(com.android.tools.r8.graph.DexType):180:186 -> a
    5:11:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):134 -> a
    12:12:com.android.tools.r8.graph.DexClass com.android.tools.r8.graph.AppView.definitionFor(com.android.tools.r8.graph.DexType):190:190 -> a
    12:12:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result getAndParseSourceDebugExtension(com.android.tools.r8.graph.DexType):186 -> a
    12:12:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):134 -> a
    13:18:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result getAndParseSourceDebugExtension(com.android.tools.r8.graph.DexType):187:192 -> a
    13:18:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):134 -> a
    19:19:com.android.tools.r8.kotlin.KotlinSourceDebugExtensionParser$Result getAndParseSourceDebugExtension(com.android.tools.r8.graph.DexType):184:184 -> a
    19:19:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):134 -> a
    20:36:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):136:152 -> a
    37:39:java.lang.String com.android.tools.r8.utils.CfLineToMethodMapper.getName(java.lang.String):73:75 -> a
    37:39:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):153 -> a
    40:42:java.lang.String com.android.tools.r8.utils.CfLineToMethodMapper.getDescriptor(java.lang.String):79:81 -> a
    40:42:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):154 -> a
    43:53:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):155:165 -> a
    54:68:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):162:176 -> a
com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition -> com.android.tools.r8.utils.q0:
    int obfuscatedLine -> d
    int originalLine -> b
    com.android.tools.r8.ir.code.Position caller -> c
    com.android.tools.r8.graph.DexMethod method -> a
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.ir.code.Position,int,com.android.tools.r8.utils.LineNumberOptimizer$1):246:246 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.ir.code.Position,int):253:257 -> <init>
    1:1:com.android.tools.r8.graph.DexMethod access$300(com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition):246:246 -> a
    1:1:int access$400(com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition):246:246 -> b
    1:1:int access$500(com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition):246:246 -> c
    1:1:com.android.tools.r8.ir.code.Position access$600(com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition):246:246 -> d
com.android.tools.r8.utils.LineNumberOptimizer$OptimizingPositionRemapper -> com.android.tools.r8.utils.r0:
    boolean $assertionsDisabled -> e
    int nextOptimizedLineNumber -> d
    com.android.tools.r8.graph.DexMethod previousMethod -> b
    int previousSourceLine -> c
    int maxLineDelta -> a
    1:1:void <clinit>():75:75 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions):81:81 -> <init>
    2:10:void <init>(com.android.tools.r8.utils.InternalOptions):77:85 -> <init>
    1:15:com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position):90:104 -> a
com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter -> com.android.tools.r8.utils.s0:
    java.util.List processedEvents -> f
    boolean $assertionsDisabled -> g
    int previousPc -> d
    int startLine -> b
    com.android.tools.r8.graph.DexMethod method -> c
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> a
    com.android.tools.r8.ir.code.Position previousPosition -> e
    1:1:void <clinit>():203:203 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod,java.util.List,com.android.tools.r8.utils.LineNumberOptimizer$1):203:203 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod,java.util.List):212:212 -> <init>
    3:13:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod,java.util.List):205:215 -> <init>
    1:2:void emitAdvancePc(int):219:220 -> a
    1:2:void access$800(com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter,int):203 -> a
    3:15:void emitPositionEvents(int,com.android.tools.r8.ir.code.Position):224:236 -> a
    3:15:void access$1000(com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter,int,com.android.tools.r8.ir.code.Position):203 -> a
    16:17:int getStartLine():240:241 -> a
    16:17:int access$1100(com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter):203 -> a
com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper -> com.android.tools.r8.utils.t0:
    com.android.tools.r8.utils.Pair createRemappedPosition(com.android.tools.r8.ir.code.Position) -> a
com.android.tools.r8.utils.ListUtils -> com.android.tools.r8.utils.v0:
    1:1:java.lang.Object last(java.util.List):20:20 -> a
    2:3:int lastIndexMatching(java.util.List,java.util.function.Predicate):24:25 -> a
    4:6:java.util.List map(java.util.Collection,java.util.function.Function):33:35 -> a
com.android.tools.r8.utils.LongInterval -> com.android.tools.r8.utils.w0:
    long max -> b
    long min -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():10:10 -> <clinit>
    1:4:void <init>(int,int):15:18 -> <init>
    5:8:void <init>(long,long):21:24 -> <init>
    1:1:long getMax():32:32 -> a
    2:2:boolean containsValue(long):45:45 -> a
    3:3:boolean overlapsWith(com.android.tools.r8.utils.LongInterval):53:53 -> a
    1:1:long getMin():28:28 -> b
    1:2:long getSingleValue():40:41 -> c
    1:1:boolean isSingleValue():36:36 -> d
    1:2:boolean equals(java.lang.Object):66:67 -> equals
    1:1:int hashCode():58:58 -> hashCode
    1:1:java.lang.String toString():74:74 -> toString
com.android.tools.r8.utils.MainDexList -> com.android.tools.r8.utils.x0:
    1:9:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):21:29 -> a
    10:10:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):26:26 -> a
    11:11:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    11:11:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):26 -> a
    12:12:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):26:26 -> a
    13:13:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):22:22 -> a
    14:14:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    14:14:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):22 -> a
    15:15:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):22:22 -> a
    16:31:java.util.Set parseList(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexItemFactory):35:50 -> a
    32:32:java.util.Set parseList(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexItemFactory):37:37 -> a
    33:33:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):34:34 -> a
    33:33:java.util.Set parseList(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexItemFactory):37 -> a
    34:34:java.util.Set parseList(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexItemFactory):37:37 -> a
com.android.tools.r8.utils.MethodJavaSignatureEquivalence -> com.android.tools.r8.utils.y0:
    com.android.tools.r8.utils.MethodJavaSignatureEquivalence INSTANCE_IGNORE_NAME -> c
    com.android.tools.r8.utils.MethodJavaSignatureEquivalence INSTANCE -> b
    boolean ignoreName -> a
    1:4:void <clinit>():17:20 -> <clinit>
    1:2:void <init>(boolean):25:26 -> <init>
    1:1:com.android.tools.r8.utils.MethodJavaSignatureEquivalence get():30:30 -> c
    1:1:com.android.tools.r8.utils.MethodJavaSignatureEquivalence getEquivalenceIgnoreName():34:34 -> d
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):15:15 -> doEquivalent
    2:5:boolean doEquivalent(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):39:42 -> doEquivalent
    2:5:boolean doEquivalent(java.lang.Object,java.lang.Object):15 -> doEquivalent
    1:1:int doHash(java.lang.Object):15:15 -> doHash
    2:5:int doHash(com.android.tools.r8.graph.DexMethod):47:50 -> doHash
    2:5:int doHash(java.lang.Object):15 -> doHash
com.android.tools.r8.utils.MethodSignatureEquivalence -> com.android.tools.r8.utils.z0:
    com.android.tools.r8.utils.MethodSignatureEquivalence INSTANCE -> b
    com.android.tools.r8.utils.MethodSignatureEquivalence INSTANCE_IGNORE_NAME -> c
    boolean ignoreName -> a
    1:3:void <clinit>():16:18 -> <clinit>
    1:2:void <init>(boolean):23:24 -> <init>
    1:1:com.android.tools.r8.utils.MethodSignatureEquivalence get():28:28 -> c
    1:1:com.android.tools.r8.utils.MethodSignatureEquivalence getEquivalenceIgnoreName():32:32 -> d
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):14:14 -> doEquivalent
    2:5:boolean doEquivalent(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):37:40 -> doEquivalent
    2:5:boolean doEquivalent(java.lang.Object,java.lang.Object):14 -> doEquivalent
    1:1:int doHash(java.lang.Object):14:14 -> doHash
    2:5:int doHash(com.android.tools.r8.graph.DexMethod):45:48 -> doHash
    2:5:int doHash(java.lang.Object):14 -> doHash
com.android.tools.r8.utils.OffOrAuto -> com.android.tools.r8.utils.A0:
    com.android.tools.r8.utils.OffOrAuto Auto -> b
    com.android.tools.r8.utils.OffOrAuto Off -> a
    com.android.tools.r8.utils.OffOrAuto[] $VALUES -> c
    1:1:void <clinit>():11:11 -> <clinit>
    2:2:void <clinit>():10:10 -> <clinit>
    1:1:void <init>(java.lang.String,int):10:10 -> <init>
com.android.tools.r8.utils.OneShotByteResource -> com.android.tools.r8.utils.B0:
    com.android.tools.r8.origin.Origin origin -> a
    java.util.Set classDescriptors -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ProgramResource$Kind kind -> b
    byte[] bytes -> c
    1:1:void <clinit>():13:13 -> <clinit>
    1:6:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.ProgramResource$Kind,byte[],java.util.Set):26:31 -> <init>
    1:1:com.android.tools.r8.utils.OneShotByteResource create(com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,byte[],java.util.Set):22:22 -> a
    1:3:java.io.InputStream getByteStream():46:48 -> getByteStream
    1:1:java.util.Set getClassDescriptors():54:54 -> getClassDescriptors
    1:1:com.android.tools.r8.ProgramResource$Kind getKind():41:41 -> getKind
    1:1:com.android.tools.r8.origin.Origin getOrigin():36:36 -> getOrigin
com.android.tools.r8.utils.OptionalBool -> com.android.tools.r8.utils.F0:
    com.android.tools.r8.utils.OptionalBool UNKNOWN -> e
    com.android.tools.r8.utils.OptionalBool TRUE -> c
    com.android.tools.r8.utils.OptionalBool FALSE -> d
    1:29:void <clinit>():9:37 -> <clinit>
    1:1:void <init>():51:51 -> <init>
    com.android.tools.r8.utils.OptionalBool asOptionalBool() -> a
    1:1:com.android.tools.r8.utils.OptionalBool of(boolean):54:54 -> a
    1:1:com.android.tools.r8.utils.OptionalBool unknown():58:58 -> g
    1:1:int hashCode():73:73 -> hashCode
com.android.tools.r8.utils.OptionalBool$1 -> com.android.tools.r8.utils.C0:
    1:1:void <init>():10:10 -> <init>
    boolean isTrue() -> e
com.android.tools.r8.utils.OptionalBool$2 -> com.android.tools.r8.utils.D0:
    1:1:void <init>():24:24 -> <init>
    boolean isFalse() -> c
com.android.tools.r8.utils.OptionalBool$3 -> com.android.tools.r8.utils.E0:
    1:1:void <init>():38:38 -> <init>
    boolean isUnknown() -> f
com.android.tools.r8.utils.OptionsParsing -> com.android.tools.r8.utils.G0:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():10:10 -> <clinit>
    1:13:java.lang.String tryParseSingle(com.android.tools.r8.utils.OptionsParsing$ParseContext,java.lang.String,java.lang.String):37:49 -> a
    14:18:java.lang.String tryParseSingle(com.android.tools.r8.utils.OptionsParsing$ParseContext,java.lang.String,java.lang.String):39:43 -> a
    19:19:java.lang.String tryParseSingle(com.android.tools.r8.utils.OptionsParsing$ParseContext,java.lang.String,java.lang.String):41:41 -> a
    20:27:java.lang.Boolean tryParseBoolean(com.android.tools.r8.utils.OptionsParsing$ParseContext,java.lang.String):60:67 -> a
    1:11:java.util.List tryParseMulti(com.android.tools.r8.utils.OptionsParsing$ParseContext,java.lang.String):18:28 -> b
com.android.tools.r8.utils.OptionsParsing$ParseContext -> com.android.tools.r8.utils.G0$a:
    java.lang.String[] args -> a
    int nextIndex -> b
    1:1:void <init>(java.lang.String[]):76:76 -> <init>
    2:5:void <init>(java.lang.String[]):74:77 -> <init>
    1:1:java.lang.String head():81:81 -> a
    1:5:java.lang.String next():85:89 -> b
com.android.tools.r8.utils.OrderedMergingIterator -> com.android.tools.r8.utils.H0:
    java.util.List other -> b
    java.util.List one -> a
    int otherIndex -> d
    int oneIndex -> c
    1:1:void <init>(java.util.List,java.util.List):21:21 -> <init>
    2:7:void <init>(java.util.List,java.util.List):18:23 -> <init>
    1:2:com.android.tools.r8.graph.KeyedDexItem next():40:41 -> c
    3:6:java.lang.Object getNextChecked(java.util.List,int):27:30 -> c
    3:6:com.android.tools.r8.graph.KeyedDexItem next():41 -> c
    7:7:com.android.tools.r8.graph.KeyedDexItem next():41:41 -> c
    8:8:java.lang.Object getNextChecked(java.util.List,int):28:28 -> c
    8:8:com.android.tools.r8.graph.KeyedDexItem next():41 -> c
    9:10:com.android.tools.r8.graph.KeyedDexItem next():43:44 -> c
    11:14:java.lang.Object getNextChecked(java.util.List,int):27:30 -> c
    11:14:com.android.tools.r8.graph.KeyedDexItem next():44 -> c
    15:15:com.android.tools.r8.graph.KeyedDexItem next():44:44 -> c
    16:16:java.lang.Object getNextChecked(java.util.List,int):28:28 -> c
    16:16:com.android.tools.r8.graph.KeyedDexItem next():44 -> c
    17:24:com.android.tools.r8.graph.KeyedDexItem next():46:53 -> c
    25:25:com.android.tools.r8.graph.KeyedDexItem next():51:51 -> c
    1:1:boolean hasNext():35:35 -> hasNext
    1:1:java.lang.Object next():13:13 -> next
com.android.tools.r8.utils.OutputBuilder -> com.android.tools.r8.utils.I0:
    void addDirectory(java.lang.String,com.android.tools.r8.DiagnosticsHandler) -> a
    void addFile(java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler) -> a
    void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler) -> a
    void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler) -> a
    void close(com.android.tools.r8.DiagnosticsHandler) -> a
    java.nio.file.Path getPath() -> a
com.android.tools.r8.utils.Pair -> com.android.tools.r8.utils.J0:
    java.lang.Object second -> b
    java.lang.Object first -> a
    1:3:void <init>(java.lang.Object,java.lang.Object):23:25 -> <init>
    1:1:java.lang.Object getFirst():29:29 -> a
    2:2:void setFirst(java.lang.Object):37:37 -> a
    1:1:java.lang.Object getSecond():33:33 -> b
    2:2:void setSecond(java.lang.Object):41:41 -> b
    1:1:boolean equals(java.lang.Object):51:51 -> equals
    1:1:int hashCode():46:46 -> hashCode
com.android.tools.r8.utils.PredicateSet -> com.android.tools.r8.utils.K0:
    java.util.List predicates -> b
    java.util.Set elements -> a
    1:4:void <init>():14:17 -> <init>
    1:1:boolean addElement(java.lang.Object):20:20 -> a
    2:2:void addPredicate(java.util.function.Predicate):24:24 -> a
    3:9:com.android.tools.r8.utils.PredicateSet rewriteItems(java.util.function.Function):28:34 -> a
    1:5:boolean contains(java.lang.Object):39:43 -> b
com.android.tools.r8.utils.PreloadedClassFileProvider -> com.android.tools.r8.utils.L0:
    java.util.Map content -> a
    1:1:void <init>(java.util.Map,com.android.tools.r8.utils.PreloadedClassFileProvider$1):19:19 -> <init>
    2:3:void <init>(java.util.Map):37:38 -> <init>
    1:3:com.android.tools.r8.ClassFileResourceProvider fromClassData(java.lang.String,byte[]):57:59 -> a
    4:4:com.android.tools.r8.utils.PreloadedClassFileProvider$Builder builder():71:71 -> a
    1:1:java.util.Set getClassDescriptors():43:43 -> getClassDescriptors
    1:6:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):48:53 -> getProgramResource
    7:7:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):52:52 -> getProgramResource
    1:1:java.lang.String toString():64:64 -> toString
com.android.tools.r8.utils.PreloadedClassFileProvider$1 -> com.android.tools.r8.utils.L0$a:
com.android.tools.r8.utils.PreloadedClassFileProvider$Builder -> com.android.tools.r8.utils.L0$b:
    java.util.Map content -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():74:74 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.PreloadedClassFileProvider$1):74:74 -> <init>
    2:2:void <init>():78:78 -> <init>
    3:3:void <init>():76:76 -> <init>
    1:5:com.android.tools.r8.utils.PreloadedClassFileProvider$Builder addResource(java.lang.String,byte[]):82:86 -> a
    6:8:com.android.tools.r8.utils.PreloadedClassFileProvider build():91:93 -> a
com.android.tools.r8.utils.PreloadedClassFileProvider$ClassDescriptorOrigin -> com.android.tools.r8.utils.L0$c:
    java.lang.String descriptor -> a
    1:2:void <init>(java.lang.String):25:26 -> <init>
    1:1:java.lang.String part():31:31 -> part
com.android.tools.r8.utils.ProgramClassCollection -> com.android.tools.r8.utils.M0:
    com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver conflictResolver -> d
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():21:21 -> <clinit>
    1:2:void <init>(java.util.concurrent.ConcurrentHashMap,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):39:40 -> <init>
    1:1:java.util.function.Supplier getTransparentSupplier(com.android.tools.r8.graph.DexClass):21:21 -> a
    2:2:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):21:21 -> a
    3:3:com.android.tools.r8.graph.DexProgramClass resolveClassConflict(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):50:50 -> a
    3:3:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):21 -> a
    4:9:com.android.tools.r8.utils.ProgramClassCollection create(java.util.List,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):28:33 -> a
    10:10:java.util.function.Supplier lambda$create$0(com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver,java.util.function.Supplier,java.util.function.Supplier):31:31 -> a
    11:11:com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver defaultConflictResolver(com.android.tools.r8.utils.Reporter):66:66 -> a
    12:16:com.android.tools.r8.graph.DexProgramClass lambda$defaultConflictResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):67:71 -> a
    17:17:com.android.tools.r8.graph.DexProgramClass mergeClasses(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):88:88 -> a
    17:17:com.android.tools.r8.graph.DexProgramClass lambda$defaultConflictResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):72 -> a
    18:21:com.android.tools.r8.graph.DexProgramClass mergeWrappers(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):105:108 -> a
    18:21:com.android.tools.r8.graph.DexProgramClass mergeClasses(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):89 -> a
    18:21:com.android.tools.r8.graph.DexProgramClass lambda$defaultConflictResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):72 -> a
    22:23:com.android.tools.r8.graph.DexProgramClass mergeClasses(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):91:92 -> a
    22:23:com.android.tools.r8.graph.DexProgramClass lambda$defaultConflictResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):72 -> a
    24:25:boolean assertEqualClasses(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):99:100 -> a
    24:25:com.android.tools.r8.graph.DexProgramClass mergeClasses(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):92 -> a
    24:25:com.android.tools.r8.graph.DexProgramClass lambda$defaultConflictResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):72 -> a
    26:26:com.android.tools.r8.graph.DexProgramClass mergeClasses(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):95:95 -> a
    26:26:com.android.tools.r8.graph.DexProgramClass lambda$defaultConflictResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):72 -> a
    27:27:com.android.tools.r8.graph.DexProgramClass lambda$defaultConflictResolver$1(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):74:74 -> a
    28:33:com.android.tools.r8.graph.DexEncodedMethod findConversionMethod(com.android.tools.r8.graph.DexProgramClass):114:119 -> a
    34:34:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    34:34:com.android.tools.r8.graph.DexEncodedMethod findConversionMethod(com.android.tools.r8.graph.DexProgramClass):119 -> a
    35:35:com.android.tools.r8.graph.DexEncodedMethod findConversionMethod(com.android.tools.r8.graph.DexProgramClass):119:119 -> a
    1:3:java.lang.RuntimeException reportDuplicateTypes(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):80:82 -> b
    4:4:com.android.tools.r8.origin.Origin com.android.tools.r8.graph.DexClass.getOrigin():716:716 -> b
    4:4:java.lang.RuntimeException reportDuplicateTypes(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):83 -> b
    5:5:java.lang.RuntimeException reportDuplicateTypes(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):83:83 -> b
    6:8:java.lang.RuntimeException com.android.tools.r8.utils.Reporter.fatalError(com.android.tools.r8.Diagnostic):75:77 -> b
    6:8:java.lang.RuntimeException reportDuplicateTypes(com.android.tools.r8.utils.Reporter,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):80 -> b
    1:1:com.android.tools.r8.graph.ClassKind getClassKind():60:60 -> c
    1:1:java.lang.String toString():45:45 -> toString
com.android.tools.r8.utils.Reporter -> com.android.tools.r8.utils.N0:
    com.android.tools.r8.DiagnosticsHandler clientHandler -> a
    com.android.tools.r8.Diagnostic lastError -> c
    java.util.Collection suppressedExceptions -> d
    int errorCount -> b
    1:1:void <init>():24:24 -> <init>
    2:2:void <init>(com.android.tools.r8.DiagnosticsHandler):27:27 -> <init>
    3:12:void <init>(com.android.tools.r8.DiagnosticsHandler):19:28 -> <init>
    1:1:void error(java.lang.String):53:53 -> a
    2:5:void error(com.android.tools.r8.Diagnostic,java.lang.Throwable):57:60 -> a
    6:8:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic):75:77 -> a
    9:27:void failIfPendingErrors():93:111 -> a
    28:28:java.lang.Throwable addSuppressedExceptions(java.lang.Throwable):115:115 -> a
    1:4:void error(com.android.tools.r8.Diagnostic,java.lang.Throwable):57:60 -> b
    1:4:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic,java.lang.Throwable):84 -> b
    5:6:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic,java.lang.Throwable):85:86 -> b
    7:7:java.lang.RuntimeException fatalError(java.lang.String):67:67 -> b
    8:10:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic):75:77 -> b
    8:10:java.lang.RuntimeException fatalError(java.lang.String):67 -> b
    1:3:void error(com.android.tools.r8.Diagnostic):47:49 -> error
    1:1:void info(com.android.tools.r8.Diagnostic):33:33 -> info
    1:1:void warning(com.android.tools.r8.Diagnostic):38:38 -> warning
com.android.tools.r8.utils.Reporter$1 -> com.android.tools.r8.utils.N0$a:
    1:1:void <init>():24:24 -> <init>
com.android.tools.r8.utils.SegmentTree -> com.android.tools.r8.utils.O0:
    java.util.TreeMap internalTree -> a
    boolean allowIntervalOverwrites -> b
    int size -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void <init>(boolean):21:21 -> <init>
    2:8:void <init>(boolean):16:22 -> <init>
    1:2:java.lang.Object find(int):26:27 -> a
    3:4:java.util.Map$Entry findEntry(java.lang.Integer):31:32 -> a
    5:44:com.android.tools.r8.utils.SegmentTree add(int,int,java.lang.Object):36:75 -> a
    45:48:boolean lambda$add$0(int,int,com.android.tools.r8.utils.Box,java.lang.Integer):43:46 -> a
    49:49:int size():80:80 -> a
com.android.tools.r8.utils.SingletonEquivalence -> com.android.tools.r8.utils.P0:
    1:1:void <init>():11:11 -> <init>
com.android.tools.r8.utils.StreamUtils -> com.android.tools.r8.utils.Q0:
    1:2:byte[] StreamToByteArrayClose(java.io.InputStream):16:17 -> a
com.android.tools.r8.utils.StringDiagnostic -> com.android.tools.r8.utils.StringDiagnostic:
    com.android.tools.r8.origin.Origin origin -> a
    com.android.tools.r8.position.Position position -> b
    java.lang.String message -> c
    1:1:void <init>(java.lang.String):28:28 -> <init>
    2:2:void <init>(java.lang.String,com.android.tools.r8.origin.Origin):32:32 -> <init>
    3:6:void <init>(java.lang.String,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):35:38 -> <init>
    1:1:java.lang.String getDiagnosticMessage():53:53 -> getDiagnosticMessage
    1:1:com.android.tools.r8.origin.Origin getOrigin():43:43 -> getOrigin
    1:1:com.android.tools.r8.position.Position getPosition():48:48 -> getPosition
com.android.tools.r8.utils.StringUtils -> com.android.tools.r8.utils.R0:
    char[] EMPTY_CHAR_ARRAY -> a
    java.lang.String LINE_SEPARATOR -> c
    java.lang.String[] EMPTY_ARRAY -> b
    boolean $assertionsDisabled -> d
    1:4:void <clinit>():15:18 -> <clinit>
    1:6:java.lang.String com.android.tools.r8.utils.StringUtils$BraceType.left():28:33 -> a
    1:6:java.lang.StringBuilder append(java.lang.StringBuilder,java.util.Collection,java.lang.String,com.android.tools.r8.utils.StringUtils$BraceType):109 -> a
    7:15:java.lang.StringBuilder append(java.lang.StringBuilder,java.util.Collection,java.lang.String,com.android.tools.r8.utils.StringUtils$BraceType):109:117 -> a
    16:21:java.lang.String com.android.tools.r8.utils.StringUtils$BraceType.right():38:43 -> a
    16:21:java.lang.StringBuilder append(java.lang.StringBuilder,java.util.Collection,java.lang.String,com.android.tools.r8.utils.StringUtils$BraceType):119 -> a
    22:22:java.lang.StringBuilder append(java.lang.StringBuilder,java.util.Collection,java.lang.String,com.android.tools.r8.utils.StringUtils$BraceType):119:119 -> a
    23:28:boolean appendNonEmpty(java.lang.StringBuilder,java.lang.String,java.lang.Object,java.lang.String):65:70 -> a
    29:32:java.lang.StringBuilder appendLeftPadded(java.lang.StringBuilder,java.lang.String,int):88:91 -> a
    33:33:java.lang.StringBuilder append(java.lang.StringBuilder,java.util.Collection):104:104 -> a
    34:34:java.lang.String join(java.util.Collection,java.lang.String):124:124 -> a
    35:35:java.lang.String join(java.lang.String,java.lang.String[]):128:128 -> a
    36:36:java.lang.String join(java.util.Collection,java.lang.String,com.android.tools.r8.utils.StringUtils$BraceType):132:132 -> a
    37:39:java.lang.String join(java.util.Collection,java.lang.String,com.android.tools.r8.utils.StringUtils$BraceType,java.util.function.Function):137:139 -> a
    40:44:java.lang.String lines(java.util.List):143:147 -> a
    45:45:java.lang.String joinLines(java.lang.String[]):165:165 -> a
    46:46:java.lang.String joinLines(java.util.Collection):169:169 -> a
    47:47:java.lang.String hexString(int,int):215:215 -> a
    48:56:java.lang.String hexString(int,int,boolean):219:227 -> a
    57:65:java.lang.String hexString(long,int,boolean):236:244 -> a
    57:65:java.lang.String hexString(long,int):232 -> a
    66:70:java.lang.String times(java.lang.String,int):263:267 -> a
    71:71:boolean isWhitespace(int):275:275 -> a
    72:77:int firstNonWhitespaceCharacter(java.lang.String):323:328 -> a
    1:3:java.lang.StringBuilder appendRightPadded(java.lang.StringBuilder,java.lang.String,int):96:98 -> b
    4:4:java.lang.String lines(java.lang.String[]):151:151 -> b
    5:5:java.lang.String zeroPrefix(int,int):197:197 -> b
    6:12:java.lang.String zeroPrefixString(java.lang.String,int):202:208 -> b
    13:15:boolean onlyContainsDigits(java.lang.String):304:306 -> b
    1:18:java.util.List splitLines(java.lang.String):173:190 -> c
    1:2:java.lang.String stripLeadingBOM(java.lang.String):279:280 -> d
    1:9:java.lang.String toASCIIString(java.lang.String):49:57 -> e
    1:9:java.lang.String trim(java.lang.String):288:296 -> f
    1:5:java.lang.String withNativeLineSeparator(java.lang.String):155:159 -> g
com.android.tools.r8.utils.StringUtils$BraceType -> com.android.tools.r8.utils.R0$a:
    com.android.tools.r8.utils.StringUtils$BraceType SQUARE -> b
    com.android.tools.r8.utils.StringUtils$BraceType TUBORG -> c
    com.android.tools.r8.utils.StringUtils$BraceType PARENS -> a
    com.android.tools.r8.utils.StringUtils$BraceType[] $VALUES -> e
    com.android.tools.r8.utils.StringUtils$BraceType NONE -> d
    1:4:void <clinit>():22:25 -> <clinit>
    5:5:void <clinit>():21:21 -> <clinit>
    1:1:void <init>(java.lang.String,int):21:21 -> <init>
com.android.tools.r8.utils.SymbolGenerationUtils -> com.android.tools.r8.utils.S0:
    char[] IDENTIFIER_CHARACTERS -> b
    boolean $assertionsDisabled -> e
    java.util.Set PRIMITIVE_TYPE_NAMES -> a
    int NUMBER_OF_CHARACTERS_MINUS_CAPITAL_LETTERS -> d
    int NUMBER_OF_CHARACTERS -> c
    1:15:void <clinit>():13:27 -> <clinit>
    1:1:java.lang.String numberToIdentifier(int,com.android.tools.r8.utils.SymbolGenerationUtils$MixedCasing):31:31 -> a
    2:35:java.lang.String numberToIdentifier(int,com.android.tools.r8.utils.SymbolGenerationUtils$MixedCasing,char[],boolean):43:76 -> a
com.android.tools.r8.utils.SymbolGenerationUtils$MixedCasing -> com.android.tools.r8.utils.S0$a:
    com.android.tools.r8.utils.SymbolGenerationUtils$MixedCasing DONT_USE_MIXED_CASE -> b
    com.android.tools.r8.utils.SymbolGenerationUtils$MixedCasing USE_MIXED_CASE -> a
    1:2:void <clinit>():16:17 -> <clinit>
    1:1:void <init>(java.lang.String,int):15:15 -> <init>
com.android.tools.r8.utils.ThreadUtils -> com.android.tools.r8.utils.T0:
    1:9:void processItems(java.lang.Iterable,com.android.tools.r8.utils.ThrowingConsumer,java.util.concurrent.ExecutorService):21:29 -> a
    10:10:java.lang.Object lambda$processItems$0(com.android.tools.r8.utils.ThrowingConsumer,java.lang.Object):25:25 -> a
    11:24:void awaitFutures(java.lang.Iterable):34:47 -> a
    25:35:void awaitFutures(java.lang.Iterable):40:50 -> a
    36:37:java.util.concurrent.ExecutorService getExecutorService(int):64:65 -> a
    38:38:java.util.concurrent.ExecutorService getExecutorService(com.android.tools.r8.utils.InternalOptions):69:69 -> a
    1:2:java.util.concurrent.ExecutorService getExecutorServiceForProcessors(int):57:58 -> b
com.android.tools.r8.utils.ThrowingBiConsumer -> com.android.tools.r8.utils.U0:
com.android.tools.r8.utils.ThrowingCharIterator -> com.android.tools.r8.utils.V0:
    char nextChar() -> a
com.android.tools.r8.utils.ThrowingConsumer -> com.android.tools.r8.utils.W0:
com.android.tools.r8.utils.ThrowingIntIterator -> com.android.tools.r8.utils.X0:
    1:1:void <init>():9:9 -> <init>
    boolean hasNext() -> a
    1:2:void forEachRemaining(java.util.function.IntConsumer):12:13 -> a
    3:6:int nextIntComputeIfAbsent(com.android.tools.r8.utils.ThrowingIntSupplier):22:25 -> a
    int nextInt() -> b
com.android.tools.r8.utils.ThrowingIntSupplier -> com.android.tools.r8.utils.Y0:
    int getAsInt() -> a
com.android.tools.r8.utils.ThrowingIterator -> com.android.tools.r8.utils.Z0:
    1:1:void <init>():11:11 -> <init>
    boolean hasNext() -> a
    1:4:java.lang.Object computeNextIfAbsent(com.android.tools.r8.utils.ThrowingSupplier):18:21 -> a
    5:10:java.util.List take(int):25:30 -> a
    11:11:java.util.List take(int):28:28 -> a
    java.lang.Object next() -> b
com.android.tools.r8.utils.ThrowingSupplier -> com.android.tools.r8.utils.a1:
com.android.tools.r8.utils.Timing -> com.android.tools.r8.utils.b1:
    java.util.Stack stack -> a
    boolean trackMemory -> b
    1:1:void <init>():27:27 -> <init>
    2:2:void <init>(java.lang.String):31:31 -> <init>
    3:6:void <init>(java.lang.String,boolean):34:37 -> <init>
    1:1:boolean access$000(com.android.tools.r8.utils.Timing):21:21 -> a
    2:2:java.lang.String prettySize(long):149:149 -> a
    2:2:java.lang.String access$400(long):21 -> a
    3:19:java.lang.String prettyNumber(long):153:169 -> a
    3:19:java.lang.String prettySize(long):149 -> a
    3:19:java.lang.String access$400(long):21 -> a
    20:20:java.lang.String prettySize(long):149:149 -> a
    20:20:java.lang.String access$400(long):21 -> a
    21:24:void begin(java.lang.String):173:176 -> a
    25:26:void com.android.tools.r8.utils.Timing$Node.restart():74:75 -> a
    25:26:void begin(java.lang.String):177 -> a
    27:27:boolean access$000(com.android.tools.r8.utils.Timing):21:21 -> a
    27:27:void com.android.tools.r8.utils.Timing$Node.restart():75 -> a
    27:27:void begin(java.lang.String):177 -> a
    28:30:void com.android.tools.r8.utils.Timing$Node.restart():76:78 -> a
    28:30:void begin(java.lang.String):177 -> a
    31:34:void begin(java.lang.String):179:182 -> a
    35:36:void end():186:187 -> a
    1:4:void report():191:194 -> b
    5:10:java.util.Map computeMemoryInformation():211:216 -> b
    5:10:java.util.Map access$100(com.android.tools.r8.utils.Timing):21 -> b
    11:11:com.android.tools.r8.utils.Timing$MemInfo com.android.tools.r8.utils.Timing$MemInfo.fromTotalAndFree(long,long):48:48 -> b
    11:11:java.util.Map computeMemoryInformation():215 -> b
    11:11:java.util.Map access$100(com.android.tools.r8.utils.Timing):21 -> b
    12:12:java.util.Map computeMemoryInformation():213:213 -> b
    12:12:java.util.Map access$100(com.android.tools.r8.utils.Timing):21 -> b
    13:13:java.util.Map computeMemoryInformation():211:211 -> b
    13:13:java.util.Map access$100(com.android.tools.r8.utils.Timing):21 -> b
com.android.tools.r8.utils.Timing$MemInfo -> com.android.tools.r8.utils.b1$a:
    long used -> a
    1:2:void <init>(long):43:44 -> <init>
com.android.tools.r8.utils.Timing$Node -> com.android.tools.r8.utils.b1$b:
    com.android.tools.r8.utils.Timing this$0 -> g
    java.util.Map children -> b
    java.lang.String title -> a
    long start_time -> d
    boolean $assertionsDisabled -> h
    long duration -> c
    java.util.Map startMemory -> e
    java.util.Map endMemory -> f
    1:1:void <clinit>():56:56 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.Timing,java.lang.String):65:65 -> <init>
    2:13:void <init>(com.android.tools.r8.utils.Timing,java.lang.String):59:70 -> <init>
    1:5:void end():82:86 -> a
    6:6:void report(int,com.android.tools.r8.utils.Timing$Node):105:105 -> a
    7:7:long duration():91:91 -> a
    7:7:void report(int,com.android.tools.r8.utils.Timing$Node):105 -> a
    8:15:void report(int,com.android.tools.r8.utils.Timing$Node):105:112 -> a
    16:17:java.lang.String toString(com.android.tools.r8.utils.Timing$Node):100:101 -> a
    16:17:void report(int,com.android.tools.r8.utils.Timing$Node):112 -> a
    18:18:long duration():91:91 -> a
    18:18:java.lang.String toString(com.android.tools.r8.utils.Timing$Node):101 -> a
    18:18:void report(int,com.android.tools.r8.utils.Timing$Node):112 -> a
    19:19:java.lang.String com.android.tools.r8.utils.Timing.prettyPercentage(long,long):141:141 -> a
    19:19:java.lang.String com.android.tools.r8.utils.Timing.access$300(long,long):21 -> a
    19:19:java.lang.String toString(com.android.tools.r8.utils.Timing$Node):101 -> a
    19:19:void report(int,com.android.tools.r8.utils.Timing$Node):112 -> a
    20:20:java.lang.String toString(com.android.tools.r8.utils.Timing$Node):101:101 -> a
    20:20:void report(int,com.android.tools.r8.utils.Timing$Node):112 -> a
    21:22:void report(int,com.android.tools.r8.utils.Timing$Node):112:113 -> a
    23:35:void printMemory(int):120:132 -> a
    23:35:void report(int,com.android.tools.r8.utils.Timing$Node):114 -> a
    36:36:long com.android.tools.r8.utils.Timing$MemInfo.usedDelta(com.android.tools.r8.utils.Timing$MemInfo):52:52 -> a
    36:36:void printMemory(int):134 -> a
    36:36:void report(int,com.android.tools.r8.utils.Timing$Node):114 -> a
    37:37:void printMemory(int):134:134 -> a
    37:37:void report(int,com.android.tools.r8.utils.Timing$Node):114 -> a
    38:38:void printMemory(int):127:127 -> a
    38:38:void report(int,com.android.tools.r8.utils.Timing$Node):114 -> a
    39:39:void report(int,com.android.tools.r8.utils.Timing$Node):116:116 -> a
    40:40:void lambda$report$0(int,com.android.tools.r8.utils.Timing$Node,com.android.tools.r8.utils.Timing$Node):116:116 -> a
    1:1:java.lang.String toString():96:96 -> toString
    2:2:long duration():91:91 -> toString
    2:2:java.lang.String toString():96 -> toString
    3:3:java.lang.String com.android.tools.r8.utils.Timing.prettyTime(long):145:145 -> toString
    3:3:java.lang.String com.android.tools.r8.utils.Timing.access$200(long):21 -> toString
    3:3:java.lang.String toString():96 -> toString
    4:4:java.lang.String toString():96:96 -> toString
com.android.tools.r8.utils.TriFunction -> com.android.tools.r8.utils.c1:
    java.lang.Object apply(java.lang.Object,java.lang.Object,java.lang.Object) -> a
com.android.tools.r8.utils.VersionProperties -> com.android.tools.r8.utils.d1:
    com.android.tools.r8.utils.VersionProperties INSTANCE -> c
    java.lang.String sha -> a
    java.lang.String releaser -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():14:14 -> <clinit>
    2:7:com.android.tools.r8.utils.VersionProperties get():28:33 -> <clinit>
    2:7:void <clinit>():16 -> <clinit>
    8:13:com.android.tools.r8.utils.VersionProperties get():29:34 -> <clinit>
    8:13:void <clinit>():16 -> <clinit>
    14:14:void <clinit>():16:16 -> <clinit>
    1:1:void <init>():38:38 -> <init>
    2:10:void <init>(java.io.InputStream):41:49 -> <init>
    1:1:java.lang.String getDescription():53:53 -> a
    1:1:boolean isEngineering():66:66 -> b
    1:1:java.lang.String getSha():57 -> b
    2:2:java.lang.String getSha():57:57 -> b
    1:1:boolean isEngineering():66:66 -> c
    1:1:java.lang.String toString():62:62 -> toString
com.android.tools.r8.utils.ZipUtils -> com.android.tools.r8.utils.e1:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():37:37 -> <clinit>
    boolean lambda$unzip$1(java.util.zip.ZipEntry) -> a
    1:12:void writeResourcesToZip(java.util.List,java.util.Set,com.android.tools.r8.com.google.common.io.Closer,java.util.zip.ZipOutputStream):45:56 -> a
    13:19:void iter(java.lang.String,com.android.tools.r8.utils.ZipUtils$OnEntryHandler):65:71 -> a
    20:24:void iter(java.lang.String,com.android.tools.r8.utils.ZipUtils$OnEntryHandler):69:73 -> a
    25:33:void iter(java.lang.String,com.android.tools.r8.utils.ZipUtils$OnEntryHandler):65:73 -> a
    34:34:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):73:73 -> a
    35:46:void zip(java.nio.file.Path,java.nio.file.Path):77:88 -> a
    47:58:void zip(java.nio.file.Path,java.nio.file.Path):77:88 -> a
    59:59:boolean lambda$zip$0(java.nio.file.Path):80:80 -> a
    60:60:java.util.List unzip(java.lang.String,java.io.File):92:92 -> a
    61:63:java.util.List unzip(java.lang.String,java.io.File,java.util.function.Predicate):97:99 -> a
    64:76:void lambda$unzip$2(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):100:112 -> a
    77:79:void lambda$unzip$2(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):109:111 -> a
    80:80:void lambda$unzip$2(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):104:104 -> a
    81:81:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String):22:22 -> a
    81:81:void lambda$unzip$2(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):104 -> a
    82:82:void lambda$unzip$2(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):104:104 -> a
    83:83:void writeToZipStream(java.util.zip.ZipOutputStream,java.lang.String,byte[],int):121:121 -> a
    84:96:void writeToZipStream(java.util.zip.ZipOutputStream,java.lang.String,com.android.tools.r8.ByteDataView,int):127:139 -> a
    97:104:boolean isClassFile(java.lang.String):148:155 -> a
    1:2:boolean isDexFile(java.lang.String):143:144 -> b
com.android.tools.r8.utils.ZipUtils$OnEntryHandler -> com.android.tools.r8.utils.e1$a:
    void onEntry(java.util.zip.ZipEntry,java.io.InputStream) -> a
