class com.jcraft.jsch.ChannelAgentForwarding extends com.jcraft.jsch.Channel
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.jcraft.jsch.ChannelAgentForwarding
  super_class: com.jcraft.jsch.Channel
{
  private static final int LOCAL_WINDOW_SIZE_MAX;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 131072

  private static final int LOCAL_MAXIMUM_PACKET_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16384

  private final byte SSH_AGENTC_REQUEST_RSA_IDENTITIES;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 1

  private final byte SSH_AGENT_RSA_IDENTITIES_ANSWER;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 2

  private final byte SSH_AGENTC_RSA_CHALLENGE;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 3

  private final byte SSH_AGENT_RSA_RESPONSE;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 4

  private final byte SSH_AGENT_FAILURE;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 5

  private final byte SSH_AGENT_SUCCESS;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 6

  private final byte SSH_AGENTC_ADD_RSA_IDENTITY;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 7

  private final byte SSH_AGENTC_REMOVE_RSA_IDENTITY;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 8

  private final byte SSH_AGENTC_REMOVE_ALL_RSA_IDENTITIES;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 9

  private final byte SSH2_AGENTC_REQUEST_IDENTITIES;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 11

  private final byte SSH2_AGENT_IDENTITIES_ANSWER;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 12

  private final byte SSH2_AGENTC_SIGN_REQUEST;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 13

  private final byte SSH2_AGENT_SIGN_RESPONSE;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 14

  private final byte SSH2_AGENTC_ADD_IDENTITY;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 17

  private final byte SSH2_AGENTC_REMOVE_IDENTITY;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 18

  private final byte SSH2_AGENTC_REMOVE_ALL_IDENTITIES;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 19

  private final byte SSH2_AGENT_FAILURE;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 30

  boolean init;
    descriptor: Z
    flags: (0x0000) 

  private com.jcraft.jsch.Buffer rbuf;
    descriptor: Lcom/jcraft/jsch/Buffer;
    flags: (0x0002) ACC_PRIVATE

  private com.jcraft.jsch.Buffer wbuf;
    descriptor: Lcom/jcraft/jsch/Buffer;
    flags: (0x0002) ACC_PRIVATE

  private com.jcraft.jsch.Packet packet;
    descriptor: Lcom/jcraft/jsch/Packet;
    flags: (0x0002) ACC_PRIVATE

  private com.jcraft.jsch.Buffer mbuf;
    descriptor: Lcom/jcraft/jsch/Buffer;
    flags: (0x0002) ACC_PRIVATE

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.jcraft.jsch.ChannelAgentForwarding this
         0: .line 67
            aload 0 /* this */
            invokespecial com.jcraft.jsch.Channel.<init>:()V
         1: .line 40
            aload 0 /* this */
            iconst_1
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH_AGENTC_REQUEST_RSA_IDENTITIES:B
         2: .line 41
            aload 0 /* this */
            iconst_2
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH_AGENT_RSA_IDENTITIES_ANSWER:B
         3: .line 42
            aload 0 /* this */
            iconst_3
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH_AGENTC_RSA_CHALLENGE:B
         4: .line 43
            aload 0 /* this */
            iconst_4
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH_AGENT_RSA_RESPONSE:B
         5: .line 44
            aload 0 /* this */
            iconst_5
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH_AGENT_FAILURE:B
         6: .line 45
            aload 0 /* this */
            bipush 6
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH_AGENT_SUCCESS:B
         7: .line 46
            aload 0 /* this */
            bipush 7
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH_AGENTC_ADD_RSA_IDENTITY:B
         8: .line 47
            aload 0 /* this */
            bipush 8
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH_AGENTC_REMOVE_RSA_IDENTITY:B
         9: .line 48
            aload 0 /* this */
            bipush 9
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH_AGENTC_REMOVE_ALL_RSA_IDENTITIES:B
        10: .line 50
            aload 0 /* this */
            bipush 11
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH2_AGENTC_REQUEST_IDENTITIES:B
        11: .line 51
            aload 0 /* this */
            bipush 12
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH2_AGENT_IDENTITIES_ANSWER:B
        12: .line 52
            aload 0 /* this */
            bipush 13
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH2_AGENTC_SIGN_REQUEST:B
        13: .line 53
            aload 0 /* this */
            bipush 14
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH2_AGENT_SIGN_RESPONSE:B
        14: .line 54
            aload 0 /* this */
            bipush 17
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH2_AGENTC_ADD_IDENTITY:B
        15: .line 55
            aload 0 /* this */
            bipush 18
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH2_AGENTC_REMOVE_IDENTITY:B
        16: .line 56
            aload 0 /* this */
            bipush 19
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH2_AGENTC_REMOVE_ALL_IDENTITIES:B
        17: .line 57
            aload 0 /* this */
            bipush 30
            putfield com.jcraft.jsch.ChannelAgentForwarding.SSH2_AGENT_FAILURE:B
        18: .line 59
            aload 0 /* this */
            iconst_1
            putfield com.jcraft.jsch.ChannelAgentForwarding.init:Z
        19: .line 61
            aload 0 /* this */
            aconst_null
            putfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
        20: .line 62
            aload 0 /* this */
            aconst_null
            putfield com.jcraft.jsch.ChannelAgentForwarding.wbuf:Lcom/jcraft/jsch/Buffer;
        21: .line 63
            aload 0 /* this */
            aconst_null
            putfield com.jcraft.jsch.ChannelAgentForwarding.packet:Lcom/jcraft/jsch/Packet;
        22: .line 64
            aload 0 /* this */
            aconst_null
            putfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
        23: .line 69
            aload 0 /* this */
            ldc 131072
            invokevirtual com.jcraft.jsch.ChannelAgentForwarding.setLocalWindowSizeMax:(I)V
        24: .line 70
            aload 0 /* this */
            ldc 131072
            invokevirtual com.jcraft.jsch.ChannelAgentForwarding.setLocalWindowSize:(I)V
        25: .line 71
            aload 0 /* this */
            sipush 16384
            invokevirtual com.jcraft.jsch.ChannelAgentForwarding.setLocalPacketSize:(I)V
        26: .line 73
            aload 0 /* this */
            ldc "auth-agent@openssh.com"
            invokestatic com.jcraft.jsch.Util.str2byte:(Ljava/lang/String;)[B
            putfield com.jcraft.jsch.ChannelAgentForwarding.type:[B
        27: .line 74
            aload 0 /* this */
            new com.jcraft.jsch.Buffer
            dup
            invokespecial com.jcraft.jsch.Buffer.<init>:()V
            putfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
        28: .line 75
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            invokevirtual com.jcraft.jsch.Buffer.reset:()V
        29: .line 78
            aload 0 /* this */
            new com.jcraft.jsch.Buffer
            dup
            invokespecial com.jcraft.jsch.Buffer.<init>:()V
            putfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
        30: .line 79
            aload 0 /* this */
            iconst_1
            putfield com.jcraft.jsch.ChannelAgentForwarding.connected:Z
        31: .line 80
            return
        end local 0 // com.jcraft.jsch.ChannelAgentForwarding this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   32     0  this  Lcom/jcraft/jsch/ChannelAgentForwarding;

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.jcraft.jsch.ChannelAgentForwarding this
         0: .line 84
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.ChannelAgentForwarding.sendOpenConfirmation:()V
         1: .line 85
            goto 5
         2: .line 86
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         3: .line 87
            aload 0 /* this */
            iconst_1
            putfield com.jcraft.jsch.ChannelAgentForwarding.close:Z
         4: .line 88
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.ChannelAgentForwarding.disconnect:()V
         5: .line 90
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.jcraft.jsch.ChannelAgentForwarding this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/jcraft/jsch/ChannelAgentForwarding;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception

  void write(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0000) 
    Code:
      stack=5, locals=18, args_size=4
        start local 0 // com.jcraft.jsch.ChannelAgentForwarding this
        start local 1 // byte[] foo
        start local 2 // int s
        start local 3 // int l
         0: .line 94
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.packet:Lcom/jcraft/jsch/Packet;
            ifnonnull 3
         1: .line 95
            aload 0 /* this */
            new com.jcraft.jsch.Buffer
            dup
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rmpsize:I
            invokespecial com.jcraft.jsch.Buffer.<init>:(I)V
            putfield com.jcraft.jsch.ChannelAgentForwarding.wbuf:Lcom/jcraft/jsch/Buffer;
         2: .line 96
            aload 0 /* this */
            new com.jcraft.jsch.Packet
            dup
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.wbuf:Lcom/jcraft/jsch/Buffer;
            invokespecial com.jcraft.jsch.Packet.<init>:(Lcom/jcraft/jsch/Buffer;)V
            putfield com.jcraft.jsch.ChannelAgentForwarding.packet:Lcom/jcraft/jsch/Packet;
         3: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            invokevirtual com.jcraft.jsch.Buffer.shift:()V
         4: .line 100
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            getfield com.jcraft.jsch.Buffer.buffer:[B
            arraylength
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            getfield com.jcraft.jsch.Buffer.index:I
            iload 3 /* l */
            iadd
            if_icmpge 8
         5: .line 101
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            getfield com.jcraft.jsch.Buffer.s:I
            iload 3 /* l */
            iadd
            newarray 8
            astore 4 /* newbuf */
        start local 4 // byte[] newbuf
         6: .line 102
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            getfield com.jcraft.jsch.Buffer.buffer:[B
            iconst_0
            aload 4 /* newbuf */
            iconst_0
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            getfield com.jcraft.jsch.Buffer.buffer:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 103
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            aload 4 /* newbuf */
            putfield com.jcraft.jsch.Buffer.buffer:[B
        end local 4 // byte[] newbuf
         8: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            aload 1 /* foo */
            iload 2 /* s */
            iload 3 /* l */
            invokevirtual com.jcraft.jsch.Buffer.putByte:([BII)V
         9: .line 108
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            invokevirtual com.jcraft.jsch.Buffer.getInt:()I
            istore 4 /* mlen */
        start local 4 // int mlen
        10: .line 109
            iload 4 /* mlen */
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            invokevirtual com.jcraft.jsch.Buffer.getLength:()I
            if_icmple 13
        11: .line 110
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            dup
            getfield com.jcraft.jsch.Buffer.s:I
            iconst_4
            isub
            putfield com.jcraft.jsch.Buffer.s:I
        12: .line 111
            return
        13: .line 114
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            invokevirtual com.jcraft.jsch.Buffer.getByte:()I
            istore 5 /* typ */
        start local 5 // int typ
        14: .line 116
            aconst_null
            astore 6 /* _session */
        start local 6 // com.jcraft.jsch.Session _session
        15: .line 118
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.ChannelAgentForwarding.getSession:()Lcom/jcraft/jsch/Session;
            astore 6 /* _session */
        16: .line 119
            goto 19
        17: .line 120
      StackMap locals: com.jcraft.jsch.ChannelAgentForwarding byte[] int int int int com.jcraft.jsch.Session
      StackMap stack: com.jcraft.jsch.JSchException
            astore 7 /* e */
        start local 7 // com.jcraft.jsch.JSchException e
        18: .line 121
            new java.io.IOException
            dup
            aload 7 /* e */
            invokevirtual com.jcraft.jsch.JSchException.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // com.jcraft.jsch.JSchException e
        19: .line 124
      StackMap locals:
      StackMap stack:
            aload 6 /* _session */
            invokevirtual com.jcraft.jsch.Session.getIdentityRepository:()Lcom/jcraft/jsch/IdentityRepository;
            astore 7 /* irepo */
        start local 7 // com.jcraft.jsch.IdentityRepository irepo
        20: .line 125
            aload 6 /* _session */
            invokevirtual com.jcraft.jsch.Session.getUserInfo:()Lcom/jcraft/jsch/UserInfo;
            astore 8 /* userinfo */
        start local 8 // com.jcraft.jsch.UserInfo userinfo
        21: .line 127
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            invokevirtual com.jcraft.jsch.Buffer.reset:()V
        22: .line 129
            iload 5 /* typ */
            bipush 11
            if_icmpne 49
        23: .line 130
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            bipush 12
            invokevirtual com.jcraft.jsch.Buffer.putByte:(B)V
        24: .line 131
            aload 7 /* irepo */
            invokeinterface com.jcraft.jsch.IdentityRepository.getIdentities:()Ljava/util/Vector;
            astore 9 /* identities */
        start local 9 // java.util.Vector identities
        25: .line 132
            aload 9 /* identities */
            dup
            astore 10
            monitorenter
        26: .line 133
            iconst_0
            istore 11 /* count */
        start local 11 // int count
        27: .line 134
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        28: goto 33
        29: .line 135
      StackMap locals: com.jcraft.jsch.ChannelAgentForwarding byte[] int int int int com.jcraft.jsch.Session com.jcraft.jsch.IdentityRepository com.jcraft.jsch.UserInfo java.util.Vector java.util.Vector int int
      StackMap stack:
            aload 9 /* identities */
            iload 12 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast com.jcraft.jsch.Identity
            astore 13 /* identity */
        start local 13 // com.jcraft.jsch.Identity identity
        30: .line 136
            aload 13 /* identity */
            invokeinterface com.jcraft.jsch.Identity.getPublicKeyBlob:()[B
            ifnull 32
        31: .line 137
            iinc 11 /* count */ 1
        end local 13 // com.jcraft.jsch.Identity identity
        32: .line 134
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 12 /* i */
            aload 9 /* identities */
            invokevirtual java.util.Vector.size:()I
            if_icmplt 29
        end local 12 // int i
        34: .line 139
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            iload 11 /* count */
            invokevirtual com.jcraft.jsch.Buffer.putInt:(I)V
        35: .line 140
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        36: goto 44
        37: .line 141
      StackMap locals:
      StackMap stack:
            aload 9 /* identities */
            iload 12 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast com.jcraft.jsch.Identity
            astore 13 /* identity */
        start local 13 // com.jcraft.jsch.Identity identity
        38: .line 142
            aload 13 /* identity */
            invokeinterface com.jcraft.jsch.Identity.getPublicKeyBlob:()[B
            astore 14 /* pubkeyblob */
        start local 14 // byte[] pubkeyblob
        39: .line 143
            aload 14 /* pubkeyblob */
            ifnonnull 41
        40: .line 144
            goto 43
        41: .line 145
      StackMap locals: com.jcraft.jsch.Identity byte[]
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            aload 14 /* pubkeyblob */
            invokevirtual com.jcraft.jsch.Buffer.putString:([B)V
        42: .line 146
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            getstatic com.jcraft.jsch.Util.empty:[B
            invokevirtual com.jcraft.jsch.Buffer.putString:([B)V
        end local 14 // byte[] pubkeyblob
        end local 13 // com.jcraft.jsch.Identity identity
        43: .line 140
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        44: iload 12 /* i */
            aload 9 /* identities */
            invokevirtual java.util.Vector.size:()I
            if_icmplt 37
        end local 12 // int i
        end local 11 // int count
        45: .line 132
            aload 10
            monitorexit
        46: goto 122
      StackMap locals: com.jcraft.jsch.ChannelAgentForwarding byte[] int int int int com.jcraft.jsch.Session com.jcraft.jsch.IdentityRepository com.jcraft.jsch.UserInfo java.util.Vector java.util.Vector
      StackMap stack: java.lang.Throwable
        47: aload 10
            monitorexit
        48: athrow
        end local 9 // java.util.Vector identities
        49: .line 150
      StackMap locals:
      StackMap stack:
            iload 5 /* typ */
            iconst_1
            if_icmpne 53
        50: .line 151
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            iconst_2
            invokevirtual com.jcraft.jsch.Buffer.putByte:(B)V
        51: .line 152
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            iconst_0
            invokevirtual com.jcraft.jsch.Buffer.putInt:(I)V
        52: .line 153
            goto 122
        53: .line 154
      StackMap locals:
      StackMap stack:
            iload 5 /* typ */
            bipush 13
            if_icmpne 99
        54: .line 155
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            invokevirtual com.jcraft.jsch.Buffer.getString:()[B
            astore 9 /* blob */
        start local 9 // byte[] blob
        55: .line 156
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            invokevirtual com.jcraft.jsch.Buffer.getString:()[B
            astore 10 /* data */
        start local 10 // byte[] data
        56: .line 157
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            invokevirtual com.jcraft.jsch.Buffer.getInt:()I
            pop
        57: .line 163
            aload 7 /* irepo */
            invokeinterface com.jcraft.jsch.IdentityRepository.getIdentities:()Ljava/util/Vector;
            astore 11 /* identities */
        start local 11 // java.util.Vector identities
        58: .line 164
            aconst_null
            astore 12 /* identity */
        start local 12 // com.jcraft.jsch.Identity identity
        59: .line 165
            aload 11 /* identities */
            dup
            astore 13
            monitorenter
        60: .line 166
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        61: goto 85
        62: .line 167
      StackMap locals: com.jcraft.jsch.ChannelAgentForwarding byte[] int int int int com.jcraft.jsch.Session com.jcraft.jsch.IdentityRepository com.jcraft.jsch.UserInfo byte[] byte[] java.util.Vector com.jcraft.jsch.Identity java.util.Vector int
      StackMap stack:
            aload 11 /* identities */
            iload 14 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast com.jcraft.jsch.Identity
            astore 15 /* _identity */
        start local 15 // com.jcraft.jsch.Identity _identity
        63: .line 168
            aload 15 /* _identity */
            invokeinterface com.jcraft.jsch.Identity.getPublicKeyBlob:()[B
            ifnonnull 65
        64: .line 169
            goto 84
        65: .line 170
      StackMap locals: com.jcraft.jsch.Identity
      StackMap stack:
            aload 9 /* blob */
            aload 15 /* _identity */
            invokeinterface com.jcraft.jsch.Identity.getPublicKeyBlob:()[B
            invokestatic com.jcraft.jsch.Util.array_equals:([B[B)Z
            ifne 67
        66: .line 171
            goto 84
        67: .line 173
      StackMap locals:
      StackMap stack:
            aload 15 /* _identity */
            invokeinterface com.jcraft.jsch.Identity.isEncrypted:()Z
            ifeq 81
        68: .line 174
            aload 8 /* userinfo */
            ifnonnull 80
        69: .line 175
            goto 84
        70: .line 177
      StackMap locals:
      StackMap stack:
            aload 8 /* userinfo */
            new java.lang.StringBuilder
            dup
            ldc "Passphrase for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 15 /* _identity */
            invokeinterface com.jcraft.jsch.Identity.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface com.jcraft.jsch.UserInfo.promptPassphrase:(Ljava/lang/String;)Z
            ifne 72
        71: .line 178
            goto 81
        72: .line 181
      StackMap locals:
      StackMap stack:
            aload 8 /* userinfo */
            invokeinterface com.jcraft.jsch.UserInfo.getPassphrase:()Ljava/lang/String;
            astore 16 /* _passphrase */
        start local 16 // java.lang.String _passphrase
        73: .line 182
            aload 16 /* _passphrase */
            ifnonnull 75
        74: .line 183
            goto 81
        75: .line 186
      StackMap locals: java.lang.String
      StackMap stack:
            aload 16 /* _passphrase */
            invokestatic com.jcraft.jsch.Util.str2byte:(Ljava/lang/String;)[B
            astore 17 /* passphrase */
        start local 17 // byte[] passphrase
        76: .line 188
            aload 15 /* _identity */
            aload 17 /* passphrase */
            invokeinterface com.jcraft.jsch.Identity.setPassphrase:([B)Z
            ifeq 80
        77: .line 189
            goto 81
        78: .line 192
      StackMap locals: com.jcraft.jsch.ChannelAgentForwarding byte[] int int int int com.jcraft.jsch.Session com.jcraft.jsch.IdentityRepository com.jcraft.jsch.UserInfo byte[] byte[] java.util.Vector com.jcraft.jsch.Identity java.util.Vector int com.jcraft.jsch.Identity java.lang.String byte[]
      StackMap stack: com.jcraft.jsch.JSchException
            pop
        79: .line 193
            goto 81
        end local 17 // byte[] passphrase
        end local 16 // java.lang.String _passphrase
        80: .line 176
      StackMap locals:
      StackMap stack:
            aload 15 /* _identity */
            invokeinterface com.jcraft.jsch.Identity.isEncrypted:()Z
            ifne 70
        81: .line 198
      StackMap locals:
      StackMap stack:
            aload 15 /* _identity */
            invokeinterface com.jcraft.jsch.Identity.isEncrypted:()Z
            ifne 84
        82: .line 199
            aload 15 /* _identity */
            astore 12 /* identity */
        83: .line 200
            goto 86
        end local 15 // com.jcraft.jsch.Identity _identity
        84: .line 166
      StackMap locals:
      StackMap stack:
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        85: iload 14 /* i */
            aload 11 /* identities */
            invokevirtual java.util.Vector.size:()I
            if_icmplt 62
        end local 14 // int i
        86: .line 165
      StackMap locals:
      StackMap stack:
            aload 13
            monitorexit
        87: goto 90
      StackMap locals:
      StackMap stack: java.lang.Throwable
        88: aload 13
            monitorexit
        89: athrow
        90: .line 205
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 13 /* signature */
        start local 13 // byte[] signature
        91: .line 207
            aload 12 /* identity */
            ifnull 93
        92: .line 208
            aload 12 /* identity */
            aload 10 /* data */
            invokeinterface com.jcraft.jsch.Identity.getSignature:([B)[B
            astore 13 /* signature */
        93: .line 211
      StackMap locals: byte[]
      StackMap stack:
            aload 13 /* signature */
            ifnonnull 96
        94: .line 212
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            bipush 30
            invokevirtual com.jcraft.jsch.Buffer.putByte:(B)V
        95: .line 213
            goto 122
        96: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            bipush 14
            invokevirtual com.jcraft.jsch.Buffer.putByte:(B)V
        97: .line 216
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            aload 13 /* signature */
            invokevirtual com.jcraft.jsch.Buffer.putString:([B)V
        end local 13 // byte[] signature
        end local 12 // com.jcraft.jsch.Identity identity
        end local 11 // java.util.Vector identities
        end local 10 // byte[] data
        end local 9 // byte[] blob
        98: .line 218
            goto 122
        99: .line 219
      StackMap locals: com.jcraft.jsch.ChannelAgentForwarding byte[] int int int int com.jcraft.jsch.Session com.jcraft.jsch.IdentityRepository com.jcraft.jsch.UserInfo
      StackMap stack:
            iload 5 /* typ */
            bipush 18
            if_icmpne 104
       100: .line 220
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            invokevirtual com.jcraft.jsch.Buffer.getString:()[B
            astore 9 /* blob */
        start local 9 // byte[] blob
       101: .line 221
            aload 7 /* irepo */
            aload 9 /* blob */
            invokeinterface com.jcraft.jsch.IdentityRepository.remove:([B)Z
            pop
       102: .line 222
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            bipush 6
            invokevirtual com.jcraft.jsch.Buffer.putByte:(B)V
        end local 9 // byte[] blob
       103: .line 223
            goto 122
       104: .line 224
      StackMap locals:
      StackMap stack:
            iload 5 /* typ */
            bipush 9
            if_icmpne 107
       105: .line 225
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            bipush 6
            invokevirtual com.jcraft.jsch.Buffer.putByte:(B)V
       106: .line 226
            goto 122
       107: .line 227
      StackMap locals:
      StackMap stack:
            iload 5 /* typ */
            bipush 19
            if_icmpne 111
       108: .line 228
            aload 7 /* irepo */
            invokeinterface com.jcraft.jsch.IdentityRepository.removeAll:()V
       109: .line 229
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            bipush 6
            invokevirtual com.jcraft.jsch.Buffer.putByte:(B)V
       110: .line 230
            goto 122
       111: .line 231
      StackMap locals:
      StackMap stack:
            iload 5 /* typ */
            bipush 17
            if_icmpne 120
       112: .line 232
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            invokevirtual com.jcraft.jsch.Buffer.getLength:()I
            istore 9 /* fooo */
        start local 9 // int fooo
       113: .line 233
            iload 9 /* fooo */
            newarray 8
            astore 10 /* tmp */
        start local 10 // byte[] tmp
       114: .line 234
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            aload 10 /* tmp */
            invokevirtual com.jcraft.jsch.Buffer.getByte:([B)V
       115: .line 235
            aload 7 /* irepo */
            aload 10 /* tmp */
            invokeinterface com.jcraft.jsch.IdentityRepository.add:([B)Z
            istore 11 /* result */
        start local 11 // boolean result
       116: .line 236
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            iload 11 /* result */
            ifeq 117
            bipush 6
            goto 118
      StackMap locals: com.jcraft.jsch.ChannelAgentForwarding byte[] int int int int com.jcraft.jsch.Session com.jcraft.jsch.IdentityRepository com.jcraft.jsch.UserInfo int byte[] int
      StackMap stack: com.jcraft.jsch.Buffer
       117: iconst_5
      StackMap locals: com.jcraft.jsch.ChannelAgentForwarding byte[] int int int int com.jcraft.jsch.Session com.jcraft.jsch.IdentityRepository com.jcraft.jsch.UserInfo int byte[] int
      StackMap stack: com.jcraft.jsch.Buffer int
       118: invokevirtual com.jcraft.jsch.Buffer.putByte:(B)V
        end local 11 // boolean result
        end local 10 // byte[] tmp
        end local 9 // int fooo
       119: .line 237
            goto 122
       120: .line 239
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.rbuf:Lcom/jcraft/jsch/Buffer;
            invokevirtual com.jcraft.jsch.Buffer.getLength:()I
            iconst_1
            isub
            invokevirtual com.jcraft.jsch.Buffer.skip:(I)V
       121: .line 240
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            iconst_5
            invokevirtual com.jcraft.jsch.Buffer.putByte:(B)V
       122: .line 243
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            invokevirtual com.jcraft.jsch.Buffer.getLength:()I
            newarray 8
            astore 9 /* response */
        start local 9 // byte[] response
       123: .line 244
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.mbuf:Lcom/jcraft/jsch/Buffer;
            aload 9 /* response */
            invokevirtual com.jcraft.jsch.Buffer.getByte:([B)V
       124: .line 245
            aload 0 /* this */
            aload 9 /* response */
            invokevirtual com.jcraft.jsch.ChannelAgentForwarding.send:([B)V
       125: .line 246
            return
        end local 9 // byte[] response
        end local 8 // com.jcraft.jsch.UserInfo userinfo
        end local 7 // com.jcraft.jsch.IdentityRepository irepo
        end local 6 // com.jcraft.jsch.Session _session
        end local 5 // int typ
        end local 4 // int mlen
        end local 3 // int l
        end local 2 // int s
        end local 1 // byte[] foo
        end local 0 // com.jcraft.jsch.ChannelAgentForwarding this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0  126     0         this  Lcom/jcraft/jsch/ChannelAgentForwarding;
            0  126     1          foo  [B
            0  126     2            s  I
            0  126     3            l  I
            6    8     4       newbuf  [B
           10  126     4         mlen  I
           14  126     5          typ  I
           15  126     6     _session  Lcom/jcraft/jsch/Session;
           18   19     7            e  Lcom/jcraft/jsch/JSchException;
           20  126     7        irepo  Lcom/jcraft/jsch/IdentityRepository;
           21  126     8     userinfo  Lcom/jcraft/jsch/UserInfo;
           25   49     9   identities  Ljava/util/Vector;
           27   45    11        count  I
           28   34    12            i  I
           30   32    13     identity  Lcom/jcraft/jsch/Identity;
           36   45    12            i  I
           38   43    13     identity  Lcom/jcraft/jsch/Identity;
           39   43    14   pubkeyblob  [B
           55   98     9         blob  [B
           56   98    10         data  [B
           58   98    11   identities  Ljava/util/Vector;
           59   98    12     identity  Lcom/jcraft/jsch/Identity;
           61   86    14            i  I
           63   84    15    _identity  Lcom/jcraft/jsch/Identity;
           73   80    16  _passphrase  Ljava/lang/String;
           76   80    17   passphrase  [B
           91   98    13    signature  [B
          101  103     9         blob  [B
          113  119     9         fooo  I
          114  119    10          tmp  [B
          116  119    11       result  Z
          123  126     9     response  [B
      Exception table:
        from    to  target  type
          15    16      17  Class com.jcraft.jsch.JSchException
          26    46      47  any
          47    48      47  any
          76    77      78  Class com.jcraft.jsch.JSchException
          60    87      88  any
          88    89      88  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      foo   
      s     
      l     

  private void send(byte[]);
    descriptor: ([B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.jcraft.jsch.ChannelAgentForwarding this
        start local 1 // byte[] message
         0: .line 249
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.packet:Lcom/jcraft/jsch/Packet;
            invokevirtual com.jcraft.jsch.Packet.reset:()V
         1: .line 250
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.wbuf:Lcom/jcraft/jsch/Buffer;
            bipush 94
            invokevirtual com.jcraft.jsch.Buffer.putByte:(B)V
         2: .line 251
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.wbuf:Lcom/jcraft/jsch/Buffer;
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.recipient:I
            invokevirtual com.jcraft.jsch.Buffer.putInt:(I)V
         3: .line 252
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.wbuf:Lcom/jcraft/jsch/Buffer;
            iconst_4
            aload 1 /* message */
            arraylength
            iadd
            invokevirtual com.jcraft.jsch.Buffer.putInt:(I)V
         4: .line 253
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.wbuf:Lcom/jcraft/jsch/Buffer;
            aload 1 /* message */
            invokevirtual com.jcraft.jsch.Buffer.putString:([B)V
         5: .line 256
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.ChannelAgentForwarding.getSession:()Lcom/jcraft/jsch/Session;
            aload 0 /* this */
            getfield com.jcraft.jsch.ChannelAgentForwarding.packet:Lcom/jcraft/jsch/Packet;
            aload 0 /* this */
            iconst_4
            aload 1 /* message */
            arraylength
            iadd
            invokevirtual com.jcraft.jsch.Session.write:(Lcom/jcraft/jsch/Packet;Lcom/jcraft/jsch/Channel;I)V
         6: .line 257
            goto 8
         7: .line 258
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         8: .line 260
      StackMap locals:
      StackMap stack:
            return
        end local 1 // byte[] message
        end local 0 // com.jcraft.jsch.ChannelAgentForwarding this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lcom/jcraft/jsch/ChannelAgentForwarding;
            0    9     1  message  [B
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.Exception
    MethodParameters:
         Name  Flags
      message  

  void eof_remote();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.jcraft.jsch.ChannelAgentForwarding this
         0: .line 263
            aload 0 /* this */
            invokespecial com.jcraft.jsch.Channel.eof_remote:()V
         1: .line 264
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.ChannelAgentForwarding.eof:()V
         2: .line 265
            return
        end local 0 // com.jcraft.jsch.ChannelAgentForwarding this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/jcraft/jsch/ChannelAgentForwarding;
}
SourceFile: "ChannelAgentForwarding.java"