public abstract class com.google.inject.PrivateModule implements com.google.inject.Module
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.google.inject.PrivateModule
  super_class: java.lang.Object
{
  private com.google.inject.PrivateBinder binder;
    descriptor: Lcom/google/inject/PrivateBinder;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.inject.PrivateModule this
         0: .line 89
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/inject/PrivateModule;

  public final synchronized void configure(com.google.inject.Binder);
    descriptor: (Lcom/google/inject/Binder;)V
    flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // com.google.inject.Binder binder
         0: .line 96
            aload 0 /* this */
            getfield com.google.inject.PrivateModule.binder:Lcom/google/inject/PrivateBinder;
            ifnonnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ldc "Re-entry is not allowed."
            invokestatic com.google.common.base.Preconditions.checkState:(ZLjava/lang/Object;)V
         3: .line 99
            aload 0 /* this */
            aload 1 /* binder */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/google/inject/PrivateModule;
            aastore
            invokeinterface com.google.inject.Binder.skipSources:([Ljava/lang/Class;)Lcom/google/inject/Binder;
            checkcast com.google.inject.PrivateBinder
            putfield com.google.inject.PrivateModule.binder:Lcom/google/inject/PrivateBinder;
         4: .line 101
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.configure:()V
         5: .line 102
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 2
         7: .line 103
            aload 0 /* this */
            aconst_null
            putfield com.google.inject.PrivateModule.binder:Lcom/google/inject/PrivateBinder;
         8: .line 104
            aload 2
            athrow
         9: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.google.inject.PrivateModule.binder:Lcom/google/inject/PrivateBinder;
        10: .line 105
            return
        end local 1 // com.google.inject.Binder binder
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lcom/google/inject/PrivateModule;
            0   11     1  binder  Lcom/google/inject/Binder;
      Exception table:
        from    to  target  type
           4     6       6  any
    MethodParameters:
        Name  Flags
      binder  

  protected abstract void configure();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected final <T> void expose(com.google.inject.Key<T>);
    descriptor: (Lcom/google/inject/Key;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // com.google.inject.Key key
         0: .line 115
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* key */
            invokeinterface com.google.inject.PrivateBinder.expose:(Lcom/google/inject/Key;)V
         1: .line 116
            return
        end local 1 // com.google.inject.Key key
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/google/inject/PrivateModule;
            0    2     1   key  Lcom/google/inject/Key<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/google/inject/Key<TT;>;)V
    MethodParameters:
      Name  Flags
      key   

  protected final com.google.inject.binder.AnnotatedElementBuilder expose(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedElementBuilder;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // java.lang.Class type
         0: .line 124
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* type */
            invokeinterface com.google.inject.PrivateBinder.expose:(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedElementBuilder;
            areturn
        end local 1 // java.lang.Class type
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/inject/PrivateModule;
            0    1     1  type  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Lcom/google/inject/binder/AnnotatedElementBuilder;
    MethodParameters:
      Name  Flags
      type  

  protected final com.google.inject.binder.AnnotatedElementBuilder expose(com.google.inject.TypeLiteral<?>);
    descriptor: (Lcom/google/inject/TypeLiteral;)Lcom/google/inject/binder/AnnotatedElementBuilder;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // com.google.inject.TypeLiteral type
         0: .line 133
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* type */
            invokeinterface com.google.inject.PrivateBinder.expose:(Lcom/google/inject/TypeLiteral;)Lcom/google/inject/binder/AnnotatedElementBuilder;
            areturn
        end local 1 // com.google.inject.TypeLiteral type
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/inject/PrivateModule;
            0    1     1  type  Lcom/google/inject/TypeLiteral<*>;
    Signature: (Lcom/google/inject/TypeLiteral<*>;)Lcom/google/inject/binder/AnnotatedElementBuilder;
    MethodParameters:
      Name  Flags
      type  

  protected final com.google.inject.PrivateBinder binder();
    descriptor: ()Lcom/google/inject/PrivateBinder;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.inject.PrivateModule this
         0: .line 140
            aload 0 /* this */
            getfield com.google.inject.PrivateModule.binder:Lcom/google/inject/PrivateBinder;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ldc "The binder can only be used inside configure()"
            invokestatic com.google.common.base.Preconditions.checkState:(ZLjava/lang/Object;)V
         3: .line 141
            aload 0 /* this */
            getfield com.google.inject.PrivateModule.binder:Lcom/google/inject/PrivateBinder;
            areturn
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/google/inject/PrivateModule;

  protected final void bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope);
    descriptor: (Ljava/lang/Class;Lcom/google/inject/Scope;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // java.lang.Class scopeAnnotation
        start local 2 // com.google.inject.Scope scope
         0: .line 146
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* scopeAnnotation */
            aload 2 /* scope */
            invokeinterface com.google.inject.PrivateBinder.bindScope:(Ljava/lang/Class;Lcom/google/inject/Scope;)V
         1: .line 147
            return
        end local 2 // com.google.inject.Scope scope
        end local 1 // java.lang.Class scopeAnnotation
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/google/inject/PrivateModule;
            0    2     1  scopeAnnotation  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
            0    2     2            scope  Lcom/google/inject/Scope;
    Signature: (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;Lcom/google/inject/Scope;)V
    MethodParameters:
                 Name  Flags
      scopeAnnotation  
      scope            

  protected final <T> com.google.inject.binder.LinkedBindingBuilder<T> bind(com.google.inject.Key<T>);
    descriptor: (Lcom/google/inject/Key;)Lcom/google/inject/binder/LinkedBindingBuilder;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // com.google.inject.Key key
         0: .line 151
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* key */
            invokeinterface com.google.inject.PrivateBinder.bind:(Lcom/google/inject/Key;)Lcom/google/inject/binder/LinkedBindingBuilder;
            areturn
        end local 1 // com.google.inject.Key key
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/inject/PrivateModule;
            0    1     1   key  Lcom/google/inject/Key<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/google/inject/Key<TT;>;)Lcom/google/inject/binder/LinkedBindingBuilder<TT;>;
    MethodParameters:
      Name  Flags
      key   

  protected final <T> com.google.inject.binder.AnnotatedBindingBuilder<T> bind(com.google.inject.TypeLiteral<T>);
    descriptor: (Lcom/google/inject/TypeLiteral;)Lcom/google/inject/binder/AnnotatedBindingBuilder;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // com.google.inject.TypeLiteral typeLiteral
         0: .line 156
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* typeLiteral */
            invokeinterface com.google.inject.PrivateBinder.bind:(Lcom/google/inject/TypeLiteral;)Lcom/google/inject/binder/AnnotatedBindingBuilder;
            areturn
        end local 1 // com.google.inject.TypeLiteral typeLiteral
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/google/inject/PrivateModule;
            0    1     1  typeLiteral  Lcom/google/inject/TypeLiteral<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/google/inject/TypeLiteral<TT;>;)Lcom/google/inject/binder/AnnotatedBindingBuilder<TT;>;
    MethodParameters:
             Name  Flags
      typeLiteral  

  protected final <T> com.google.inject.binder.AnnotatedBindingBuilder<T> bind(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // java.lang.Class clazz
         0: .line 161
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* clazz */
            invokeinterface com.google.inject.PrivateBinder.bind:(Ljava/lang/Class;)Lcom/google/inject/binder/AnnotatedBindingBuilder;
            areturn
        end local 1 // java.lang.Class clazz
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/google/inject/PrivateModule;
            0    1     1  clazz  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lcom/google/inject/binder/AnnotatedBindingBuilder<TT;>;
    MethodParameters:
       Name  Flags
      clazz  

  protected final com.google.inject.binder.AnnotatedConstantBindingBuilder bindConstant();
    descriptor: ()Lcom/google/inject/binder/AnnotatedConstantBindingBuilder;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.inject.PrivateModule this
         0: .line 166
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            invokeinterface com.google.inject.PrivateBinder.bindConstant:()Lcom/google/inject/binder/AnnotatedConstantBindingBuilder;
            areturn
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/inject/PrivateModule;

  protected final void install(com.google.inject.Module);
    descriptor: (Lcom/google/inject/Module;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // com.google.inject.Module module
         0: .line 171
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* module */
            invokeinterface com.google.inject.PrivateBinder.install:(Lcom/google/inject/Module;)V
         1: .line 172
            return
        end local 1 // com.google.inject.Module module
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/google/inject/PrivateModule;
            0    2     1  module  Lcom/google/inject/Module;
    MethodParameters:
        Name  Flags
      module  

  protected final void addError(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x0094) ACC_PROTECTED, ACC_FINAL, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // java.lang.String message
        start local 2 // java.lang.Object[] arguments
         0: .line 176
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* message */
            aload 2 /* arguments */
            invokeinterface com.google.inject.PrivateBinder.addError:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 177
            return
        end local 2 // java.lang.Object[] arguments
        end local 1 // java.lang.String message
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/google/inject/PrivateModule;
            0    2     1    message  Ljava/lang/String;
            0    2     2  arguments  [Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      message    
      arguments  

  protected final void addError(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // java.lang.Throwable t
         0: .line 181
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* t */
            invokeinterface com.google.inject.PrivateBinder.addError:(Ljava/lang/Throwable;)V
         1: .line 182
            return
        end local 1 // java.lang.Throwable t
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/google/inject/PrivateModule;
            0    2     1     t  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      t     

  protected final void addError(com.google.inject.spi.Message);
    descriptor: (Lcom/google/inject/spi/Message;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // com.google.inject.spi.Message message
         0: .line 186
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* message */
            invokeinterface com.google.inject.PrivateBinder.addError:(Lcom/google/inject/spi/Message;)V
         1: .line 187
            return
        end local 1 // com.google.inject.spi.Message message
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/google/inject/PrivateModule;
            0    2     1  message  Lcom/google/inject/spi/Message;
    MethodParameters:
         Name  Flags
      message  

  protected final void requestInjection(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // java.lang.Object instance
         0: .line 191
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* instance */
            invokeinterface com.google.inject.PrivateBinder.requestInjection:(Ljava/lang/Object;)V
         1: .line 192
            return
        end local 1 // java.lang.Object instance
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/google/inject/PrivateModule;
            0    2     1  instance  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      instance  

  protected final void requestStaticInjection(java.lang.Class<?>[]);
    descriptor: ([Ljava/lang/Class;)V
    flags: (0x0094) ACC_PROTECTED, ACC_FINAL, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // java.lang.Class[] types
         0: .line 196
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* types */
            invokeinterface com.google.inject.PrivateBinder.requestStaticInjection:([Ljava/lang/Class;)V
         1: .line 197
            return
        end local 1 // java.lang.Class[] types
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/google/inject/PrivateModule;
            0    2     1  types  [Ljava/lang/Class;
    Signature: ([Ljava/lang/Class<*>;)V
    MethodParameters:
       Name  Flags
      types  

  protected final void bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor[]);
    descriptor: (Lcom/google/inject/matcher/Matcher;Lcom/google/inject/matcher/Matcher;[Lorg/aopalliance/intercept/MethodInterceptor;)V
    flags: (0x0094) ACC_PROTECTED, ACC_FINAL, ACC_VARARGS
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // com.google.inject.matcher.Matcher classMatcher
        start local 2 // com.google.inject.matcher.Matcher methodMatcher
        start local 3 // org.aopalliance.intercept.MethodInterceptor[] interceptors
         0: .line 208
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* classMatcher */
            aload 2 /* methodMatcher */
            aload 3 /* interceptors */
            invokeinterface com.google.inject.PrivateBinder.bindInterceptor:(Lcom/google/inject/matcher/Matcher;Lcom/google/inject/matcher/Matcher;[Lorg/aopalliance/intercept/MethodInterceptor;)V
         1: .line 209
            return
        end local 3 // org.aopalliance.intercept.MethodInterceptor[] interceptors
        end local 2 // com.google.inject.matcher.Matcher methodMatcher
        end local 1 // com.google.inject.matcher.Matcher classMatcher
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/google/inject/PrivateModule;
            0    2     1   classMatcher  Lcom/google/inject/matcher/Matcher<-Ljava/lang/Class<*>;>;
            0    2     2  methodMatcher  Lcom/google/inject/matcher/Matcher<-Ljava/lang/reflect/Method;>;
            0    2     3   interceptors  [Lorg/aopalliance/intercept/MethodInterceptor;
    Signature: (Lcom/google/inject/matcher/Matcher<-Ljava/lang/Class<*>;>;Lcom/google/inject/matcher/Matcher<-Ljava/lang/reflect/Method;>;[Lorg/aopalliance/intercept/MethodInterceptor;)V
    MethodParameters:
               Name  Flags
      classMatcher   
      methodMatcher  
      interceptors   

  protected final void requireBinding(com.google.inject.Key<?>);
    descriptor: (Lcom/google/inject/Key;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // com.google.inject.Key key
         0: .line 214
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* key */
            invokeinterface com.google.inject.PrivateBinder.getProvider:(Lcom/google/inject/Key;)Lcom/google/inject/Provider;
            pop
         1: .line 215
            return
        end local 1 // com.google.inject.Key key
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/google/inject/PrivateModule;
            0    2     1   key  Lcom/google/inject/Key<*>;
    Signature: (Lcom/google/inject/Key<*>;)V
    MethodParameters:
      Name  Flags
      key   

  protected final void requireBinding(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // java.lang.Class type
         0: .line 219
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* type */
            invokeinterface com.google.inject.PrivateBinder.getProvider:(Ljava/lang/Class;)Lcom/google/inject/Provider;
            pop
         1: .line 220
            return
        end local 1 // java.lang.Class type
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/google/inject/PrivateModule;
            0    2     1  type  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
      Name  Flags
      type  

  protected final <T> com.google.inject.Provider<T> getProvider(com.google.inject.Key<T>);
    descriptor: (Lcom/google/inject/Key;)Lcom/google/inject/Provider;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // com.google.inject.Key key
         0: .line 224
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* key */
            invokeinterface com.google.inject.PrivateBinder.getProvider:(Lcom/google/inject/Key;)Lcom/google/inject/Provider;
            areturn
        end local 1 // com.google.inject.Key key
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/inject/PrivateModule;
            0    1     1   key  Lcom/google/inject/Key<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/google/inject/Key<TT;>;)Lcom/google/inject/Provider<TT;>;
    MethodParameters:
      Name  Flags
      key   

  protected final <T> com.google.inject.Provider<T> getProvider(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lcom/google/inject/Provider;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // java.lang.Class type
         0: .line 229
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* type */
            invokeinterface com.google.inject.PrivateBinder.getProvider:(Ljava/lang/Class;)Lcom/google/inject/Provider;
            areturn
        end local 1 // java.lang.Class type
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/inject/PrivateModule;
            0    1     1  type  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lcom/google/inject/Provider<TT;>;
    MethodParameters:
      Name  Flags
      type  

  protected final void convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter);
    descriptor: (Lcom/google/inject/matcher/Matcher;Lcom/google/inject/spi/TypeConverter;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // com.google.inject.matcher.Matcher typeMatcher
        start local 2 // com.google.inject.spi.TypeConverter converter
         0: .line 238
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* typeMatcher */
            aload 2 /* converter */
            invokeinterface com.google.inject.PrivateBinder.convertToTypes:(Lcom/google/inject/matcher/Matcher;Lcom/google/inject/spi/TypeConverter;)V
         1: .line 239
            return
        end local 2 // com.google.inject.spi.TypeConverter converter
        end local 1 // com.google.inject.matcher.Matcher typeMatcher
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/google/inject/PrivateModule;
            0    2     1  typeMatcher  Lcom/google/inject/matcher/Matcher<-Lcom/google/inject/TypeLiteral<*>;>;
            0    2     2    converter  Lcom/google/inject/spi/TypeConverter;
    Signature: (Lcom/google/inject/matcher/Matcher<-Lcom/google/inject/TypeLiteral<*>;>;Lcom/google/inject/spi/TypeConverter;)V
    MethodParameters:
             Name  Flags
      typeMatcher  
      converter    

  protected final com.google.inject.Stage currentStage();
    descriptor: ()Lcom/google/inject/Stage;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.inject.PrivateModule this
         0: .line 243
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            invokeinterface com.google.inject.PrivateBinder.currentStage:()Lcom/google/inject/Stage;
            areturn
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/inject/PrivateModule;

  protected <T> com.google.inject.MembersInjector<T> getMembersInjector(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lcom/google/inject/MembersInjector;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // java.lang.Class type
         0: .line 248
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* type */
            invokeinterface com.google.inject.PrivateBinder.getMembersInjector:(Ljava/lang/Class;)Lcom/google/inject/MembersInjector;
            areturn
        end local 1 // java.lang.Class type
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/inject/PrivateModule;
            0    1     1  type  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lcom/google/inject/MembersInjector<TT;>;
    MethodParameters:
      Name  Flags
      type  

  protected <T> com.google.inject.MembersInjector<T> getMembersInjector(com.google.inject.TypeLiteral<T>);
    descriptor: (Lcom/google/inject/TypeLiteral;)Lcom/google/inject/MembersInjector;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // com.google.inject.TypeLiteral type
         0: .line 253
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* type */
            invokeinterface com.google.inject.PrivateBinder.getMembersInjector:(Lcom/google/inject/TypeLiteral;)Lcom/google/inject/MembersInjector;
            areturn
        end local 1 // com.google.inject.TypeLiteral type
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/inject/PrivateModule;
            0    1     1  type  Lcom/google/inject/TypeLiteral<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/google/inject/TypeLiteral<TT;>;)Lcom/google/inject/MembersInjector<TT;>;
    MethodParameters:
      Name  Flags
      type  

  protected void bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener);
    descriptor: (Lcom/google/inject/matcher/Matcher;Lcom/google/inject/spi/TypeListener;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // com.google.inject.matcher.Matcher typeMatcher
        start local 2 // com.google.inject.spi.TypeListener listener
         0: .line 260
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* typeMatcher */
            aload 2 /* listener */
            invokeinterface com.google.inject.PrivateBinder.bindListener:(Lcom/google/inject/matcher/Matcher;Lcom/google/inject/spi/TypeListener;)V
         1: .line 261
            return
        end local 2 // com.google.inject.spi.TypeListener listener
        end local 1 // com.google.inject.matcher.Matcher typeMatcher
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/google/inject/PrivateModule;
            0    2     1  typeMatcher  Lcom/google/inject/matcher/Matcher<-Lcom/google/inject/TypeLiteral<*>;>;
            0    2     2     listener  Lcom/google/inject/spi/TypeListener;
    Signature: (Lcom/google/inject/matcher/Matcher<-Lcom/google/inject/TypeLiteral<*>;>;Lcom/google/inject/spi/TypeListener;)V
    MethodParameters:
             Name  Flags
      typeMatcher  
      listener     

  protected void bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.Binding<?>>, com.google.inject.spi.ProvisionListener[]);
    descriptor: (Lcom/google/inject/matcher/Matcher;[Lcom/google/inject/spi/ProvisionListener;)V
    flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.google.inject.PrivateModule this
        start local 1 // com.google.inject.matcher.Matcher bindingMatcher
        start local 2 // com.google.inject.spi.ProvisionListener[] listeners
         0: .line 269
            aload 0 /* this */
            invokevirtual com.google.inject.PrivateModule.binder:()Lcom/google/inject/PrivateBinder;
            aload 1 /* bindingMatcher */
            aload 2 /* listeners */
            invokeinterface com.google.inject.PrivateBinder.bindListener:(Lcom/google/inject/matcher/Matcher;[Lcom/google/inject/spi/ProvisionListener;)V
         1: .line 270
            return
        end local 2 // com.google.inject.spi.ProvisionListener[] listeners
        end local 1 // com.google.inject.matcher.Matcher bindingMatcher
        end local 0 // com.google.inject.PrivateModule this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/google/inject/PrivateModule;
            0    2     1  bindingMatcher  Lcom/google/inject/matcher/Matcher<-Lcom/google/inject/Binding<*>;>;
            0    2     2       listeners  [Lcom/google/inject/spi/ProvisionListener;
    Signature: (Lcom/google/inject/matcher/Matcher<-Lcom/google/inject/Binding<*>;>;[Lcom/google/inject/spi/ProvisionListener;)V
    MethodParameters:
                Name  Flags
      bindingMatcher  
      listeners       
}
SourceFile: "PrivateModule.java"